跳轉到內容

本地網路設計/快速生成樹協議

來自華夏公益教科書,開放的書籍,開放的世界
Previous page
生成樹協議
本地網路設計 Next page
IEEE 802 LAN中的服務質量
快速生成樹協議

快速生成樹協議 (RSTP),標準化作為IEEE 802.1w (2001),其特點是與STP相比,在以下方面具有更快的收斂速度

埠角色和狀態

[編輯 | 編輯原始碼]

RSTP定義了新的埠角色和狀態

  • 丟棄狀態: 埠不轉發幀,並且丟棄收到的幀(配置BPDU除外),統一了停用、阻塞和監聽狀態;
  • 備用角色: 埠處於丟棄狀態,連線到與另一個橋的指定埠相同的鏈路,代表根埠的快速替代;
  • 備份角色: 埠處於丟棄狀態,連線到與相同橋的指定埠相同的鏈路,代表指定埠的快速替代;
  • 邊緣角色: 只有主機可以連線到埠,旨在減少與傳統STP相比,使用者連線主機到網路時遇到的服務中斷。
RSTP中的埠角色和狀態。
埠狀態 埠角色 接收幀? 接收並處理CBPDU? 生成和傳播CBPDU? 更新過濾資料庫? 轉發幀?
丟棄 備用
備份
指定[1]
學習 指定
轉發 指定
邊緣

配置BPDU格式

[編輯 | 編輯原始碼]

配置BPDU具有以下格式

RSTP中配置BPDU格式(35位元組)。
1 2 4 6 7 8 12 16 24 32
協議ID(0) 版本(2) BPDU型別(2)
TC P R S A TCA 根優先順序 STP例項
根MAC地址
根路徑成本
橋優先順序 STP例項
橋MAC地址
埠優先順序 埠號 訊息年齡
最大年齡 Hello時間
轉發延遲

其中與傳統STP中的BPDU相比存在一些變化

  • 版本欄位(1位元組):它將RSTP識別為版本號2(在STP中為0);
  • BPDU型別欄位(1位元組):它始終將配置BPDU識別為型別2(在STP中為0),因為拓撲更改通知BPDU不再存在;[2]
  • 6個新標誌:它們處理提案/協議機制
    • 提案 (P) 和 協議 (A) 標誌 (每個標誌 1 位):它們指定埠角色是由橋 (P = 1) 提出還是已被另一個橋 (A = 1) 接受;
    • 角色欄位 (R) 中的2個標誌 (2位):它們編碼建議或接受的埠角色 (00 = 未知,01 = 備用/備份,10 = 根,11 = 指定);
    • 狀態欄位 (S) 中的2個標誌 (2位):它們指定建議或接受角色的埠處於學習 (10) 或轉發 (01) 狀態;
  • 根識別符號橋識別符號欄位 (每個欄位 8 位元組):RSTP 包括來自IEEE 802.1t (2001) 的技術規範,這些規範更改了橋識別符號的格式
    • 橋優先順序欄位 (4 位,預設值 = 8);
    • STP例項欄位 (12 位,預設值 = 0):用於虛擬區域網,以在相同物理網路內啟用多個協議例項: 本地網路設計/虛擬區域網#PVST
    • 橋MAC地址欄位 (6 位元組):與 IEEE 802.1D-1998 相同;
  • 根路徑成本欄位 (4 位元組):RSTP 包括來自 IEEE 802.1t (2001) 的技術規範,這些規範更改了埠路徑成本的推薦值,包括新的埠速度 (高達 10 Tb/s);
  • 最大年齡轉發延遲欄位 (每個欄位 2 位元組):它們在 RSTP 中完全未使用,但出於相容性原因而保留。

網路拓撲的變化

[編輯 | 編輯原始碼]

重新計算生成樹

[編輯 | 編輯原始碼]

RSTP 的特點是與傳統 STP 相比具有更快的拓撲收斂速度:實際上,如果如 RSTP 標準化時當時的規範,只有全雙工點對點鏈路(因此沒有集線器),它將在 50 秒內切換到不到 1 秒(約 10 毫秒的順序)。

[編輯 | 編輯原始碼]

當發生鏈路故障時,RSTP 對其的檢測速度比傳統 STP 更快,這得益於更有效的 BPDU 處理。

