我们有一个 HP 2510G 交换机网络,连接到 HP2912al 进行聚合。我们注意到,一旦 mac-cache-timeout 到期,像 MySQL DB dump 这样的长时间运行的连接就会开始向所有网络端口泛滥。对目标 IP 执行“arping”会停止泛滥(回到端口到端口),直到缓存超时再次到期。
我可以理解为什么单向 UDP 流量会发生这种情况,但我不知道为什么 TCP 会发生这种情况。我认为接收机器的 ACK 会导致 Procurve 刷新其缓存中的 MAC 地址。相反,它们似乎只从 ARP 中学习。
有任何想法吗?
答案1
您在这里要处理的基本问题是 MAC 条目超时且未及时更新,从而导致单播泛洪。在这种情况下,有几点值得怀疑:
MAC 表流失。如果交换机的冲突域中有太多主机,则在使用中的条目超时时,可能会出现 MAC 表流失。这通常发生在通过交换机中继大量 VLAN 以连接两个主要网络时。
STP 更改容易导致泛洪。STP 配置错误(具有相同 ID 的交换机...)和不稳定的链接可能会导致清除缓存和意外泛洪。
如果您运行 802.1q 并且没有对称设置,则交换机可能会学习错误 VLAN 上的目的地。这将导致交换机最终忘记条目并开始泛洪。当回复来自不同的 VLAN 时,交换机将继续泛洪。
您遇到的是不对称路由情况。如果您的路由是不对称的,并且没有流量反向传输,那么您很容易导致 MAC 表中的条目超时。例如,在下图中,从路由器 1 到路由器 2 的流量经过 Switch1,而从路由器 2 到路由器 1 的流量经过 Switch2。在这种情况下,您可能会面临主机 3 被淹没的风险。
host1 | Router1 | | Switch1 Switch2 - Host3 | | Router2 | host2
纯单向流量。在这种情况下,您需要将 mac 表 ttl 增加到足够大,以便操作系统的免费 arp(如果配置为发送)保持表最新,甚至硬配置转发。请注意,纯单向流量非常罕见。MYSQL 转储不应是单向的。我只在非对称路由的情况下见过这种情况。
作为权宜之计,我建议部署 arpd(或类似程序)来提供优雅的 arp 并阻止泛洪。它应该具有与 ARPPing 相同的效果(您发现它可以暂时解决问题)。但您确实应该调试一下。
我的第一站是验证路由是否确实始终对称,因为最有可能出现不对称路由问题。
另外,请查看思科文档校园网络中的单播泛洪这非常好。