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