1. root protection
由于维护人员的错误配置或网络中的恶意***,网络中的合法根交换机有可能会收到优先级更高的BPDU报文,使得合法根交换机失去根交换机的地位,引起网络拓扑结构的错误变动。这种不合法的拓扑变化,可能会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。为了防止这种情况发生,可在交换机上部署Root保护功能,通过维持指定端口的角色来保护根交换机的地位。
Root保护是指定端口上的特性。当端口的角色是指定端口时,配置的Root保护功能才生效。若在其他类型的端口上配置Root保护功能,Root保护功能不会生效。
请在根交换机上进行以下配置。
查看stp状态,SW1为根交换机,优先级为4096。
[SW1]dis stp
-------[CIST Global Info][Mode RSTP]-------
CIST Bridge :4096 .4c1f-ccdc-1bae
Config Times :Hello 1s MaxAge 10s FwDly 12s MaxHop 20
Active Times :Hello 1s MaxAge 10s FwDly 12s MaxHop 20
CIST Root/ERPC :4096 .4c1f-ccdc-1bae / 0
CIST RegRoot/IRPC :4096 .4c1f-ccdc-1bae / 0
[SW4]dis stp
-------[CIST Global Info][Mode RSTP]-------
CIST Bridge :32768.4c1f-cccc-5bbd
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 1s MaxAge 10s FwDly 12s MaxHop 20
CIST Root/ERPC :4096 .4c1f-ccdc-1bae / 20000
CIST RegRoot/IRPC :32768.4c1f-cccc-5bbd / 0
[SW4]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/2 ROOT FORWARDING NONE
0 GigabitEthernet0/0/3 ALTE DISCARDING NONE
0 GigabitEthernet0/0/23 DESI FORWARDING BPDU
0 GigabitEthernet0/0/24 DESI FORWARDING BPDU
当SW4修改系统优先级为0时,会和SW1的优先级进行比较,比SW1的优先级小,进行抢占,成为根交换机。
[SW4]stp priority 0
[SW4]dis stp
-------[CIST Global Info][Mode RSTP]-------
CIST Bridge :0 .4c1f-cccc-5bbd
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cccc-5bbd / 0
CIST RegRoot/IRPC :0 .4c1f-cccc-5bbd / 0
在SW4上删除系统优先级,还原SW1作为根交换机。
[SW4]undo stp priority
[SW4]dis stp
-------[CIST Global Info][Mode RSTP]-------
CIST Bridge :32768.4c1f-cccc-5bbd
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 1s MaxAge 10s FwDly 12s MaxHop 20
CIST Root/ERPC :4096 .4c1f-ccdc-1bae / 20000
CIST RegRoot/IRPC :32768.4c1f-cccc-5bbd / 0
[SW1]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING NONE
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
0 GigabitEthernet0/0/24 DESI FORWARDING NONE
为了防止抢占根交换机,需要在根交换机SW1的指定端口上配置root protection,当根桥上的指定接口配置root protection以后,如果收到更优的BPDU时候,该接口状态为discarding。
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]stp root-protection
[SW1]int g0/0/2
[SW1-GigabitEthernet0/0/2]stp root-protection
[SW1]
[SW1]dis stp b
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING ROOT
0 GigabitEthernet0/0/2 DESI FORWARDING ROOT
0 GigabitEthernet0/0/24 DESI FORWARDING NONE
[SW1]dis stp int g0/0/1
-------[CIST Global Info][Mode RSTP]-------
CIST Bridge :4096 .4c1f-ccdc-1bae
Config Times :Hello 1s MaxAge 10s FwDly 12s MaxHop 20
Active Times :Hello 1s MaxAge 10s FwDly 12s MaxHop 20
CIST Root/ERPC :4096 .4c1f-ccdc-1bae / 0
CIST RegRoot/IRPC :4096 .4c1f-ccdc-1bae / 0
CIST RootPortId :0.0
BPDU-Protection :Disabled
TC or TCN received :32
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 0h:4m:6s
Number of TC :23
Last TC occurred :GigabitEthernet0/0/2
----[Port1(GigabitEthernet0/0/1)][FORWARDING]----
Port Protocol :Enabled
Port Role :Designated Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=20000
Designated Bridge/Port :4096.4c1f-ccdc-1bae / 128.1
Port Edged :Config=default / Active=disabled
Point-to-point :Config=auto / Active=true
Transit Limit :147 packets/hello-time
Protection Type :Root
Port STP Mode :RSTP
Port Protocol Type :Config=auto / Active=dot1s
BPDU Encapsulation :Config=stp / Active=stp
PortTimes :Hello 1s MaxAge 10s FwDly 12s RemHop 20
TC or TCN send :19
TC or TCN received :9
BPDU Sent :4319
TCN: 0, Config: 0, RST: 4319, MST: 0
BPDU Received :9
TCN: 0, Config: 0, RST: 9, MST: 0
在SW1的根端口配置root-protection以后,当SW4修改系统优先级为0时,SW1根端口收到更优的BPDU以后,会将该接口置为discarding状态。
[SW1]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI DISCARDING ROOT
0 GigabitEthernet0/0/2 DESI DISCARDING ROOT
0 GigabitEthernet0/0/24 DESI FORWARDING NONE
2. loop protection
在运行RSTP协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游交换设备的BPDU维持。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的BPDU时,交换设备会重新 选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路。为了防止以上情况发生,可部署环路保护功能。
在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在阻塞状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。
在SW4上当G0/0/2接口配置stp bpdu-filter enable,接口会进入到forwarding转发状态,会产生环路问题。
由于Alternate端口是根端口的备份端口,如果交换设备上有Alternate端口,需要在根端口和Alternate端口上同时配置环路保护。
配置了根保护的端口,不可以配置环路保护。
[SW4]int g0/0/2
[SW4-GigabitEthernet0/0/2]stp loop-protection //配置交换设备根端口或Alternate端口的环路保护功能。
[SW4]int g0/0/3
[SW4-GigabitEthernet0/0/3]stp loop-protection //配置交换设备根端口或Alternate端口的环路保护功能。
[SW4]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/2 ROOT FORWARDING LOOP
0 GigabitEthernet0/0/3 ALTE DISCARDING LOOP
0 GigabitEthernet0/0/23 DESI FORWARDING BPDU
0 GigabitEthernet0/0/24 DESI FORWARDING BPDU
[SW4]dis stp int g0/0/2
…………
----[Port2(GigabitEthernet0/0/2)][FORWARDING]----
Port Protocol :Enabled
Port Role :Root Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=20000
Designated Bridge/Port :4096.4c1f-ccdc-1bae / 128.2
Port Edged :Config=default / Active=disabled
Point-to-point :Config=ForceTrue
Transit Limit :147 packets/hello-time
Protection Type :Loop
Port STP Mode :RSTP
Port Protocol Type :Config=auto / Active=dot1s
BPDU Encapsulation :Config=stp / Active=stp
PortTimes :Hello 1s MaxAge 10s FwDly 12s RemHop 0
TC or TCN send :12
TC or TCN received :18
BPDU Sent :815
TCN: 0, Config: 0, RST: 815, MST: 0
BPDU Received :4554
TCN: 0, Config: 0, RST: 4554, MST: 0
[SW4]
[SW4]int g0/0/2
[SW4-GigabitEthernet0/0/2]stp bpdu-filter enable
进一步验证,当SW4的G0/0/2配置stp bpdu-filter enable以后,会报如下错误,且G0/0/2接口处于discarding状态。
[SW4]
Jan 19 2019 23:10:26-08:00 SW4 %%01MSTP/4/LOOP_GUARD(l)[12]:MSTP process 0 Instance0's LOOP-Protection port GigabitEthernet0/0/2 did not receive message in prescriptive time!
[SW4]dis stp b
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/2 DESI DISCARDING LOOP
0 GigabitEthernet0/0/3 ROOT FORWARDING LOOP
0 GigabitEthernet0/0/23 DESI FORWARDING BPDU
0 GigabitEthernet0/0/24 DESI FORWARDING BPDU
3. TC protection
如果***者伪造拓扑变化BPDU报文恶意***交换设备,交换设备短时间内会收到很多拓扑变化BPDU报文,频繁的删除MAC或者ARP表项操作会给设备造成很大的负担,也给网络的稳定带来很大隐患。
启用TC保护功能后,在单位时间内,交换设备处理拓扑变化报文的次数可配置。如果在单位时间内,交换设备收到拓扑变化报文的数量大于配置的阈值,那么设备只会处理阈值指定的报文个数。对于其他超出阈值的拓扑变化报文,指定时间超时后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项和ARP表项,从而达到保护设备的目的。
stp tc-protection //开启使能MSTP防拓扑变化报文***的保护功能。
stp tc-protection threshold 5 //处理TC类型BPDU报文并立即刷新转发表项的阈值为5
[SW1]dis stp tc-bpdu statistics
-------------------------- STP TC/TCN information --------------------------
MSTID Port TC(Send/Receive) TCN(Send/Receive)
0 GigabitEthernet0/0/1 1/0 0/0
0 GigabitEthernet0/0/2 3/1 0/0