问题描述
在企业网中,对希望接入网络的设备,有如下要求:
1)在接入层交换机上,连接终端设备的每个接口均只允许一台 PC 接入网络(限制 MAC 地址接入数量)。如果试图在某个接口下级联交换机等设备来扩展接口数量,那么这种行为应该被发现或被禁止;
2)另某些企业还可能会要求只有 MAC 地址为可信任的终端发送的数据帧才允许被交换机转发到上层网络,员工不能私自更换位置(变更交换机的接入端口);
解决方案
通过交换机的 Port Security(端口安全)特性可以解决这些问题;
在交换机的特定接口上,通过部署 Port Security 特性:(1)可以限制接口的 MAC 地址学习数量;(2)并且配置出现越限时的惩罚措施;
Port Security 通过将接口学习到的 动态 MAC 地址 转换为 安全 MAC 地址,阻止非法用户通过本接口和交换机通信,从而增强设备的安全性;
原理简述
WIP
特性说明
WIP
应用场景
为了保证汇聚设备的安全性,控制接入用户的数量,可以在汇聚设备上配置 Port Security 功能,同时指定安全 MAC 地址的限制数量;
在对接入用户的安全性要求较高的网络中,可以配置端口安全功能及端口安全动态 MAC 学习的限制数量:
1)此时接口学习到的 MAC 地址会被转换为安全 MAC 地址,接口学习的最大 MAC 数量达到上限后不再学习新的 MAC 地址,仅允许这些 MAC 地址和交换机通信;
2)而且接口上安全 MAC 地址数达到限制后,如果收到源 MAC 地址不存在的报文,无论目的 MAC 地址是否存在,交换机即认为有非法用户攻击,就会根据配置的动作对接口做保护处理;
3)这样可以阻止其他非信任用户通过本接口和交换机通信,提高交换机与网络的安全性;
配置端口安全功能后,接口学习到的 MAC 地址会转换为安全 MAC 地址,接口学习的最大 MAC 数量达到上限后不再学习新的 MAC 地址,仅允许这些 MAC 地址和交换机通信;
如果接入用户发生变动,可以通过设备重启或者配置安全 MAC 老化时间刷新 MAC 地址表项;
对于相对比较稳定的接入用户,如果不希望后续发生变化,可以进一步使能接口 Sticky MAC 功能,这样在保存配置之后,MAC 地址表项不会刷新或者丢失;
概念术语
Secure MAC Address
Dynamic Secure MAC Address
1)解释:使能 Port Security,但未使能 Sticky MAC 功能,此时转换的 MAC 地址为安全动态 MAC;
2)特点:设备重启后表项会丢失,需要重新学习;缺省不会被老化,仅在配置安全 MAC 的老化时间后才可被老化;
安全动态 MAC 地址的老化类型分为:
1)绝对时间老化(在固定时间后,立即老化):如设置为 5min:系统每分钟计算一次每个 MAC 的存在时间,若 >=5min,则立即将该安全动态 MAC 地址老化;
2)相对时间老化(在固定时间内,若未刷新,则老化):如设置为 5min:系统每隔分钟检测一次是否有该 MAC 的流量。若无流量,则经过 5min 后将该安全动态 MAC 地址老化;
Static Secure MAC Address
1)解释:使能 Port Security 时,手工配置的静态 MAC 地址;
2)特点:不会被老化;当手动保存配置后,重启设备不会丢失;
Sticky MAC Address
1)解释:使能 Port Security 及 Sticky MAC 功能后,此时转换到的 MAC 地址为 Sticky MAC;
2)特点:不会被老化,手动保存配置后重启设备不会丢失;
安全保护动作
安全 MAC 地址通常与安全保护动作结合使用,常见的安全保护动作有:
2)Protect:仅丢弃 SRC-MAC-ADDR 不存在的报文,不上报告警;
1)Restrict:丢弃 SRC-MAC-ADDR 不存在的报文,并上报告警;
3)Shutdown:接口状态被置为 error-down,并上报告警;
关于 Shutdown 动作:
1)在默认情况下,接口关闭(error-down)后不会自动恢复,只能由网络管理人员在接口视图下使用 restart 命令重启接口进行恢复;
2)如果用户希望被关闭的接口可以自动恢复,则可在接口 error-down 前通过在系统视图下执行 error-down auto-recovery cause port-security interval interval-value 命令使能接口状态自动恢复为 Up 的功能,并设置接口自动恢复为 Up 的延时时间,使被关闭的接口经过延时时间后能够自动恢复;
接口 MAC 地址变化
调整 Port Security 功能,接口上的 MAC 地址变化如下:
1)开启:接口上之前学习到的动态 MAC 地址表项将被删除,之后学习到的 MAC 地址将变为安全动态 MAC 地址;
2)关闭:接口上的安全动态 MAC 地址将被删除,重新学习动态 MAC 地址;
调整 Sticky MAC 功能,接口上的 MAC 地址变化如下:
1)开启:接口上的安全动态 MAC 地址表项将转化为 Sticky MAC 地址,之后学习到的 MAC 地址也变为 Sticky MAC 地址;
2)关闭:接口上的 Sticky MAC 地址,会转换为安全动态 MAC 地址;
配置命令
port-security
# 使能端口安全功能 [Huawei-GigabitEthernet0/0/1] port-security enable # 缺省情况,未使能端口安全功能; # 配置端口安全动态 MAC 学习限制数量 [Huawei-GigabitEthernet0/0/1] port-security max-mac-num max-number # 缺省情况,max-number = 1; #(可选)手工配置安全静态 MAC 地址表项 [Huawei-GigabitEthernet0/0/1] port-security mac-address mac-address vlan vlan-id #(可选)配置端口安全保护动作 [Huawei-GigabitEthernet0/0/1] port-security protect-action { protect | restrict | shutdown } # 缺省情况下,端口安全保护动作为 restrict; # (可选)配置接口学习到的安全动态 MAC 地址的老化时间 [Huawei-GigabitEthernet0/0/1] port-security aging-time time [ type { absolute | inactivity } ]
Stick MAC Address
# 使能接口 Sticky MAC 功能 [Huawei-GigabitEthernet0/0/1] port-security mac-address sticky # 缺省情况下,接口未使能 Sticky MAC 功能; # 配置接口 Sticky MAC 学习限制数量; [Huawei-GigabitEthernet0/0/1] port-security max-mac-num max-number # 使能接口 Sticky MAC 功能后,缺省情况,接口学习的 MAC 地址限制数量为 1; # (可选)手动配置一条 sticky-mac 表项 [Huawei-GigabitEthernet0/0/1] port-security mac-address sticky mac-address vlan vlan-id
查看安全 MAC 地址
display mac-address security [ vlan vlan-id | interface-type interface-number ] * [ verbose ] # 查看安全动态 MAC 表项; display mac-address sec-config [ vlan vlan-id | interface-type interface-number ] * [ verbose ] # 查看配置的安全静态 MAC 表项; display mac-address sticky [ vlan vlan-id | interface-type interface-number ] * [ verbose ] # 查看 Sticky MAC 表项;
案例:限制接口接入的设备数量
需求:我们不希望成员任意向网络内添加设备
SW1:
interface GigabitEthernet0/0/2 shutdown stp edged-port enable port-security enable port-security protect-action shutdown port-security mac-address sticky