一. MAC地址表的定义
MAC地址表记录了交换机学习到的其他设备的MAC地址与接口的对应关系,以及接口所属VLAN等信息。设备在转发报文时,根据报文的目的MAC地址查询MAC地址表,如果MAC地址表中包含与报文目的MAC地址对应的表项,则直接通过该表项中的出接口转发该报文;如果MAC地址表中没有包含报文目的MAC地址对应的表项时,设备将采取广播方式在所属VLAN内除接收接口外的所有接口转发该报文。
二. MAC地址表的组成
动态表项:
- 由接口通过报文中的源MAC地址学习获得,表项可老化,默认老化时间为300s。
- 在系统复位、接口板热插拔或接口板复位后,动态表项会丢失。
- 可以通过查看动态MAC地址表项,可以判断两台相连设备之间是否有数据转发;也可以通过查看指定动态MAC地址表项的个数,可以获取接口下通信的用户数。
静态表项:
- 由用户手工配置,并下发到各接口板,表项不可老化。
- 在系统复位、接口板热插拔或接口板复位后,保存的表项不会丢失。
- 一条静态MAC地址表项,只能绑定一个出接口。一个接口和MAC地址静态绑定后,不会影响该接口动态MAC地址表项的学习。通过绑定静态MAC地址表项,可以保证合法用户的使用,防止其他用户使用该MAC进行攻击。
黑洞表项:
- 由用户手工配置,并下发到各接口板,表项不可老化。
- 在系统复位、接口板热插拔或接口板复位后,保存的表项不会丢失。
- 通过配置黑洞MAC地址表项,可以过滤掉非法用户。
可通过:dispaly mac-address 查看设备的MAC表项。
三. MAC地址表的配置
- 配置静态地址表项
[Huawei]mac-address static 0011-2233-4455 GigabitEthernet 0/0/2 vlan 1
- 配置黑洞MAC地址表项
[Huawei]mac-address blackhole 00aa-bbcc-ddee
- 配置MAC地址表项老化时间
[Huawei]mac-address aging-time 400
四. 端口安全
端口安全(Port Security)通过将接口学习到的动态MAC地址转换为安全MAC地址,阻止非法用户通过本接口和交换机通信,从而增强设备的安全性。
1. 安全MAC地址分类:
(1). 安全动态MAC地址
使能端口安全而未使能Sticky MAC功能时转换的MAC地址。
(2). 安全静态MAC地址
使能端口安全时手工配置的静态MAC地址。
(3). Sticky MAC地址
使能端口安全后又同时使能Sticky MAC功能后转换到的MAC地址。
2. 端口安全说明:
(1)接口使能端口安全功能时,接口上之前学习到的动态MAC地址表项将被删除,之后学习到的MAC地址将变为安全动态MAC地址。
(2)接口使能Sticky MAC功能时,接口上的安全动态MAC地址表项将转化为Sticky MAC地址,之后学习到的MAC地址也变为Sticky MAC地址。
(3)接口去使能端口安全功能时,接口上的安全动态MAC地址将被删除,重新学习动态MAC地址。
(4)接口去使能Sticky MAC功能时,接口上的Sticky MAC地址,会转换为安全动态MAC地址。
五. 配置端口安全
1. 配置安全MAC功能
[Huawei-GigabitEthernet0/0/2]port-security enable
\\使能端口安全功能
[Huawei-GigabitEthernet0/0/2]port-security protect-action shutdown
\\配置端口安全保护动作
[Huawei-GigabitEthernet0/0/2]port-security max-mac-num 5
\\配置端口安全动态MAC学习限制数量
[Huawei-GigabitEthernet0/0/2]port-security aging-time 1000
\\配置接口学习到的安全动态MAC地址的老化时间
2. 配置Sticky MAC功能
[Huawei-GigabitEthernet0/0/2]port-security enable
[Huawei-GigabitEthernet0/0/2]port-security mac-address sticky
\\使能接口Sticky MAC功能
3. 配置说明
(1)接口使能Sticky MAC功能,即使配置了port-security aging-time,Sticky MAC也不会被老化。
(2)Sticky MAC地址表项,保存后重启设备不丢弃。
4. 端口安全的保护动作
(1)Restrict:丢弃源MAC地址不存在的报文并上报告警。推荐使用restrict动作。
(2)Protect:只丢弃源MAC地址不存在的报文,不上报告警。
(3)Shutdown:接口状态被置为error-down,并上报告警。
六. MAC地址漂移
1. 定义
MAC地址漂移是指设备上一个VLAN内有两个端口学习到同一个MAC地址,后学到的MAC地址表项覆盖原MAC地址表项的现象。
如图所示,MAC地址为0011-0022-0034的表项,出接口由GE1/0/1刷新为GE1/0/2,这就是MAC地址漂移。设备出现MAC地址漂移时,设备CPU占用率会有不同程度的升高。正常情况下,网络中不会在短时间内出现大量MAC地址漂移的情况。出现这种现象一般都意味着网络中存在环路,可以通过查看告警信息和漂移记录,快速定位和排除环路。
2. MAC地址漂移避免机制
(1)提高接口MAC地址学习优先级:当不同接口学到相同的MAC地址表项时,高优先级接口学到的MAC地址表项可以覆盖低优先级接口学到的MAC地址表项,防止MAC地址在接口间发生漂移。
(2)不允许相同优先级的接口发生MAC地址表项覆盖:当伪造网络设备所连接口的优先级与安全的网络设备相同时,后学习到的伪造网络设备的MAC地址表项不会覆盖之前正确的表项。但如果网络设备下电,仍会学习到伪造网络设备的MAC地址,当网络设备再次上电时将无法学习到正确的MAC地址。
3. MAC地址漂移检测
MAC地址漂移检测是利用MAC地址出接口跳变的现象,检测MAC地址是否发生漂移的功能。
配置MAC地址漂移检测功能后,在发生MAC地址漂移时,可以上报包括MAC地址、VLAN,以及跳变的接口等信息的告警。其中跳变的接口即为可能出现环路的接口。网络管理员可以根据告警信息,手工排查网络中环路的源头,也可以使用MAC漂移检测提供的后续动作,使跳变的端口down或者VLAN从端口中退出,实现自动破环。
如图所示网络中,若SwitchC和SwitchD之间误接网线,则SwitchB、SwitchC、SwitchD之间形成环路。当SwitchA上Port1接口从网络中收到一个广播报文后转发给SwitchB,该报文经过环路,会被SwitchA上Port2接口收到。配置MAC地址漂移检测功能,SwitchA就会感知到MAC地址出接口跳变的现象。若连续出现此现象,SwitchA就会上报MAC漂移告警,提醒管理员进行维护。
4. MAC地址防漂移配置
(1)配置接口MAC地址学习优先级
[Huawei-GigabitEthernet0/0/2]mac-learning priority 3
\\配置接口学习MAC地址的优先级,缺省情况下,接口学习MAC地址的优先级为0,数值越大优先级越高
(2)配置不允许相同优先级接口MAC地址漂移
[Huawei]undo mac-learning priority 3 allow-flapping
\\配置不允许相同优先级的接口发生MAC地址漂移
(3)配置全局MAC地址漂移检测
[Huawei]mac-address flapping detection
\\配置全局MAC地址漂移检测功能
(4)配置基于VLAN的MAC地址漂移检测
[Huawei]vlan 2
[Huawei-vlan2]loop-detect eth-loop block-time 100 retry-times 3
\\配置MAC地址漂移检测功能