以太网安全

183 阅读6分钟

MAC地址表的配置及管理

display mac-addrress //查看MAC地址表
mac-address aging-time //修改动态MAC表项的老化时间

一个动态的MAC地址表被加载到交换机的MAC地址表后,其老化计时器随之启动,并开始倒计时,当计时器到0时,这个MAC表项将被删除。在交换机每收到一个数据帧时,MAC地址表中与该数据帧的源MAC地址对应的表项也会被刷新,该表项的老化计时器将被复位并重新开始倒计时。缺省的动态MAC地址表老化时间为300s

mac-address static xxxx-xxxx-xxxx g0/0/0 vlan 20 //配置静态MAC表项

mac-limit maximum max-num //限制该接口的MAC地址学习数量,参数max-num的取值范围是(0-32767)

mac-limit action {discard | forward} //当MAC地址数量达到限制后,交换机对数据帧进行丢弃或者转发
  • 当指定action为discard时,若MAC地址表数量达到限制后,若该接口收到的数据帧的源MAC地址为新的MAC地址时,丢弃这些帧。缺省时,action为discard
  • 当指定action为forward时,在MAC地址表数量达到限制后,若该接口收到的数据帧的源MAC地址为新的MAC地址时,转发这些帧,但是不记录MAC地址表项
mac-limit alarm {disable | enable} //当MAC地址数量达到限制后是否进行告警

接口安全(Port Security)

接口安全可以限制接口的MAC地址学习数量,并配置当出现违规行为时的惩罚机制。部署了Port Security的接口可以将其学习到的MAC地址变为安全MAC地址,从而阻止除了安全地址之外的其他MAC地址通过该接口接入网络。

Port Security接口开始工作后,会解析交换机在接口上收到的数据帧的源MAC地址,并进行MAC地址学习,学习到的MAC地址会被交换机转换为动态安全MAC地址,该接口将只允许这些MAC地址接入网络。当交换机接口学习到的MAC地址达到的Port Security设置的上限后,交换机将不在该接口上继续学习MAC地址,因此其他非信任的终端将无法通过该接口进行通信。动态安全MAC地址表项是不会被老化的,但是交换机重启后,这些MAC地址表项将丢失,因此交换机不得不重新学习动态安全MAC地址。

port-security enable //开启接口安全
port-security max-mac-num 1 //该接口动态安全MAC地址学习限制数量为1(缺省配置)

//protect 当该安全接口学习到的MAC地址数量达到限制数量时,它将丢弃源MAC地址不与该接口的安全MAC地址匹配的数据帧
//restrict 当该安全接口学习到的MAC地址数量达到限制数量时,它将丢弃源MAC地址不与该接口的安全MAC地址匹配的数据帧,同时发出告警,缺省为restrict
//shutdown 当该安全接口学习到的MAC地址数量达到限制数量时,如果该接口学习到新的MAC地址,它将被立即关闭(置为Error-Down状态),同时设备将发出告警
port-security protect-action {protect | restrict | shutdown}

port-security aging-time //设置动态安全MAC地址的老化时间

Sticky MAC地址

Sticky MAC地址表项在交换机保存配置后重启不会丢失

port-security mac-address sticky //设置为sticky功能
port-security mac-address sticky 5421-567d-2fd2 vlan 1 //手工配置该接口在MAC表项中增加一条5421-567d-2fd2

MAC地址漂移(MAC address flapping)和应对

同一个MAC地址在交换机的某个接口被学习到后,又在相同VLAN的另一个接口上学习到,这就是MAC地址漂移。

//高优先级的接口学习到的MAC地址表项将覆盖低优先级接口学习到的表项,由此规避MAC地址漂移问题
mac-learning priority 3 //将接口的MAC地址学习优先级调整为3,缺省为0

//一旦检测到在该VLAN内发生MAC地址漂移,则交换机仅仅产生相应的告警信息
loop-detect eth-loop alarm-only 

//当VLAN内的接口的MAC地址产生漂移时,将产生漂移的接口直接阻塞。
//接口阻塞10s,10s之后接口会被放开并重新进行检测,如果20s内没有再检测到MAC地址漂移,则接口的阻塞将被彻底解除
//如果20s再次检测到MAC地址漂移,则再次将该接口阻塞,如此重复2次
//如果交换机依然能检测到该接口发生MAC地址漂移,则永久阻塞该接口
loop-detect eth-loop block-time 10 retry-times 2 

//查看接口的状态
display loop-detect eth-loop

//永久阻塞的接口是无法自动恢复的,只能通过该命令恢复“block forever”的接口
reset loop-detect eth-loop vlan 1 interface Ethernet 0/0/1

//在VLAN内的接口,只针对MAC地址发生漂移时,将漂移的MAC地址阻塞
loop-detect eth-loop block-mac block-time 10 retry-times 2

//将永久阻塞的MAC地址5421-567d-2fd2恢复
loop-detect eth-loop vlan 1 mac-address 5421-567d-2fd2

//查看MAC地址漂移的历史记录
display mac-address flapping record

//在检测MAC地址漂移检测排除VLAN1
mac-address flapping detection exclude vlan 1

//查看MAC地址漂移属性
display mac-address flapping

DHCP Snooping

image.png

//AR1配置
#
dhcp enable
#
interface GigabitEthernet0/0/0
 ip address 192.168.10.1 255.255.255.0 
 dhcp select interface
#

//AR2配置
#
dhcp enable
#
interface GigabitEthernet0/0/0
 ip address 192.168.11.1 255.255.255.0 
 dhcp select interface
#

//LSW2配置
#
vlan batch 10
#
dhcp enable
#
dhcp snooping enable
#
vlan 10
 dhcp snooping enable
#
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 10
 dhcp snooping trusted
#
interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 10
#
interface GigabitEthernet0/0/3
 port link-type access
 port default vlan 10
#

激活DHCP Snooping后,接口存在两种角色

接口名称备注
信任接口允许接收包括DHCP Offer报文在哪的服务器应答报文
非信任接口不会接收包括DHCP Offer、DHCP ACK、DHCP NAK等在内的服务器应答报文

图中,开启DHCP Snooping后,VLAN内的接口缺省为非信任接口,此时在LSW2的g0/0/1接口设置trusted,此时只会接收到从AR1上侦听DHCP报文

//显示dhcp snooping报文交互记录
display dhcp snooping user-bind all