模拟/停用 100BASE-TX 的链接状态识别

网络工程 以太网 自动协商
2021-07-07 20:14:23

我的问题与创建单向网线有关。

我使用了这些教程:

原则上,它的工作原理是将 5 类电缆切成两半,将发送端的传输对(引脚 1 和 2)连接到接收端的接收对(引脚 3 和 6),但您还必须连接引脚发送端的 3 和 6 到您的捆绑包,在发送端创建某种环回。所以最后你有一个连接了三根电缆并且链接工作正常的点(你可以在一个方向上发送数据等)。如果您不创建此环回,则它不起作用并且链接不会在发送方出现(在接收方出现!)。

我的问题是:为什么会这样?为什么我不能只连接发送器和接收器的 TX 和 RX 线?

我的猜测是它与用于自动协商的链接脉冲有关。我希望如果我禁用自动协商,这些就不存在,我用 ethtool 成功地做到了。(我还将速度设置为 100 mbps,双工设置为全速。)

然而链接仍然没有出现。所以肯定还有更多。也许还有一些方法可以告诉发送方它的链接已打开。但我不知道链接状态是由驱动程序处理还是由芯片(AX88772B)直接处理。

3个回答

我已将只读电缆用于类似目的:不可见的系统日志接收器。

我的理解是,在 100baseT 中,仅使用“快速链接脉冲”FLP 完成自动协商,而链接连接仍然使用“正常链接脉冲”NLP 完成。

使用第三个接口来支持链接的建议应该可行。我很想试试这个:

  • 嗅探器看到嗅探器的链接,自己的链接脉冲丢失,发送将无处可去,因为它没有连接
  • prop 发送链接脉冲但看不到链接脉冲,因此不会发送任何内容
  • sniffee 看到链接脉冲,因此排队,并将发送

    sniffee                       sniffer
       1 >--------------------+      1
       2 >------------------+ |      2
       3 <------------+     | +----> 3
       6 <----------+ |     +------> 6
                    | |            prop  
                    | +------------< 1
                    +--------------< 2
                                     3
                                     6
    

对于道具,我会想到一台没有磁盘的计算机,尝试 PXE 启动。

你忘记了以太网是如何工作的。接口需要知道线路协议已启动。以太网(CSMA/CD,其中 CS 代表 Carrier Sense)在发送之前侦听线路是否畅通。当接收管脚听到连接时,接口就会工作,否则接口认为它没有连接任何东西,它不会工作。

例如,在没有激活接收引脚的 Cisco 设备上,您可以执行show interfaces FastEthernet0/0,并且响应的第一行将是:

FastEthernet0/0 is up, line protocol is down

您需要的是接收引脚处于活动状态,以便您获得:

FastEthernet0/0 is up, line protocol is up

当接收光纤束断开时,光纤对也会发生同样的情况。

做自己想做的事情也会给上层协议带来问题。例如,当 IP 想要发送到以太网上的另一台主机时,它会为 MAC 地址进行 ARP,并且需要在发送之前得到回复。您需要在您的主机中为接收主机创建静态 ARP 表条目。TCP 需要双向连接才能运行。网络中有许多协议依赖于请求/响应行为。

没有自动协商的 AIUI 100BASE-TX 依靠载波检测来确定链路是否已启动。

我想知道是否有可能的解决方案是获得第三张网卡并将其传输线连接到用于发送数据的卡上的接收线。