配置MAC地址漂移检测
该功能可以检测设备上的所有的MAC地址是否发生了漂移。若发生漂移,设备会上报告警到网管系统。
背景信息
MAC地址漂移是指设备上一个VLAN内有两个或者三个端口学习到一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。我们通常认为第一个学习到MAC地址的接口是正确的出接口,称为源端口(Original Port),后学习的端口是漂移端口(Move Port),漂移端口通常是在环路上的或者下挂网络中有环路的端口,需要关闭漂移端口或者在漂移端口上配置风暴抑制功能。
缺省情况下,系统会对交换机上所有VLAN进行MAC地址漂移检测。数据中心虚拟化应用场景(主要是指对于虚拟终端的迁移)也会造成MAC地址的漂移现象,但此时的漂移是正常的,这种情况不需要作为MAC地址漂移被检测出来。可以将虚拟终端所在的VLAN加入MAC地址漂移检测白名单,不对该VLAN进行检测。
如果用户修改MAC地址漂移表项的老化时间变长,会导致漂移再次发生,Error-Down的时间变长。为了能够正常检测到MAC地址漂移,可以修改漂移表项的老化时间。
用户网络中由于环路造成了MAC地址漂移,且网络不支持破环协议,可以在相应接口上配置发生MAC地址漂移后的处理动作来实现破环。
在VXLAN网络中,支持基于二层子接口进行MAC漂移检测。二层子接口配置了MAC地址漂移处理动作后,如果系统检测到是该二层子接口学习的MAC发生漂移,会将该二层子接口关闭。在一个MAC地址漂移表项老化周期内只能关闭一个二层子接口。
- 为避免重要上行流量中断,请用户不要在上行接口配置MAC地址漂移处理动作。
- MAC地址漂移检测功能只能做单点环路检测,无法获取整个网络的拓扑信息。如果网络支持破环协议,建议使用破环协议来消除环路。
当VLAN或者BD域内发生MAC地址漂移,并且环路未解除时,如果端口加入Eth-Trunk接口或者退出Eth-Trunk接口,MAC地址漂移记录中Original-Port和Move-Ports信息不变。请在环路解除后再清除MAC漂移表项进行重新检测,从而避免重新检测的源端口和漂移端口不准确,误导环路的定位,并且导致惩罚动作(接口Error-Down、接口风暴抑制等)下发到不准确的漂移端口上。
- MAC地址漂移检测功能只能检测单环场景,而对于多环场景,只能检测第一个环。即若一个VLAN内存在两个或多个环,漂移告警中只能上报第一个环的端口信息,不管第一个环上的端口状态是up还是down。
- MAC地址漂移检测功能一个老化周期内(默认是5分钟,可以配置)只能检测一个VLAN内的第一个环。例如:一个VLAN内PortA和PortB发生了MAC地址漂移,把其中一个端口down掉后,同一个老化周期内,PortC和PortD又发生MAC地址漂移,则漂移告警中的漂移端口仍然显示PortA和PortB。
缺省情况下,MAC刷新ARP功能处于开启状态。如果MAC漂移超过10次时,设备会关闭MAC刷新ARP功能。待MAC漂移消除后,设备会自动重新开启MAC刷新ARP功能。
- 除CE12800E安装ED-E/EG-E/EGA-E系列单板外,其他设备当端口发生MAC地址漂移后,缺省情况下系统会自动触发广播、组播和未知单播的流量抑制,使得发生漂移的出接口转发速率为入接口带宽的1%(用户可以执行storm suppression mac-address flapping命令使接口下MAC漂移联动流量抑制的阈值按照cir进行灵活的配置,并可以使报文强制按照MAC漂移联动流量抑制的阈值进行转发)。此时用户需要排查网络中是否存在环路。以下几种情况不会因为MAC漂移触发流量抑制:
- 当接口配置了相应报文类型的风暴控制或者流量抑制功能。例如执行命令storm suppression broadcast配置接口下允许通过的最大广播报文的流量,那么当发生MAC地址漂移后,系统不会自动触发广播流量抑制。
- 当全局使能组播功能时,系统不产生组播的流量抑制,即组播流量正常转发。
- 如果MAC地址漂移到peer-link接口上,则MAC漂移联动流量抑制功能在peer-link接口上不会生效。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令mac-address flapping detection [ security-level { low | middle | high } ],配置全局MAC地址漂移检测功能。
缺省情况下,已经配置了全局MAC地址漂移检测功能,检测安全级别为中级别,即MAC地址发生10次迁移后系统认为发生了MAC地址漂移。
- (可选)执行命令mac-address flapping detection exclude vlan { vlan-id1 [ to vlan-id2 ] } &<1-10> ,配置MAC地址漂移检测的VLAN白名单,即指定不检测的VLAN。
缺省情况下,没有配置MAC地址漂移检测的VLAN白名单。
- (可选)执行命令mac-address flapping detection exclude mac-address mac-address-mask,将指定MAC加入MAC漂移检测白名单,即不检测该MAC。
缺省情况下,没有指定MAC加入MAC漂移检测白名单。
- (可选)执行命令mac-address flapping aging-time aging-time ,配置MAC地址漂移表项的老化时间。
缺省情况下,MAC地址漂移表项的老化时间为5分钟。
- (可选)配置MAC地址漂移定时上报Trap的时间间隔。
- (可选)配置发生漂移后接口的处理动作。
- 执行命令commit,提交配置。
后续处理
配置发生MAC地址漂移后触发接口Error-Down后,如果检测到发生MAC地址漂移,接口将会被Error-Down并上报告警。Error-Down是指设备检测到故障后将接口状态设置为ERROR DOWN状态,此时接口不能收发报文,接口指示灯为常灭。可以通过display error-down recovery命令可以查看设备上所有被Error-Down的接口信息。
- 手动恢复(Error-Down发生后)
当处于Error-Down状态的接口数量较少时,可在该接口视图下依次执行命令shutdown和undo shutdown,或者执行命令restart,重启接口。
- 自动恢复(Error-Down发生前)
如果处于Error-Down状态的接口数量较多,逐一手动恢复接口状态将产生大量重复工作,且可能出现部分接口配置遗漏。为避免这一问题,用户可在系统视图下执行命令error-down auto-recovery cause mac-address-flapping interval interval-value使能接口状态自动恢复为Up的功能,并设置接口自动恢复为Up的延时时间。可以通过display error-down recovery查看接口状态自动恢复信息。
此方式对已经处于Error-Down状态的接口不生效,只对配置该命令后进入Error-Down状态的接口生效。