端口安全是根据MAC地址对网络流量进行控制和管理的安全功能,该功能不仅将MAC地址与端口绑定,还可以限制端口学到的MAC地址的数量。它将端口学习到的动态MAC地址转换为安全MAC地址(包括安全动态MAC、安全静态MAC和Sticky MAC)后,端口只允许源MAC地址在安全MAC地址列表里的报文通过,源MAC地址不在安全MAC地址列表里的报文被认为非法的用户报文。端口安全功能可以阻止非法用户通过本端口和交换机通信,从而增强网络的安全性。
非法用户获取到设备某端口的MAC地址以后,企图以该端口的MAC地址为目的MAC地址与设备通信,从而发起攻击。比如非法用户构造大量源MAC地址变化的报文并发送给交换机后,交换机的MAC表项资源就可能被耗尽。当MAC表资源被耗尽后,即使交换机再收到正常的报文,也无法学习到报文中的源MAC地址。再比如,在对接入用户的安全性要求较高的网络中,外来人员使用自己带来的电脑访问公司网络,会给网络带来极大的安全隐患。
为避免这种攻击及隐患,设备可以使能端口安全功能,将端口学习到的动态MAC地址转换为安全MAC地址。此时,端口上之前学习到的动态MAC地址表项将被删除,端口重新学习的MAC数量达到上限后不再学习新的MAC地址。对于端口收到的报文,如果其中的源MAC地址在安全MAC地址表项中,则放通该报文进来;如果其中的源MAC地址在安全MAC地址表项中不存在,均视为非法用户攻击,并实施丢弃报文、告警上报、或者关闭端口的保护动作。
MAC地址表中的表项可以分为动态表项、静态表项和黑洞表项。而安全MAC是一种业务类型的MAC地址表项,是通过动态表项转换来的。
使能端口安全后,并实施丢弃报文、告警上报、或者关闭端口的保护动作。
安全MAC地址分为安全动态MAC、安全静态MAC与Sticky MAC,详细情况请参见下表。
类型 | 定义 | 特点 |
---|---|---|
安全动态MAC地址 | 使能端口安全而未使能Sticky MAC功能时转换的MAC地址。 | 设备重启后表项会丢失,需要重新学习。 缺省情况下不会被老化,只有在配置安全MAC的老化时间后才可以被老化。 安全动态MAC地址的老化类型分为:绝对时间老化和相对时间老化。
|
安全静态MAC地址 | 使能端口安全时手工配置的静态MAC地址。 | 不会被老化,手动保存配置后重启设备不会丢失。 使能安全静态MAC需要事先知道终端的MAC,然后手工配置端口、MAC和VLAN的对应关系。 |
Sticky MAC地址 | 使能端口安全后又同时使能Sticky MAC功能后转换到的MAC地址。 | 不会被老化,手动保存配置后重启设备不会丢失。 使能Sticky MAC功能不需要事先知道终端的MAC,使能Sticky MAC功能后端口自动实现端口、MAC、VLAN的对应关系。 |
当端口安全功能或者Sticky MAC功能使能/去使能时,端口上的MAC地址会变化或者被删除,详细情况请参见下表。
功能 | 使能 | 去使能 |
---|---|---|
端口安全功能 | 端口上之前学习到的动态MAC地址表项将被删除,之后学习到的MAC地址将变为安全动态MAC地址。 | 端口上的安全动态MAC地址将被删除,重新学习动态MAC地址。 |
Sticky MAC功能 | 端口上的安全动态MAC地址表项将转化为Sticky MAC地址,之后学习到的MAC地址也变为Sticky MAC地址。 | 端口上的Sticky MAC地址,会转换为安全动态MAC地址。 |
使能端口安全后,端口默认只能学习一个安全MAC,可以手工设置端口学习安全MAC数目。端口上安全MAC地址数达到限制后,如果收到源MAC地址是安全MAC列表里不存在的MAC地址,无论目的MAC地址是否存在,交换机即认为有非法用户攻击,就会根据配置的动作对端口做保护处理。端口安全保护动作有restrict、protect和shutdown三种。端口安全的保护动作请参见下表,缺省情况下,保护动作是丢弃该报文并上报告警。
动作 | 说明 |
---|---|
restrict | 丢弃源MAC地址不在安全MAC地址列表里的报文并上报告警。推荐使用restrict动作。 |
protect | 只丢弃源MAC地址不在安全MAC地址列表里的报文,不上报告警。 |
shutdown | 端口状态被置为error-down,并上报告警。 |
安全MAC地址也属于静态MAC地址,端口上配置静态MAC地址漂移的检测功能后,如果收到报文的源MAC地址已经存在在其他端口的静态MAC表中,交换机则认为存在安全静态MAC地址漂移,就会根据配置的动作对端口做保护处理。端口安全保护动作有restrict、protect和shutdown三种。
动作 | 说明 |
---|---|
restrict | 丢弃触发静态MAC地址漂移的报文并上报告警。推荐使用restrict动作。 |
protect | 只丢弃触发静态MAC地址漂移的报文,不上报告警。 |
shutdown | 端口状态被置为error-down,并上报告警。 |
端口安全经常使用在以下几种场景:
应用在接入层设备,通过配置端口安全可以防止仿冒用户从其他端口攻击。
应用在汇聚层设备,通过配置端口安全可以控制接入用户的数量。
防止外来人员使用自己带来的电脑访问公司网络。
防止本公司员工私下更换位置。
如果接入用户变动比较频繁,可以通过端口安全把动态MAC地址转换为安全动态MAC地址。这样可以在用户变动时,及时清除绑定的MAC地址表项。
如果接入用户变动较少,可以通过端口安全把动态MAC地址转换为Sticky MAC地址。这样在保存配置重启后,绑定的MAC地址表项不会丢失。
如果接入用户变动较少,且数量较少的情况下,可以通过配置为安全静态MAC地址,实现MAC地址表项的绑定。
如下图所示,树状组网中,多个用户通过SwitchA和汇聚层设备Switch进行通信。为了保证汇聚设备的安全性,控制接入用户的数量,可以在汇聚Switch设备配置端口安全功能,同时指定安全MAC地址的限制数,防止MAC地址泛洪造成汇聚Switch设备MAC地址表填满。