大量的数据包重复

简短版本:我们遇到了一个特定的服务器接收大量重复数据包的问题。 在发现很多故障之后,我们发现问题是由于交换机将数据包从每个端口发送出去(即,像集线器一样),3台路由器将数据包reflection回来。 当路由器将数据包reflection回来时,交换机将再次将数据包发送出去,并且再次被其他路由器reflection回来。 这将持续到TTL递减到0.我不明白的是为什么路由器发回数据包。 路由器是否应该删除数据包,因为目标MAC地址与其MAC地址不匹配?

长版本:假设有3台路由器(A,B和C)连接到交换机和虚拟机。 udp数据包将从路由器A到达我的虚拟机。 在这个阶段TTL是60.交换机没有我的虚拟机的mac地址,所以它把数据包洪水每隔一个端口。 路由器B和C收到数据包,看到IP地址在同一个端口上,所以递减TTL并将数据包从同一端口发回。 我们现在有两个TTL为59的数据包,交换机再次将这两个数据包发送出去,并从其他两个路由器reflection回来,最后我们得到了4个TTL为58的数据包。然后,我们得到56,56,16直到数据包开始丢弃。 我的虚拟机一直收到所有这些数据包的副本。 由于虚拟机只收到它永远不会设法进入交换机的MAC表。 ARP帮助在这里,但它的超时大于mac表中的交换机超时。 降低解决了这个问题,但问题仍然是为什么路由器reflection数据包。 从我所了解的这不是标准的行为。

编辑:从wireshark捕获的详细信息(仅显示mac的最后2位数字):

MAC TTL 95 60 99 59 EC 59 95 58 EC 58 95 58 99 58 then 8 packets at 57 etc 

看看它是如何从MAC地址95结束,然后反弹其他2路由器,然后这两个数据包从另一个2反弹,使4包?

你所描述的是当一个交换机的CAM表已满时,它不能再学习MAC地址,并且将数据包转发到每个端口。 可能很难确定这是否是非托pipe交换机的问题,但使用托pipe交换机,您应该能够显示CAM表。

在这个问题上还有什么帮助是networking图。

编辑:

从添加的图中,您可以看到您有两个问题。 如果交换机不知道该去哪里,第一个仍然是交换机要将数据包转发出去的地方。 检查日志,看看为什么你的MAC地址被从表中删除。

第二个问题是路由器接收到数据包并将其发送回交换机,然后交换机将其发送到每个端口(除了它自己的端口)。 是否有一个特定的端口设置了默认路由,0.0.0.0?