Max Age 20s
Hellotime 2s
Forward delay 15
3、拓撲改變需要多長時間
1)根橋故障:需要50秒(Max age+2個forwarding delay)
2)非直連鏈路:
非直連故障
在穩定的STP網絡,非根橋會定期收到來自根橋的BPDU報文。
若SW1與SW2之間的鏈路發生了某種故障(非物理故障),因此SW2一直收不到來自根橋SW1的BPDU報文,Max Age計時器(缺省: 20 s)就會超時,從而導致已經收到的BPDU報文失效。
此時,非根橋SW2會認為根橋失效,并且認為自己是根橋,從而發送自己的配置BPDU給SW3,通知SW3自己是新的根橋。
在此期間,SW3的預備端口一直收不到包含根橋ID的BPDU,Max Age計時器超時后,端口進入到Listening狀態,開始向SW2“轉發”從上游發來的包含根橋ID的BPDU。
因此,Max Age定時器超時后,SW2和SW3幾乎同時收到對方發來的BPDU,再進行STP重新計算,SW2發現SW3發來的BPDU更優,就放棄宣稱自己是根橋并重新確定端口角色。
端口狀態:
SW3預備端口20s后會從Blocking狀態進入到Listening狀態,再進入Learning狀態,最終進入到Forwarding狀態,進行用戶流量的轉發。
收斂時間:
非直連故障會導致50s左右的恢復時間,等于Max Age加上2倍的Forward Delay收斂時間。
3)直連鏈路
直連鏈路故障:
當兩臺交換機間用兩條鏈路互連時,其中一條是主用鏈路,另一條為備用鏈路。
當網絡穩定時,交換機SWB檢測到根端口的鏈路發生故障,則其備用端口會進入用戶流量轉發狀態。
端口狀態:
備用端口會從Blocking狀態,遷移到Listening-Learning-Forwarding狀態。
收斂時間:
直連鏈路故障,備用端口會經過30s后恢復轉發狀態。
4)拓撲改變,MAC地址表的處理方式
在交換網絡中,交換機依賴MAC地址表轉發數據幀。缺省情況下,MAC地址表項的老化時間是300秒。如果生成樹拓撲發生變化,交換機轉發數據的路徑也會隨著發生改變,此時MAC地址表中未及時老化掉的表項會導致數據轉發錯誤,因此在拓撲發生變化后需要及時更新MAC地址表項。
本例中,SW2中的MAC地址表項定義了通過端口GigabitEthernet 0/0/3可以到達主機A,通過端口GigabitEthernet 0/0/3可以到達主機B。由于SW3的根端口產生故障,導致生成樹拓撲重新收斂,在生成樹拓撲完成收斂之后,從主機A到主機B的幀仍然不能到達目的地。這是因為MAC地址表項老化時間是300秒,主機A發往主機B的幀到達SW2后,SW3會繼續通過端口GigabitEthernet 0/0/3轉發該數據幀。
拓撲變化過程中,根橋通過TCN BPDU報文獲知生成樹拓撲里發生了故障。根橋生成TC用來通知其他交換機加速老化現有的MAC地址表項。
拓撲變更以及MAC地址表項更新的具體過程如下:
SW3感知到網絡拓撲發生變化后,會不間斷地向SWB發送TCN BPDU報文。
SW2收到SW3發來的TCN BPDU報文后,會把配置BPDU報文中的Flags的TCA位設置1,然后發送給SW3,告知SW3停止發送TCN BPDU報文。
SW2向根橋轉發TCN BPDU報文。
SW1把配置BPDU報文中的Flags的TC位設置為1后發送,通知下游設備把MAC地址表項的老化時間由默認的300 s修改為Forward Delay的時間(默認為15 s)。
最多等待15 s之后,SW2中的錯誤MAC地址表項會被自動清除。此后,SW2就能重新開始MAC表項的學習及轉發操作。