非根橋不僅傳播由根橋生成的 BPDU:每個橋每隔 Hello 時間 (預設值:2 秒) 生成一個 BPDU,其中包含當前根橋作為根識別符號,即使它沒有從根橋收到 BPDU。如果在 3 個 Hello 時間段內沒有收到 BPDU,則當前 BPDU 被宣佈為已過期,並假設在根埠連線的鏈路上發生了故障。

這種更快的資訊老化在現代網路中是無用的

  • 在使用集線器的舊網路中,橋無法在物理層檢測集線器和另一個橋之間的故障→唯一檢測它的方法是意識到“保持活動”BPDU 訊息停止接收;
  • 在純交換的新網路中,橋可以在物理層立即檢測到鏈路故障,而無需等待 3 個 Hello 時間段。

一旦橋檢測到鏈路故障,它就開始生成自己的 BPDU→每個鄰居橋,只要它在其根埠上接收到聲稱自己是根橋的橋的 BPDU,就會接受新的 BPDU,忘記之前儲存的 BPDU,因為它意味著在其通往根橋的路徑上發生了某些錯誤。此時

  • 如果其橋識別符號比 BPDU 中的識別符號差,則橋開始在其指定埠上生成 BPDU,其中包含新的根識別符號;
  • 如果其橋識別符號比 BPDU 中的識別符號好,則橋開始生成自己的 BPDU,聲稱自己是根橋。
[編輯 | 編輯原始碼]

一旦檢測到故障,某些埠可以直接進入轉發狀態,而無需經過學習狀態。

備用埠

如果根埠發生故障,備用埠將提供橋接裝置和根橋接裝置之間的備用路徑。

備份埠

如果設計埠發生故障,備份埠將提供橋接裝置和鏈路之間的備用路徑。

[編輯 | 編輯原始碼]

建議/同意序列是一種在兩個橋接裝置之間快速同步埠角色的演算法。

當在兩個橋接裝置之間插入新的鏈路時

  1. 兩個橋接裝置都會將連線到新鏈路的埠以及所有連線到其他鏈路的可能的其他根埠和指定埠置於丟棄狀態,以防止在瞬態期間建立可能的環路;
  2. 兩個橋接裝置都會透過向新鏈路傳送帶有已設定建議標誌的BPDU來建議其埠作為鏈路的指定埠;
  3. 較差的橋接裝置透過傳送帶有已設定同意標誌的BPDU來接受來自另一個橋接裝置的建議,並將自己的埠置於根據生成樹演算法標準確定的適當角色(根、備用或備份);
  4. 較好的橋接裝置接收同意BPDU並將自己的埠設定為鏈路的指定埠;
  5. 兩個橋接裝置都會對它們最初置於丟棄狀態的其他埠重複此序列。

兩個橋接裝置之間透過BPDU傳送進行的協作比經典STP中基於計時器的機制更快,並且更有效率,因為它不會長時間停止整個網路,而只是偶爾停止一個橋接裝置鄰域。新的鏈路必須是全雙工的,以便BPDU可以在兩個方向上交換:建議BPDU沿一個方向,同意BPDU沿另一個方向。

過濾資料庫更新

[編輯 | 編輯原始碼]

檢測拓撲變化

[編輯 | 編輯原始碼]

RSTP旨在對經典STP侵入性更低,因為它避免了在拓撲變化後從過濾資料庫中清理舊條目:實際上它避免了從舊條目中清理過濾資料庫,從而導致在不需要時泛洪傳送的流量大幅增加。

移動到丟棄狀態

當埠移動到丟棄狀態時,它不會觸發過濾資料庫更新

  • 如果已刪除的鏈路不屬於環路,也就是說不存在備用路徑,那麼其他網路段中的站點將不再可達,與它們關聯的條目將不再有效,但這不被視為必須立即解決的問題:如果幀被髮送到其中一個站點,它將到達連線到已刪除鏈路的橋接裝置,並將被丟棄,直到條目自然過期,並被橋接裝置清理而無需觸碰其他條目;
  • 如果已刪除的鏈路屬於環路,也就是說透過處於丟棄狀態的埠存在備用路徑,那麼當按照RSTP機制移動到轉發狀態時,將是後一個埠觸發過濾資料庫更新。
