STP/RSTP協議(二)

STP協議詳解:https://blog.csdn.net/qq_40741808/article/details/105744865

本文着重介紹RSTP中和STP不同的地方

一.RSTP的端口角色

  1. 根端口(ROOT)
    根端口是每臺非根橋,到達根橋的距離最近的端口,每臺交換機上只能有一個根端口,根端口屬於活動拓撲的一部分,可以轉發數據幀,發送和接收BPDU消息(STP根端)
  2. 指定端口(DESIGN)------端口剛啓用時默認是指定端口
    在活動拓撲中,交換機會從指定端口對應的網段上接收去往根橋的數據幀,每個網段上只能存在一個指定端口

較STP新增了兩個端口概念,替代接口和備份接口。但同樣都是阻塞起來的,只是爲了指定端口或根端口出故障時可以快速收斂。

  1. 替代端口(alternate—從不同交換機收到BPDU,處於劣勢的BPDU爲替換端口)
    替代端口是一個提供了去往根橋替代路徑的交換機端口,活動拓撲中的替代端口處於Discarding狀態。當現有的指定端口鏈路發生故障之後,替代端口會過渡成爲指定端口
  2. 備份端口(backup)----去往同一個交換機有兩個端口
  • 一臺設備上收到了自己所發送的BPDU從而被阻塞的接口。

  • 備份端口是指定交換機上的一個額外的交換機端口,其作用是爲指定交換機提供一份備份鏈路。備份端口在活動拓撲中處於Discarding狀態。當現有的根端口發生故障之後,替代端口會過渡成爲根端口
    在這裏插入圖片描述
    如圖,LSW2上的GE 0/0/3阻塞,因爲是收到了LSW3的BPDU報文,形成了環路,且收到的BPDU報文比自己的優,從而阻塞,就變成了替代接口。而LSW2上的GE 0/0/5。
    因爲收到的是自己發送過來的BPDU報文且端口id較大被阻塞,從而變成備份接口。

  • 邊緣端口:如果端口位於整個交換區域邊緣,不與任何交換設備連接,這種端口叫做邊緣端口。邊緣端口一般與用戶終端設備直接連接。

邊緣端口的特點
1. 邊緣端口會節省30S的延時,端口UP後會立即進入轉發狀態。
2. 邊緣端口的UP/DOWN不會觸發拓撲改變。
3. 邊緣端口收的TC置爲的配置BPDU報文不會將MAC地址的老化時間設置爲15s。
4. 邊緣端口如果收到配置的BPDU報文會馬上變爲一個普通端口,進行STP的收斂。
5. 邊緣端口也會發送配置BPDU報文。
6. PA協商不會阻塞邊緣端口。
  • 禁用端口(disabled)
    禁用端口不擔任角色
    替代端口和備份端口 Discarding狀態

二.RSTP的端口狀態

  • Discarding(丟棄):Discarding狀態的端口只接收BPDU報文,有時可以發送BPDU(視角色而定)
  • Learning(學習)-----Listening狀態:這是一種過渡狀態。在Learning下,交換設備會根據收到的用戶流量,構建MAC地址表,但不轉發用戶流量,所以叫做學習狀態。Learning狀態的端口處理BPDU報文,不轉發用戶流量。
  • Forwarding(轉發):在這種狀態下,端口既轉發用戶流量又處理BPDU報文。

三.RSTP鏈路狀態類型

非邊緣端口可以分爲兩類鏈路狀態

  • 點到點P2P:端口工作在全雙工模式下,此類型會假設端口與點到點鏈路相連,鏈路對端只有一臺交換機
  • 共享:端口工作在半雙工模式下,此類型會假設端口與共享鏈路相連,共享介質上可能存在多臺交換機

根端口:不使用鏈路狀態類型參數,一旦處於同步狀態,根端口會立馬過渡到Forwarding狀態。
替代與備份端口:大多數情況下,也不考慮鏈路類型參數。

四.RSTP針對STP的改進

BPDU 格式和處理的改變

標誌位增加了更多的標誌功能:提議位,端口角色位,學習位,轉發位,同意位

  1. STP中只有根交換機纔會發送BPDU,而在RSTP中非根交換機也可以發送BPDU,BPDU的內容是基於根端口上的信息得來得。這樣交換機就可以讓BPDU快速得超時,當三個HELLO間隔時間內沒有收到最優BPDU得話,端口就會讓該BPDU超時。

  2. 與STP不同,RSTP中,網段上得指定交換機得指定端口發送的次優BPDU會直接被交換機接收(而不是忽略等待超時後再處理),立刻代替之前保存的BPDU,交換機會根據一般得規則重新計算自己在網段上的端口角色狀態和端口狀態。這種行爲使得交換機能夠在鄰居交換機和根交換機之間的連接(間接連接)出現問題時,能夠快速的響應。

  • 發送次優BPDU的情況:根端口DOWN掉或三個HELLO時間內沒有 從對端收到最優BPDU。若無其他替換端口,聲明自己是根橋,若有替換端口,發送與那個接口有關的BPDU(主要是開銷)

