什么是STP? STP是二層網絡中用于消除環路的協議。
1.通過阻斷冗余鏈路來消除橋接網絡中可能存在的路徑回環。
2.當前活動路徑發生故障時,激活冗余備份鏈路,恢復網絡連通性。
STP在IEEE制定的802.1D標準中定義,用于在局域網中消除數據鏈路層環路。STP可以通過計算,動態的阻斷冗余鏈路。而當活動鏈路發生故障時,STP又可以激活冗余鏈路,恢復網絡的連通,避免網絡中斷。
STP的不足
1.收斂時間長:缺省情況下一個端口從Blocking狀態過渡到Forwarding狀態至少需要30秒鐘(兩倍的Forward Delay)。對于一個拓撲不穩定網絡,會導致網絡的長時間中斷。
2.拓撲變化收斂機制不靈活:STP定義了TCN BPDU,可以使得網絡拓撲變化時,在50秒內實現收斂。當網絡中有大量主機,主機位置不固定,可能會頻繁的上下線,這樣會使得交換機頻繁發送TCN BPDU,導致網橋mac地址老化時間長期保持為15秒。MAC地址頻繁的刷新會導致網絡充斥大量未知單播造成的廣播報文,嚴重影響網絡中的應用。
RSTP
RSTP(快速生成樹協議)的IEEE標準為802.1w,其消除環路的基本思想和STP保持一致。RSTP具備了STP的所有功能,支持RSTP的網橋可以和支持STP的網橋一同運行。
和STP相比,RSTP的改進之處包括:
- RSTP減少了端口的狀態;
- RSTP增加了端口的角色;
- RSTP配置BPDU的格式和發送方式有所改變;
- 當網絡拓撲發生變化時,RSTP處理方式不同,可以實現更為快速的收斂。
邊緣端口
當端口直接與用戶終端相連,而沒有連接到其他網橋或局域網網段上時,該端口即為邊緣端口。 邊緣端口連接的是終端,當網絡拓撲變化時,邊緣端口不會產生臨時的環路,所以邊緣端口可以略過兩個Forward Delay時間,直接進入Forwarding狀態,無需任何延時。 由于網橋無法自動判斷端口是否直接與終端相連,所以用戶需要手工將于終端連接的端口配置為邊緣端口。
RSTP和STP的兼容運行
RSTP的端口連續三次接收到配置BPDU,則網橋認為該端口和STP網橋相連,該端口將切換到STP協議運行。切換到STP運行的RSTP端口將失去快速收斂特性。將STP設備放在網絡邊緣,將影響范圍降到最小。
當運行STP的網橋移除后,由RSTP模式切換到STP模式的的端口仍將運行在STP模式。可以持續穩定的運行,方式模式的頻繁切換,但是犧牲了收斂時間。如果要將STP模式切換回RSTP模式需要手工進行配置
RSTP的配置
開啟全局生成樹特性
[h3c]stp global enable
選擇生成樹運行模式
[h3c]stp mode rstp # stp | rstp | mstp | pvst
如果確定某個端口連接的部門不存在回路,則可關閉該端口的生成樹功能
[h3c-GigabitEthe.NET1/0/1]undo stp enable
配置優先級和端口開銷
橋ID(Bridge-priority)由橋優先級和MAC地址組成,默認優先級為32768,數值越小優先級越高,最小的為根橋。取值范圍0~61440,步長為4096
[h3c]stp priority 4096
根路徑開銷是STP確定根端口角色時用到的重要的參數。鏈路開銷是由端口配置的cost值決定的。
[h3c-GigabitEthernet1/0/1]stp cost 200
IEEE 802.1D和802.1t定義了不同速率和工作模式下的以太網鏈路(端口)開銷,根據實際情況的網絡運行狀況優化了開銷的數值定義,指定了私有標準。可以通過命令改變設備支持的端口開銷標準
[h3c]stp pathcost-standard dot1 #dot1d-1998 dot1t Legacy
配置端口優先級
端口ID由兩部分組成:PortPriority(端口優先級)+ PortIndex(端口索引)
通過配置命令可以改變端口優先級,改變端口優先級可以改變端口ID的優劣,數值越小表示優先級越高。
取值范圍為0~240,且步長為16。默認優先級為128。
[h3c-GigabitEthernet1/0/1]stp port priority 16
配置端口的Hello Time
STP中 Hello Time(發送配置BPDU的周期) 的配置需要注意:
- 較長的Hello Time可以降低生成樹計算的消耗;
- 過長的Hello Time會導致對鏈路故障的反應遲緩;
- 較短的Hello Time可以增強生成樹的健壯性;
- 過短的Hello Time會導致頻繁發送配置消息,加重CPU和網絡負擔;
通過命令改變Hello Time值,其中單位厘秒(1秒=100厘秒),默認值2秒。
[h3c]stp timer hello 200
配置端口的Max Age
STP中配置 BPDU 的生存期為 Max Age 時需要注意:
- 配置過長的Max Age 會導致鏈路故障不能被及時發現;
- 配置過短的Max Age 可能會在網絡擁塞的時候使交換機誤認為鏈路故障,造成頻繁的生成樹計算。
通過命令改變Max Age值,單位為厘秒(1秒=100厘秒),默認值為20秒。
[h3c]stp timer max-age 1000
配置端口的Forward Delay
STP為了防止臨時環路,在端口由阻塞狀態轉向轉發狀態時設置了中間狀態,并在狀態切換需等待一定的時間,以保持與遠端的設備狀態切換同步。根橋的Forward Delay時間確定了狀態遷移的時間間隔值。
如果當前設備是根橋,該設備會按照該設置值確定狀態遷移時間間隔;非根橋采用根橋設置的Forward Delay參數。
配置時需要注意:
- 配置過長的Forward Delay會導致生成樹的收斂太慢;
- 配置過短的Forward Delay可能會在拓撲改變的時候,引入暫時的路徑回環;
通過命令改變Forward Delay值,其中單位厘秒(1秒=100厘秒),默認值為15秒。
[h3c]stp timer forward-delay 2000
配置網絡直徑
網絡直徑指網絡中任意兩臺終端設備之間通過的交換機數目的最大值。當用戶配置設備的網絡直徑后,STP自動根據配置的網絡直徑將Hello Time、Forward Delay與Max Age設置為一個較優的值。當網絡直徑為默認值7時,對應的三個時間參數也分別為它們的默認值。
通過命令設定交換網絡的網絡直徑,如設定交換網絡的網絡直徑為5。
[h3c]stp bridge-diameter 5
RSTP高級配置
當端口直接與用戶終端連接,該端口即為邊緣端口。網絡拓撲發生變化時,邊緣端口不會產生臨時環路。
通過命令配置端口為邊緣端口:
[h3c-GigabitEthernet1/0/1]stp edged-port
運行RSTP(或MSTP)的設備的端口連接著運行STP的設備,該端口會自動遷移到STP兼容模式下工作; 但是如果運行STP協議的設備被拆離,該端口不能自動恢復RSTP(或MSTP)模式下,需要手動操作迫使其遷移到RSTP模式下運行。
在系統視圖下執行以下命令,使配置在全局生效;
[h3c]stp global mcheck
在端口視圖執行以下命令,則該配置只在當前端口生效;
[h3c-GigabitEthernet1/0/1]stp mcheck
RSTP維護調試命令
顯示STP統計和狀態信息:
[h3c]dis stp [interface interface_list] [brief]
[h3c]dis stp interface G1/0/1 brief
打開STP調試開關
debugging stp packet






