RSTP(STP 優化)
思維導圖:
1 STP缺陷
STP生成樹收斂需要依賴定時器計時,端口狀态從Blocking到Forwarding至少需要兩個forward relay的時間長度,收斂時間太長,一般都需要幾十秒。IEEE 802.1w定義了RSTP(Rapid Spanning Tree Protocol)彌補了STP收斂時間慢的缺陷。
2 RSTP
2.1 RSTP端口角色
角色 | 描述 |
---|---|
Backup | Backup端口作為指定端口的備份,提供了另外一條從根橋到非根橋的備份鍊路。 |
Alternate | Alternate端口作為根端口的備份端口,提供了從指定橋到根橋的另一條備份路徑。 |
2.2 三種端口狀态
RSTP中定義了三種端口狀态:Discarding、Learning、Forwarding。
RSTP 端口狀态 | 對應STP端口狀态 | 說明 |
---|---|---|
Forwarding | Forwarding | 可以轉發使用者資料幀,可以學習MAC位址 |
Learning | Learning | 不可以轉發使用者資料幀,但是可以學習MAC位址 |
Discarding | Listening、Blocking、Disabled | 不可以轉發使用者資料幀,不可以學習MAC位址 |
2.3 P/A機制
在RSTP中,一個端口被指定成為指定端口後,此端口會先進入discarding,然後通過**P/A(Proposal/Agreement)**機制主動與對端端口協商,通過協商後,就可以立即進入Forwarding狀态。
2.4 邊緣端口
- RSTP裡,位于網絡邊緣的指定端口被稱為邊緣端口。
- 邊緣端口一般與使用者終端裝置直接連接配接,不與任何交換裝置連接配接。邊緣端口不接收配置BPDU封包,不參與RSTP運算,可以由Disabled狀态直接轉到Forwarding狀态,且不經曆時延,就像在端口上将STP禁用了一樣。但是,一旦邊緣端口收到配置BPDU封包,就喪失了邊緣端口屬性,成為普通STP端口,并重新進行生成樹計算,進而引起網絡震蕩。
2.5 RSTP收斂過程
RSTP BPDU:RSTP對此進行了改進,即在拓撲穩定後,無論非根橋裝置是否接收到根橋傳來的配置BPDU封包,非根橋裝置都會仍然按照Hello Timer規定的時間間隔發送配置BPDU,該行為完全由每台裝置自主進行。
- 每一台交換機啟動RSTP後,都認為自己是“根橋”,并且發送RST BPDU。所有端口都為指定端口,
。處于Discarding狀态
- 交換機互相發送Proposal置位的RST BPDU。每個認為自己是“根橋”的交換機生成一個RST BPDU封包來協商指定網段的端口狀态,此RST BPDU封包的Flags字段裡面的Proposal位需要置位。當一個端口收到RST BPDU封包時,此端口會比較收到的RST BPDU封包和本地的RST BPDU封包。如果本地的RST BPDU封包優于接收的RST BPDU封包,則端口會丢棄接收的RST BPDU封包,并發送Proposal置位的本地RST BPDU封包來回複對端裝置。
- **交換機使用同步機制來實作端口角色協商管理。**當收到Proposal置位并且優先級高的BPDU封包時,接收交換機必須設定所有下遊指定端口為Discarding狀态。
。如果下遊端口是Alternate端口或者邊緣端口,則端口狀态保持不變
- 當确認下遊指定端口遷移到Discarding狀态後,裝置發送RST BPDU封包回複上遊交換機發送的Proposal消息。在此過程中,端口已經确認為根端口,是以RST BPDU封包Flags字段裡面設定了Agreement标記位和根端口角色。
- 在P/A程序的最後階段,上遊交換機收到Agreement置位的RST BPDU封包後,指定端口立即從Discarding狀态遷移為Forwarding狀态。然後,下遊網段開始使用同樣的P/A程序協商端口角色。
2.6 鍊路故障/根橋失效
- 在STP中,當出現鍊路故障或根橋失效導緻交換機收不到BPDU時,交換機需要等待Max Age時間後才能确認出現了故障。
- 在STP中,當出現鍊路故障或根橋失效導緻交換機收不到BPDU時,交換機需要等待Max Age時間後才能确認出現了故障。
- 而在RSTP中,如果交換機的端口在連續3次Hello Timer規定的時間間隔内沒有收到上遊交換機發送的RST BPDU,便會确認本端口和對端端口的通信失敗,進而需要重新進行RSTP的計算來确定交換機及端口角色。