在這裏插入圖片描述

RSTP的提議同意機制(重!!!)

前提條件:必須是點到點的鏈路,如果是半雙工端口會識別爲共享(share)鏈路,在共享鏈路上不能使用P/A協商。

網絡拓撲變更後,大約需要3個hello time時間,即6秒。

P/A提議快速收斂機制:

新鏈路連接時候,鏈路兩端的端口初始都爲指定端口並處於阻塞的狀態

  1. proposing:當一個指定端口處於Discarding或Learning狀態時,該變量置位,並向下遊交換設備傳遞Proposal位被置位的RST BPDU。
  2. Proposed:當端口收到對端的指定端口發來的攜帶proposal的RST BPDU時,該變量置位。該變量指示本網段上的指定端口希望儘快進入forwarding狀態。
  3. Sync:當proposed被置位以後,收到proposal的根端口會依次爲自己的其他端口置位sync變量,而收到proposal的非邊緣端口則會進入discarding狀態。
  4. Synced:當端口轉到discarding狀態後,會將自己的synced變量置位。Alternate端口、backup端口和邊緣端口會馬上置位該變量。根端口監視其他端口的synced,當所有其他端口的synced全被置位,根端口會將自己的synced置位,然後傳回RST BPDU,其中agreement位被置位。
  5. Agreed:當指定端口接收到一個RST BPDU時,如果該BPDU中的agreement位被置位且端口角色字段是跟端口,該變量被置位。Agreed變量一旦被置位,指定端口馬上轉入forwarding狀態。

在這裏插入圖片描述
P/A提議機制實例:

  1. p0和p1兩個端口馬上都先成爲指定端口,發送RST BPDU。
  2. A的p1口收到更優的RST BPDU,馬上意識到自己將成爲根端口,而不是指定端口,停止發送RST BPDU。
  3. ROOT的p0進入discarding狀態,於是發送的RST BPDU中把proposal置1.
  4. A收到根橋發送來的攜帶proposal的RST BPDU,開始將自己的所有端口進入sync變量置位。
  5. P2已經阻塞,狀態不變;p4是邊緣端口,不參與運算;所以只需要阻塞費邊緣指定端口p3.
  6. P2,p3,p4都進入discarding狀態之後,各端口的synced變量置位,根端口p1的synced也置位,於是便向p0返回agreement位置位的迴應RST BPDU。該RST BPDU攜帶和剛纔根橋發過來的BPDU一樣的信息,除了agreement位置位之外(proposal位清零)。
  7. 當s1判斷出這是對剛剛發出的proposal的迴應,於是端口p0馬上進入forwarding狀態。
    原文鏈接:https://blog.csdn.net/summnus_i/article/details/82817383

PS:如果指定端口發出Proposal置位的BPDU後沒有收到Agreement BPDU報文,則該端口需要等待30s(兩個延遲時間)纔會進入轉發狀態。因爲用戶主機沒有RSTP功能,所以需要配置邊緣端口(可以忽略Forward Delay時間直接進入Forwarding狀態,無時延),如果不配置,用戶會有明顯的網絡中斷,這樣RSTP的性能可能比STP還要差。

RSTP中收斂時間的優化:
  • P/A協商:可以讓交換機的RP和DP的互聯接口快速進入轉發狀態。

  • 直連故障:AP口變爲RP並快速進入轉發狀態,不需要30s延時。

  • 非直連鏈路故障:連續丟失3個RST BPDU包,端口角色就需切換,最長時間爲6s。

  • 次優場景:AP口收到次優的RST BPDU包後會馬上變爲DP口,並向該端口發送最優的RST BPDU包。

  • RSTP中TC置位的RST BPDU包所有橋設備都可以發送,連續發送4s(TC while時間)。

  • 在RSTP中非根橋也會每隔hello timer 主動發送RST BPDU報文,不是由根橋來發。

  • 在RSTP中DP口shutdown後BP口的角色會馬上變爲DP口,並經過30s的轉發延時進入到轉發狀態。

