华为s5700交换机mac地址未进入mac表

华为s5700交换机mac地址未进入mac表

我们遇到了一个非常奇怪的问题,某些端口拒绝学习其主机的 mac 地址。例如,主机 A 连接到交换机 S1 的端口 0/0/30。

每个发往主机 A 的数据包都会导致向 S1 的所有连接主机进行单播,因为表中缺少 A 的 MAC 地址。

奇怪的是,主机 A 有一个带有单独 Mac 的 IPMI 接口,交换机可以动态学习该接口而没有任何问题(非常奇怪)。

我研究了所有可能的原因:

  • 交换机中没有配置 mac 表限制(不是全局的、不是在 VLAN 级别、不是在接口级别)
  • 表中的 mac 地址数量远低于最大值(少于 1%)
  • 接口的vlan配置正确
  • 在 VLAN 级别和接口级别启用 mac 学习
  • 接口正确接收/发送数据包
  • 网络中没有环路,也没有 mac 抖动
  • 生成树协议已禁用,因此接口未被阻塞
  • 接口上的流量未标记,但设置为正确的默认 VLAN
  • 没有配置端口安全
  • 粘性 Mac 功能已禁用

最令人沮丧的是,例如,接口 0/0/12 的相同配置可以正确学习其主机的 mac。有些交换机接口可以正确学习,有些则不能,并且所有接口都共享相同的配置。

我已经在问题接口上捕获了一些数据包,它们看起来都是正确的,即源 mac 地址是正确的,并且收到了正确的 vlan 标记。

奇怪的是,静态添加 mac 并不能解决问题——所有发送到此 mac 的数据包都会导致向所有连接的主机进行单播。

我甚至检查了 mac 哈希函数以及是否存在冲突,但仍然没有运气。

连接的主机本身可以毫无问题地互相看到,即 arping 返回正确的 mac 地址,并且所有主机在本地网络内均可访问。Arpcache 似乎很好。

我正在考虑重置交换机,但这会导致停机。

最后,网络上所有其他交换机(与 S1 相同的配置)都存在类似问题,这使我倾向于认为这是一个配置/设置问题。

以前有人处理过类似的事情吗?有人能推荐进一步的诊断或行动方案来解决问题吗?

交换机型号:华为s5700-48TP-SI-AC

答案1

出色地,

如果有人偶然发现这个奇怪的问题,就我们的情况而言,我怀疑是以下情况:

交换机有一个哈希函数,它对 mac 进行哈希处理并将其添加到 mac 表中。我们的硬件是批量购买的,mac 地址彼此非常接近。我怀疑该函数会产生冲突,即 2 个 mac 收到相同的哈希,但结果只有一个被学习。

此交换机的企业型号有一个 snmp 对象,其中包含有关冲突的数据,但不幸的是,我们的交换机没有。目前还不清楚哈希算法究竟使用了哪种算法,所以我无法证明这一理论。

无论如何,将主机的 MAC 地址更改为完全随机的 MAC 地址可以解决问题。

相关内容