二层转发的转发表是MAC表。设备通过MAC表查找报文的出接口。如果查表失败,数据包将被广播,所以广播风暴是二层网络。最常见的现象。因此,如何保证转发表的安全以及如何抑制广播风暴是二层网络安全的关键问题。1.如何保证转发表的安全?为了保证二层流量的正常转发,交换机针对不同的应用场景提供了不同的方法来保证转发表的安全。例如:MAC防漂移和端口安全,通过MAC与接口的绑定来保证MAC表的安全。DHCPSnooping通过记录用户的DHCP认证信息,保证动态用户的安全访问。2、MAC防浮动接口只要收到一个报文,就会学习MAC表项。交换机从正确的接口学习到合法用户的MAC表后,当从其他接口接收到非法用户的攻击报文时,会导致MAC表项学习错误,导致二层转发不正常。最典型的场景如下图所示。非法用户通过模拟网关的源MAC地址向接入交换机发送报文,MAC1对应的网关出接口会从IF1漂移到IF2。这样,当下行用户向网关发送报文时,通过MAC表项查询到的出接口是错误的IF2,用户的报文无法转发到网关,二层转发不正常。针对这种场景,Sswitch有两种安全防范的方法:1.配置静态MAC地址:手动将网关的MAC地址绑定到接口上,使网关的MAC地址不能漂移。[SwitchA]mac-addressstatic3-3-3gigabitethernet0/0/10vlan4//假设网关的MAC地址为3-3-3,接口为GE0/0/10,将接口与MAC绑定在VLAN4的广播域2.配置MAC学习优先级:使IF1接口的MAC学习优先级高于IF2接口。这样,如果IF2接口收到源MAC为MAC1的报文,就不会重新学习MAC地址,这样MAC地址就不会漂移。[SwitchA]interfacegigabitethernet0/0/10//连接网关的接口[SwitchA-GigabitEthernet0/0/10]mac-learningpriority3//配置接口MAC学习优先级为最高值3注意:部分交换机不支持MAC学习优先级的配置。可以配置MACSpoofing功能,将网关接口设置为可信接口,防止网关MAC地址漂移。配置方法如下:[SwitchA]mac-spoofing-defendenable//全局启用MACSpoofing功能[SwitchA]interfacegigabitethernet0/0/10//连接网关的接口[SwitchA-GigabitEthernet0/0/10]mac-spoofing-defendenable//配置接口为可信接口3.端口安全端口安全也是一种保证转发表安全的特性。接口使能端口安全功能后,接口学习到的MAC地址会自动转换为安全MAC地址,并与接口进行绑定。这样该MAC地址对应的用户只能通过该接口访问,不能再次访问该接口。从其他接口访问。另外,端口安全还可以通过设置接口下的MAC表项数量来限制用户访问,保证只有最前面的用户可以访问,后面的用户不能访问,同时也可以防止黑洞MAC泛洪攻击导致MAC表条目溢出问题。但是端口安全无法判断访问的用户是否合法。只能保证先到的用户可以访问。如果先到的用户是非法用户,也可以访问。如上图所示,某企业为了保证接入用户的安全,通过发送源MAC地址频繁变化的报文来防止非法用户攻击网络,通过欺骗MAC地址来防止非法用户接入网络。要求一个接口下只允许三个用户访问,并且要求这三个用户只能通过指定的接口访问,不能通过任何端口访问。为实现上述安全策略,可以在SwitchA的GE0/0/1上配置端口安全,当非法用户试图访问该接口时上报告警。在交换机上配置端口安全的方法如下:[SwitchA]interfacegigabitethernet0/0/1[SwitchA-GigabitEthernet0/0/1]port-securityenable//在接口[SwitchA-GigabitEthernet0/0/1]上开启端口安全port-securitymax-mac-num3//配置界面下只允许绑定三个MAC地址,即只允许三个用户访问。缺省情况下,接口开启端口安全后,只能绑定一个MAC地址[SwitchA-GigabitEthernet0/0/1]port-securitymac-addresssticky//开启StickyMAC功能。保存配置重启后,接口与MAC的绑定不会消失。4、如何抑制广播风暴?1、什么是广播风暴?Itisbroadcast,unknowngroup网络中广播和未知单播报文过多或形成环路。2、为什么会出现广播风暴?二层转发是根据MAC表项进行转发。如果报文的MAC地址在MAC表中找不到对应的出接口,则报文会在VLAN内的所有端口上转发,从而产生广播风暴。3、如何抑制广播风暴?抑制广播风暴最根本的方法是找到报文的出接口,使报文单播转发。但在实际应用中,由于MAC表的规范限制和二层转发原理,广播风暴并不能完全解决,只能尽可能降低安全风险。交换机提供两种安全手段:一种是基于不同维度的流量抑制,另一种是通过风暴控制阻塞端口或Error-Down端口。5.流量抑制流量抑制可以从以下三个维度进行抑制:1.基于接口的流量限制在接口的入方向,按照百分比、报文速率和比特率对三类报文进行流量抑制。2.基于VLAN的限流针对某个VLAN的上行流量,根据码率对三类报文进行流量抑制。3.基于接口的流量阻断在接口出方向,阻断这三类报文的转发。这些功能应该如何应用?下面我们从下图的拓扑结构来看一下应用场景和配置方法。SwitchA是汇聚层交换机。通过接口GE0/0/1接入网络的用户属于两个VLAN,VLAN10和VLAN20;通过接口GE0/0/2接入网络的用户属于VLAN30;GE0/0/3接口接入网络的用户只有一个固定用户接入网络。该用户对安全性要求高,不想接收广播、未知组播、未知单播报文。(1)配置思路:接口GE0/0/1下的用户属于不同的VLAN域,可以对不同的VLAN进行流量抑制。接口GE0/0/2下的用户属于同一个VLAN,可以直接在该接口上进行流量抑制。接口GE0/0/3下的用户安全性要求高,基于接口对广播、未知组播、未知单播报文流量进行阻断(2)配置方式:配置基于VLAN的流量抑制,对广播和未知流量进行限制每个VLAN的未知组流量。广播和未知的单播数据包。[SwitchA]qoscarqoscar1cir1000//配置QoS模板,承诺速率1000kbit/s[SwitchA]vlan10[SwitchA-vlan10]broadcast-suppressionqoscar1//在VLAN视图下应用该模板,抑制广播包,承诺速率1000kbit/s[SwitchA-vlan10]multicast-suppressionqoscar1//在VLAN视图下应用该模板,抑制未知组播,承诺速率为1000kbit/s[SwitchA-vlan10]unicast-suppressionqoscar1//在VLAN视图下应用该模板,用于抑制未知单播,承诺速率为1000kbit/根据接口配置进行流量抑制,限制广播、未知组播和未知单播报文在该接口上的流量。[SwitchA]interfacegigabitethernet0/0/2[SwitchA-GigabitEthernet0/0/2]broadcast-suppression5//广播包速率最多为接口速率的5%[SwitchA-GigabitEthernet0/0/2]multicast-suppression5//未知组播packetrateisatmost5%oftheinterfacerate[SwitchA-GigabitEthernet0/0/2]unicast-suppression5//Unknownunicastpacketrateismost5%oftheinterfacerate描述:基于接口的流量有3种配置方式suppression:Yes基于百分比,包率和码率分别基于接口阻塞广播、未知组播和未知单播包抑制流量[SwitchA]interfacegigabitethernet0/0/3[SwitchA-GigabitEthernet0/0/3]broadcast-suppressionblockoutbound//BlockbroadcastpacketsText[SwitchA-GigabitEthernet0/0/3]multicast-suppressionblockoutbound//阻止未知组播数据包[SwitchA-GigabitEthernet0/0/3]unicast-suppressionblockoutbound//阻止未知单播数据包速率控制广播,unknown组播和未知单播报文,当速率超过设置的阈值时,它还可以对接口执行惩罚动作。1.阻塞端口:当接口上三种报文的任意一种在检测周期内的平均速率超过指定的最大阈值时,接口将被阻塞。当检测周期内接口上三种报文的平均速率低于指定的最小阈值时,接口将解除阻塞。2.Error-Down端口:当接口上三种报文中任意一种的平均速率在一个检测周期内超过指定的最大阈值时,接口将Error-Down。默认情况下,error-down接口不会自动恢复,需要通过restart命令手动恢复。如果在接口Error-Down之前配置了自动恢复时间,接口会在超时后自动恢复。配置方法:[SwitchA]error-downauto-recoverycausestorm-controlinterval20//如果接口被风暴控制errordown,20秒后接口会自动恢复[SwitchA]interfacegigabitethernet0/0/5[SwitchA-GigabitEthernet0/0/5]storm-controlbroadcastmin-rate1000max-rate2000//广播包惩罚动作阈值[SwitchA-GigabitEthernet0/0/5]storm-controlactionerror-down//风暴控制惩罚动作为errordown[SwitchA-GigabitEthernet0/0/5]quit[SwitchA]interfacegigabitethernet0/0/6[SwitchA-GigabitEthernet0/0/6]storm-controlmulticastmin-ratepercent5max-ratepercent20//未知组播报文执行惩罚动作的阈值[SwitchA-GigabitEthernet0/0/6]storm-controlactionblock//惩罚风暴控制的操作是一个阻塞的端口