在RSTP中什麼情況下才會發送TC BPDU包?

新的指定端口進入到轉發狀態。

MAC地址表的清除:

TC發送者:清除除了邊緣端口以外的其它端口的MAC地址綁定條目。
TC接受者:清除除了TC報文接口端口和邊緣端口以外的其它端口的MAC地址綁定條目。

原文鏈接:https://blog.csdn.net/qq_38265137/article/details/80404363

RSTP的拓撲變化方案

在STP中,端口變爲Forwarding狀態或從Forwarding變爲Blocking狀態均會觸發拓撲改變處理過程,而RSTP只在非邊緣端口轉爲Forwarding狀態時纔會觸發處理過程。

在RSTP中,當交換機由非邊緣端口轉變爲Forwarding狀態時,網橋會在兩倍的Hello Time時間內向根端口以及指定端口發送TC置位爲1的RST BPDU,同時清除這些端口學習到的MAC地址。

其他交換機收到TC置位的RST BPDU時候,會清除接收TC報文的端口以及邊緣端口之外的其餘端口MAC地址,並同樣會在兩倍的Hello Time時間內向根端口以及指定端口發送TC置位爲1的RST BPDU報文。

交換機收到TC置位的RST BPDU後不需要在Max Age+Forward Delay時間內將MAC地址老化時間設置爲Forward Delay,而是直接清除端口MAC地址,重新進行學習,從而實現更快的收斂。

五.RSTP保護功能

  1. BPDU(Bridge Protocol Data Unit)保護
  • 應用場景:邊緣端口在收到BPDU以後端口狀態將變爲非邊緣端口,此時就會造成生成樹的重新計算,如果攻擊者僞造配置消息惡意攻擊交換設備,就會引起網絡震盪。
  • 功能:交換設備上啓動了BPDU保護功能後,如果邊緣端口收到RST BPDU,邊緣端口將被error-down,但是邊緣端口屬性不變,同時通知網管系統。被error-down的邊緣端口只能由網絡管理員手動恢復。如果用戶需要被error-down的邊緣端口可自動恢復,可通過配置使能端口自動恢復功能,並可設置延遲時間。
  1. 防TC-BPDU報文攻擊保護
  • 應用場景:交換設備在接收到拓撲變化報文後,會執行MAC地址表項和ARP表項的刪除操作,如果頻繁操作則會對CPU的衝擊很大。
  • 功能:啓用防TC-BPDU報文攻擊功能後,在單位時間內,交換設備處理拓撲變化報文的次數可配置。如果在單位時間內,交換設備在收到拓撲變化報文數量大於配置的閾值,那麼設備只會處理閾值指定的次數。對於其他超出閾值的拓撲變化報文,定時器到期後設備只對其統一處理一次。這樣可以避免頻繁的刪除MAC地址表項和ARP表項,從而達到保護設備的目的。
  1. Root保護
  • 應用場景:由於維護人員的錯誤配置或網絡中的惡意攻擊,根橋收到優先級更高的BPDU,會失去根橋的地位,重新進行生成樹的計算,並且由於拓撲結構的變化,可能造成高速流量遷移到低速鏈路上,引起網絡擁塞。
  • 功能:對於啓用Root保護功能的指定端口,其端口角色只能保持爲指定端口。一旦啓用Root保護功能的指定端口收到優先級更高的RST BPDU時,端口狀態將進入Discarding狀態,不再轉發報文。在經過一段時間(通常爲兩倍的Forward Delay),如果端口一直沒有再收到優先級較高的RST BPDU,端口會自動恢復到正常的Forwarding狀態。
  1. 環路保護
  • 應用場景:在運行RSTP協議的網絡中,根端口和其他阻塞端口狀態是依靠不斷接收來自上游交換設備的RST BPDU維持。當由於鏈路擁塞或者單向鏈路故障導致這些端口收不到來自上游交換設備的RST BPDU時,此時交換設備會重新選擇根端口。原先的根端口會轉變爲指定端口,而原先的阻塞端口會遷移到轉發狀態,從而造成交換網絡中可能產生環路。
  • 功能:在啓動了環路保護功能後,如果根端口或Alternate端口長時間收不到來自上游的RST BPDU時,則向網管發出通知信息(如果是根端口則進入Discarding狀態)。而阻塞端口則會一直保持在阻塞狀態,不轉發報文,從而不會在網絡中形成環路。直到根端口或Alternate端口收到RST BPDU,端口狀態才恢復正常到Forwarding狀態。 說明: 環路保護功能只能在根端口或Alternate端口上配置生效。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章