设备上无法学习正确的MAC表项故障排查
故障现象
二层数据转发失败,设备上无法学习正确的MAC转发表项。
操作步骤
1、查看是否配置错误导致MAC地址无法正确学习。
| 检查项 | 检查方法 | 后续操作 |
|---|---|---|
| 接口所属的VLAN是否创建 | 在任意视图下,执行命令display vlan vlan-id,如果提示“Error: The VLAN does not exist.”,则表示该VLAN没有创建。 | 请在系统视图下,执行命令vlan vlan-id创建VLAN。 |
| 接口是否透传对应VLAN | 在任意视图下,执行命令display vlan vlan-id,查看显示信息中是否存在该接口名。如果没有该接口名,则表示该接口没有透传对应VLAN。 | 请在接口视图下,执行下面命令将接口加入对应VLAN。1) trunk接口,执行命令port trunk allow-pass vlan,将接口加入VLAN; 2) hybrid接口,执行命令port hybrid tagged vlan 或者port hybrid untagged vlan,将接口加入VLAN; 3) access接口,执行命令port default vlan,将接口加入VLAN |
| 设备是否配置了黑洞MAC | 在任意视图下,执行display mac-address blackhole命令,查看是否配置了黑洞MAC。 | 如果有黑洞MAC相关配置,请在任意视图下,执行命令undo mac-address blackhole删除黑洞MAC地址。 |
| 接口和VLAN是否关闭了MAC地址学习功能 | 在接口视图和VLAN视图下,分别执行命令`display this | include learning`查看是否存在mac-address learning disable的配置。如果存在,则说明接口或VLAN关闭了MAC地址学习功能。 |
| 接口和VLAN是否配置了MAC地址学习限制数 | 在接口视图和VLAN视图下,执行`display this | include mac-limit`查看是否存在MAC地址学习限制数的配置。如果存在,则说明配置了MAC地址学习限制数。 |
| 接口是否配置了端口安全功能 | 在接口视图下,执行`display this | include port-security`查看是否存在端口安全的配置。如果存在,则说明配置了端口安全功能。 |
执行完上述操作后,故障仍然存在,请执行步骤2。
2、检查网络中是否存在环路导致MAC地址表项振荡。
- 一般情况下MAC地址漂移是由环路导致的,在系统视图下执行命令mac-address flapping detection,配置MAC地址漂移检测功能。
- 配置MAC地址漂移检测功能后,系统将检测VLAN内所有MAC地址是否发生漂移。然后可通过命令display mac-address flapping record来查看MAC地址漂移记录来判断是否有环路。
- 如果通过命令查看存在MAC地址漂移,可以使用下列两种方法防止MAC地址漂移导致MAC地址表项振荡。
- 排除环路故障。
- 在接口视图下执行命令mac-spoofing-defend enable ,配置接口学习MAC地址的优先级,保证在正确的接口上学习到MAC地址。
如果系统中不存在环路,请执行步骤3。
3、检查MAC地址数是否已达设备支持的最大规格。设备学习到的MAC地址数达到产品支持的规格,将无法继续学习新的MAC地址表项。
- 如果该接口学习到的MAC地址数小于等于该接口连接的实际运行的主机数,说明设备接入的主机已经超过了设备支持的规格,请调整网络部署。
- 如果该接口学习到的MAC地址数远大于该接口所连接网络实际运行的主机数,说明该接口所连接的网络可能存在恶意刷新MAC地址表项的攻击,请根据下列方法处理。
| 场景分类 | 解决方法 |
|---|---|
| 接口与其他设备相连 | 在该接口连接的设备上执行命令display mac-address查看MAC地址表项,根据MAC地址学习接口找到可能存在攻击的主机所在的接口。如果查找到的接口还下连其他设备,请重复上述操作直至查找到恶意攻击的主机。 |
| 接口与主机相连 | 和管理员确认后先断开该主机,等该主机恶意攻击排除后再接入网络。和管理员确认后在该接口上执行port-security enable命令配置端口安全功能或执行mac-limit命令配置接口MAC地址学习数量为1。 |
| 接口与HUB相连 | 通过镜像或其他工具分析该接口收到的报文,根据报文的特征找到攻击主机,找到攻击主机后,和管理员确认后先断开该主机,等该主机恶意攻击排除后再接入网络。和管理员确认后,分别尝试断开HUB连接的主机,通过断开某主机看故障是否存在来判断可能存在攻击的主机,找到攻击主机后,和管理员确认后先断开该主机,等该主机恶意攻击排除后再接入网络。 |
如果设备学习到的MAC地址数未达到产品支持的规格,但MAC地址依旧无法学习,请执行步骤4。
4、检查设备上是否存在MAC地址Hash冲突告警。
L2IFPPI/4/MACHASHCONFLICTALARM: OID [oid] A hash conflict occurs in MAC addresses.(IfIndex=[INTEGER], MacAddr=[OPAQUE], VLAN=[GAUGE], VsiName=[OCTET1], InterfaceName=[OCTET2]).
处理步骤
- 执行display mac-address summary查看设备上MAC地址表资源的使用情况,确认是否超过80%。
- 是 => 4。
- 否 => 2。
- 执行mac-address hash-mode命令调整设备的MAC Hash模式。查看该告警是否消除。
- 是 => 结束。
- 否 => 3。
说明由于MAC地址分布没有规律性,因此无法确定哪种Hash算法最优。在通常情况下,默认算法为最优算法,建议不要轻易变更。配置合适的MAC Hash模式只能缓解MAC地址学习的Hash冲突,不能彻底解决冲突问题。更改MAC Hash模式后,必须重启单板使配置生效。
- 根据告警信息中的MAC地址和接口名称,获取发生MAC地址Hash冲突的设备或者终端的位置。调整规划,修改该终端接入接口的VLAN配置,将该终端调整至其他VLAN。查看该告警是否消除。
- 是 => 结束。
- 否 => 4。
- 重新规划组网,将告警信息中MAC地址对应的终端设备的业务迁移到MAC地址表资源相对空闲的设备上,查看告警是否消除。
- 是 => 结束。
- 否 => 5。
- 更换设备为MAC地址表资源规格较大的设备,查看告警是否消除。
- 是 => 结束。
- 否 => 6。
- 请收集告警信息、日志信息和配置信息,并联系技术支持人员。

浙公网安备 33010602011771号