网络工程师华为交换机MAC漂移

2023年 7月 30日 55.0k 0

1、MAC漂移现象

MAC地址漂移是指设备上一个VLAN内有两个或者三个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。通常认为第一个学习到MAC地址的接口是正确的出接口,称为源端口(Original Port),后学习的端口是漂移端口(Move Port),漂移端口通常是在环路上或者下挂网络中有环路的端口。

设备出现MAC地址漂移时,设备CPU占用率会有不同程度的升高。

在规划网络时,可以通过下面两种方式来避免MAC地址漂移:

(1)提高接口MAC地址学习优先级。当不同接口学到相同的MAC地址表项时,高优先级接口学到的MAC地址表项可以覆盖低优先级接口学到的MAC地址表项,防止MAC地址在接口间发生漂移。

(2)不允许相同优先级的接口发生MAC地址表项覆盖。当伪造网络设备所连接口的优先级与安全的网络设备相同时,后学习到的伪造网络设备的MAC地址表项不会覆盖之前正确的表项。但如果网络设备下电,仍会学习到伪造网络设备的MAC地址,当网络设备再次上电时将无法学习到正确的MAC地址。

图片[1]-网络工程师-华为交换机MAC漂移-不念博客MAC漂移

2、MAC漂移解决方法

2.1 配置MAC地址防漂移

2.1.1 提高接口MAC地址学习优先级

进入系统视图。

system-view

进入接口视图。

interface interface-type interface-number

配置接口学习MAC地址的优先级。

mac-address learning priority priority-id

缺省情况下,接口学习MAC地址的优先级为0。取值范围是0~3,数值越大优先级越高。

返回系统视图。

quit

2.1.2 不允许相同优先级的接口发生MAC地址漂移

配置不允许相同优先级的接口发生MAC地址漂移。

undo mac-address learning priority priority-id allow-flapping

缺省情况下,允许相同优先级的接口发生MAC地址漂移。

2.2 配置MAC刷新ARP功能

在以太网中,主机设备是根据MAC地址来发送、接收以太网数据帧。ARP用于提供IP地址到MAC地址的映射。当不同网段间通信时,需要使用ARP表项来将IP地址映射到正确的MAC地址及相应的出接口上。

一般来说设备上的MAC表项和ARP表项的出接口是一致的。在某一时间点t1,MAC地址表项和ARP表项的出接口是一致的,都是interface1;但是当端口切换后,t2时间时,MAC地址表项的出接口在收到报文时立即刷新为interface2,但是ARP表项的出接口还是interface1,需要等到t3时间点即ARP表项的老化时间到达后,通过ARP老化探测,才会刷新为interface2。这样就在t2时间点和t3时间点之间,ARP表项的出接口是不可用的,会导致不同网段间设备的通信中断。

MAC刷新ARP可以实现在MAC出接口更新时,直接刷新ARP表项的出接口的功能。配置方法如下:

进入系统视图。

system-view

配置MAC刷新ARP功能。

mac-address update arp enable

该命令只对动态ARP表项生效,不会更新静态ARP表项。

使用arp anti-attack entry-check { fixed-mac | fixed-all | send-ack } enable命令配置ARP表项固化功能后,MAC刷新ARP功能不生效。

使能了MAC刷新ARP功能后,只有MAC表项的出接口发生变化,才会更新对应的ARP表项。

2.3 配置基于接口关闭MAC地址学习

创建VLAN,并将接口加入到VLAN中。

# 将10GE1/0/1加入VLAN 10和VLAN 20。

system-view

[HUAWEI] sysname DeviceA

[DeviceA] vlan batch 10 20

[DeviceA] interface 10ge 1/0/1

[DeviceA-10GE1/0/1] port link-type trunk

[DeviceA-10GE1/0/1] port trunk allow-pass vlan 10 20

[DeviceA-10GE1/0/1] quit

配置基于接口关闭MAC地址学习。

# 在接口10GE1/0/1上关闭MAC地址学习,端口学习到新的MAC地址的报文直接丢弃。

[DeviceA] interface 10ge 1/0/1

[DeviceA-10GE1/0/1] mac-address learning disable action discard #关闭MAC地址学习功能

[DeviceA-10GE1/0/1] quit

关闭MAC地址学习功能的缺省动作为forward,即对报文按照MAC地址表项进行转发,如果没有对应的MAC地址表项,则广播该报文。当配置动作为discard时,会对报文的源MAC地址进行匹配,当接口和MAC地址与MAC地址表项匹配时,对该报文进行转发;当接口和MAC地址与MAC地址表项不匹配时,丢弃该报文。

2.4 配置端口聚合

如果出现mac漂移的源端口和漂移端口是同一个主机且做同一个业务网卡使用,可以将这两个接口配置eth-trunk。

2.5 配置接口为二层接口

[DeviceA] interface 10ge 1/0/1

[DeviceA-10GE1/0/1] portswitch #将接口从三层模式切换到二层模式

相关文章

如何在 Linux 中使用 logname 命令?
为什么有 HTTPS?HTTPS 如何实现安全通信?
HTTPS的TSL握手流程是什么
华为无线网络射频调优及WLAN跨VLAN的三层漫游示例
502错误是什么、应该怎么排查?
HTTP3为什么抛弃了经典的TCP,而选择QUIC

发布评论