一、什么是MAC地址漂移?
MAC地址漂移是指网络中设备的MAC地址在运行过程中发生变化的现象。
MAC地址是用于唯一标识网络中的设备。
MAC地址漂移是指交换机上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。
当一个MAC地址在两个端口之间频繁发生迁移时,即会产生MAC地址漂移现象:正常情况下,网络中不会在短时间内出现大量MAC地址漂移的情况。出现这种现象一般都意味着网络中存在环路,或者存在网络攻击行为。

二、MAC地址漂移如何防止?
如果是环路引发的MAC地址漂移,解决的方法是部署防环技术,如STP,消除二层环路,假如是网络攻击等其他因素引起的MAC地址漂移可以配置接口MAC地址的学习优先级和配置不允许相同优先级接口MAC地址漂移

(1)在默认时接口MAC地址学习的优先级均为0,数值越大优先级越高。当同一个MAC地址被两个个接口学习到后,接口MAC地址学习优先级高的会被保留,MAC地址学习优先级低的被覆盖。
(2)在配置不允许相同优先级接口MAC地址漂移时,如果安全网络设备下电,则交换机仍会学习到伪造网络设备的MAC地址,当网络设备再次上电时将无法学习到正确的MAC地址。因此该特性需谨慎使用,如果交换机的接口连接的网络设备是服务器,当服务器下电后,另外的接口学习到与服务器相同的MAC地址,当服务器再次上电后就不能学习到正确的MAC地址。
三、MAC地址漂移如何进行检测 ?
交换机支持MAC地址漂移检测机制,分为以下两种方式:
。基于VLAN的MAC地址漂移检测
。配置VLAN的MAC地址漂移检测功能可以检测指定VLAN下的所有的MAC地址是否发生漂移。。当MAC地址发生漂移后,可以配置指定的动作,例如告警、阻断接口或阻断MAC地址。全局MAC地址漂移检测
。该功能可以检测设备上的所有的MAC地址是否发生了漂移。
·若发生漂移,设备会上报告警到网管系统。
。用户也可以指定发生漂移后的处理动作,例如将接口关闭或退出VLAN。
四、实验
由环路引起的MAC地址漂移




由于华为交换机默认打开STP所以实验开始我们要用undo stp enable将交换机的STP关闭

LSW2和LSW4交换机都是一样的操作
实验配置
LSW1命令
[LSW1-GigabitEthernet0/0/2]mac-learning priority 3 //配置接口的优先级为3
LSW2命令
[LSW2]mac-address flapping detection
[LSW2]mac-address flapping aging-time 500
[LSW2int g0/0/2
[LSW2-GigabitEthernet0/0/2]mac-address flapping trigger error-down
//配置检测到mac地址漂移的动作为关闭接口
[LSW2]int g0/0/3
[LSW2-GigabitEthernet0/0/3]mac-address flapping trigger error-down
[LSW2]error-down auto-recovery cause mac-address-flapping interval 500
//自动恢复接口的时间为500秒
注:在教材中配置检测发生漂移动作的处理动作时这个action(有些交换机)没法使用,我们可以用trigger来代替它
测试
用终端去连通server,可以发现连不通,因为当前的网络处于二层环路状态,所以连不通。


当交换机检测到MAC地址漂移后就会进行配置动作(关闭接口),配置动作完成后终端就能连通server

下面可以看到接口已经关闭

[LSW2]dis mac-address flapping record //查看mac地址漂移日志

由网络攻击引起的MAC地址漂移

在配置上与上面的配置差不多,只是不需要关闭stp,且要将两个终端的MAC地址改为一样的
其中一个是伪装的攻击者


LSW5命令
[LSW5-GigabitEthernet0/0/1]mac-learning priority 3
LSW6命令
[LSW6]mac-address flapping detection
[LSW6]mac-address flapping aging-time 60
[LSW6]int g0/0/2
[LSW6-GigabitEthernet0/0/2]mac-address flapping trigger error-down
[LSW6-GigabitEthernet0/0/2]int g0/0/3
[LSW6-GigabitEthernet0/0/3]mac-address flapping trigger error-down
[LSW6]error-down auto-recovery cause mac-address-flapping interval 60
测试
与上面的实验一样也是终端去pingserver,不过在上面的实验是要设备之间能够连通,这个实验是要攻击者ping不到server


当交换机检测到MAC地址漂移后启用动作,PC4连通不了了


[LSW6]dis mac-address flapping record //查看mac地址漂移日志

至此,实验结束
五、总结
总的来说,MAC地址漂移是一种需要及时检测和处理的网络现象,它可能由多种因素引起,对网络的稳定性和性能产生负面影响。通过配置MAC地址漂移检测功能、查看告警信息、分析漂移记录以及采取适当的防止措施,可以有效地管理和解决MAC地址漂移问题。