交换机学习的是源MAC地址,并将源MAC地址和学习到该地址的接口做一个对应,记录在一张表中,这个表称为MAC地址表,并根据目标MAC地址进行以太网帧的转发。在正常情况下,一个接口可以对应多个MAC地址,为了更好的控制交换机接口上MAC地址的数量以及具体的MAC地址,可以使用port security进行控制。

Port Security可以控制交换机上特定的接口与特定的MAC地址的对应关系,也可以限制接口上最大的MAC地址数量。具有port security功能的接口称为secure port,在secure port上只会转发预先定义好的MAC地址的流量,也就是合法流量,对于其他MAC地址的流量(违规流量)是拒绝的。区别是否违规,是通过如下方法实现的:

(1)当接口上的MAC地址达到所允许的MAC地址的最大上限时,如果还有其他的MAC地址要访问的话,就算违规。

(2)一个secure port上所定义的MAC地址在另外的secure port上访问时也算违规,也就是指定的MAC地址只能出现在指定的端口,出现在其他端口则算违规。

secure port只会放行源MAC地址为安全的MAC地址的数据包,其他的违规的MAC地址都会被拒绝。


定义安全MAC地址的方法:

(1)静态手工指定

管理员手动的添加MAC地址和接口的对应关系,会保存在MAC地址表和running-configuration中。

(2)动态学习

将交换机动态学习的MAC地址作为安全的MAC地址,但是这个MAC地址只会保存在MAC地址表中,当交换机重启后就会丢失。

(3)Sticky secure MAC addresses

结合了静态和动态的有点,stick特性是将交换机动态学习到的MAC地址作为安全的MAC地址并保存在running-configuration中。


对于违规的流量,可以有如下几种处理方法:

(1)protect

只丢弃不允许MAC地址的流量,其它合法流量正常,但不会通知有流量违规了

(2)restric

只丢弃不允许MAC地址的流量,其它合法流量正常,但会有通知,发送SNMP

trap,并会记录syslog。

(3)shutdown

(默认模式)将接口变成error-disabled并shut down,并且接口LED灯会关闭,也会发SNMP  trap,并会记录syslog。

(4)shutdown vlan

相应VLAN变成error-disabled ,但接口不会关,也会发SNMP trap,并会记录syslog。

注意:

当接口被error-disabled后,要恢复,请在接口上使用命令:shutdown 后no shutdown。


注:

★默认接口上Port Security是关闭的,Port Security默认只允许1个安全MAC地址。

★只能在静态access接口和静态trunk接口上配Port Security,不能在dynamic接口上配。

★Port Security接口不能是SPAN的目标接口,不能在EtherChannel中。


Port Security MAC地址老化时间

对于在Port Security接口下设置MAC地址的老化时间,分两种类型:absolute和inactivity,其中absolute表示绝对时间,即无论该MAC地址是否在通信,超过老化时间后,立即从表中删除;inactivity 为非活动时间,即该MAC地址在没有流量的情况下,超过一定时间后,才会从表中删除。

配置MAC地址老化时间的单位是分钟,范围是0-1440,对于sticky得到的MAC地址,不受老化时间限制,并且不能更改。


配置port security:

sw1(config-if)#switchport port-security //接口下启用port security特性

sw1(config-if)#switchport port-security maximum 2//接口允许的mac地址的最大数量

sw1(config-if)#switchport port-security mac-address aabb.cc00.0100//设置安全的MAC地址,这个就是静态手动指定的,存在于running-configuration中,不会丢失,除非手动删除。

sw1(config-if)#switchport port-security violation protect //定义对于违规的MAC地址的采取的动作

sw1(config-if)#switchport port-security mac-address sticky //启用MAC地址的stick特性,将动态学习到的MAC地址作为静态地址存在running-configuration中。

sw1(config-if)#switchport port-security aging time 10 //设置动态学习到的MAC地址的老化时间为10分钟

sw1(config-if)#switchport port-security aging type inactivity//设置MAC地址的老化类型,这里设置为inactivity,即该MAC地址如果10分钟都没有流量的话,则从MAC地址表中删除。

sw1(config-if)#switchport port-security aging static //设置静态手动配置的MAC地址在指定的时间内如果没有流量的话,也会删除。