我很难弄清楚为什么我不能使用自制的以太网分接头和铜缆捕获两个设备之间双向流动的数据包,它看起来就像这样:
两个终端设备(例如 A 和 B)都连接到交换机。但由于嗅探器(普通笔记本电脑)只有一个以太网端口,我无法像大多数情况下那样执行嗅探(例如使用 Network Tap 的 Wireshark 示例),其中来自 TX 和 RX 的流量由具有 2 个接口的 Sniffer 接收。
因此,为了“解决”这个问题,我只需将 2 个(tap)连接器端口插入交换机上的端口,最后将交换机上的 1 个端口插入嗅探器。我以为数据包会被广播,但每次我将连接器插入交换机时,A 和 B 之间的连接就会中断(无法从 A ping 到 B 或从 B ping 到 A)。我对这种情况做了一个说明:
当我执行此连接时,交换机遇到了什么样的问题?真的需要商业分接头吗(那些带有 3 个端口的设备:A,B 和嗅探端口)?
有任何想法吗?
PS:我不想使用端口镜像或集线器。我想要一个被动分路器。
答案1
您遇到的问题是交换机不能像集线器一样工作。它只发送需要发送的流量到需要发送的链路(如果它知道那是什么的话)(它通过观察和查看哪个 MAC 地址位于哪个端口上来构建此信息)。
如果要这样做,您需要连接嗅探器以便流量必须通过它,使用端口镜像,或者将嗅探器与您要嗅探流量的设备之一放在被动的非交换集线器上。您唯一可以做的不需要额外硬件的事情是端口镜像或克隆(如果可以的话您应该这样做,因为这对受监控的设备完全透明)。
事实上,您所描述的“商业水龙头”类型实际上就是一种集线器。
由于一些原因,您的分路器无法正常工作。其最终效果是,假设交换机认为端口已连接(但实际上可能并非如此,因为它可能会尝试检测极性并发现每个端口只连接了一对),流向交换机的流量将加倍,交换机将无法确定您尝试分路的主机实际位于哪个端口(并且可能会尝试从主机的传输对所在的端口发送数据包,尽管其自己的传输对实际上不存在)。这种安排还可能产生一些电气后果,可能导致两端的设备都无法识别信号。
此外,设备接收对上的流量将被交换机完全弄乱。交换机将通过线路传输两次广播数据包,而忽略由此引起的冲突,这很可能就是您在连接交换机时发现连接中断的原因。