移動到轉發狀態

只有當非邊緣埠移動到轉發狀態時,它才會觸發過濾資料庫更新

  • 如果新的鏈路不會建立環路,那麼不應觸發過濾資料庫更新,因為沒有站點變得不可達,但請記住,橋接裝置不知道全域性網路拓撲;
  • 如果新的鏈路建立了環路,那麼埠移動到轉發狀態會導致沿環路的另一個埠按照RSTP機制移動到丟棄狀態→透過該埠可達的站點現在可以透過另一個路徑可達,因此與它們關聯的條目應更新。

宣佈拓撲變化

[編輯 | 編輯原始碼]

當橋接裝置檢測到需要過濾資料庫更新的拓撲變化時

  1. 檢測到拓撲變化的橋接裝置在其所有根埠和指定埠上生成一個帶有已設定拓撲變化標誌的BPDU;[3]
  2. 每個橋接裝置在接收到BPDU時
    1. 它會丟棄其過濾資料庫中與所有根埠和指定埠關聯的所有條目,但它接收到BPDU的埠除外;
    2. 它會在所有根埠和指定埠上傳播BPDU,但它接收到BPDU的埠除外。[3]

邊緣埠的行為

[編輯 | 編輯原始碼]

當主機連線到邊緣埠時,埠會立即成為指定埠並轉向轉發狀態,而無需經過學習狀態→不再需要等待30秒(轉發延遲的兩倍)才能使埠完全執行。

此外,邊緣埠永遠不會在移動到轉發狀態(主機連線)或移動到丟棄狀態(主機斷開連線)時觸發過濾資料庫更新→使用者不再會因為泛洪傳送的流量增加而遇到網路速度變慢的情況,主機將傳送的第一個廣播幀將根據橋接裝置的常用學習演算法更新過濾資料庫。

邊緣埠仍然會繼續監聽來自可能錯誤連線到它的橋接裝置的BPDU,以便能夠立即退出邊緣角色並承擔其他角色之一,以保護網路免受可能的環路影響。

STP和RSTP的共存

[編輯 | 編輯原始碼]

如果將不支援RSTP的橋接裝置引入到網路中,它在接收到型別等於0的配置BPDU時能夠自動切換到STP模式,但這會產生一些副作用

  • 由於單個橋接裝置不支援RSTP,整個網路將進入STP模式,從而導致快速收斂時間丟失;
  • 如果單個不支援RSTP的橋接裝置發生故障或從網路斷開連線,其他橋接裝置將繼續以STP模式工作,並且需要對每個橋接裝置進行顯式的手動配置。

可以將橋接裝置配置為在某些埠上以RSTP模式工作,而在其他埠上以STP模式工作→網路將被分成兩個部分,以不同的生成樹協議版本工作。但是,由於RSTP部分比STP部分更早地啟用資料幀的轉發,這可能會導致網路不穩定,因為會出現瞬態環路。

為了使RSTP和非RSTP橋接裝置在同一個網路中無縫共存,應該使用多生成樹協議,該協議已標準化為IEEE 802.1s(2002):使用RSTP工作的網路部分和使用STP工作的網路部分被分隔在不同的域中。

物理層可靠性

[編輯 | 編輯原始碼]

當物理層上的鏈路可靠時,RSTP工作完美。如果由於聯結器髒汙(光纖非常敏感)導致鏈路頻繁地斷開和連線,RSTP會在每次鏈路狀態改變時重新配置網路→由於RSTP反應速度過快,網路將大部分時間處於瞬態不穩定狀態。

思科的專有機制“防抖動”在檢測到鏈路抖動時將埠置於“錯誤停用”狀態。

參考文獻

[編輯 | 編輯原始碼]
  1. 建議/同意序列期間,指定埠處於丟棄狀態。
  2. 從現在開始,配置BPDU將簡稱為BPDU。
  3. a b 橋接裝置會一直生成/傳播BPDU,直到TC While計時器在等於Hello Time的兩倍的時間後過期。
Previous page
生成樹協議
本地網路設計 Next page
IEEE 802 LAN中的服務質量
快速生成樹協議
華夏公益教科書