根端口(ROOT)
根端口是每臺非根橋,到達根橋的距離最近的端口,每臺交換機上只能有一個根端口,根端口屬于活動拓撲的一部分,可以轉發數據幀,發送和接收BPDU消息(STP根端)
指定端口(DESIGN)------端口剛啟用時默認是指定端口
在活動拓撲中,交換機會從指定端口對應的網段上接收去往根橋的數據幀,每個網段上只能存在一個指定端口
較STP新增了兩個端口概念,替代接口和備份接口。但同樣都是阻塞起來的,只是為了指定端口或根端口出故障時可以快速收斂。
替代端口(alternate—從不同交換機收到BPDU,處于劣勢的BPDU為替換端口)
替代端口是一個提供了去往根橋替代路徑的交換機端口,活動拓撲中的替代端口處于Discarding狀態。當現有的指定端口鏈路發生故障之后,替代端口會過渡成為指定端口
備份端口(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 格式和處理的改變
標志位增加了更多的標志功能:提議位,端口角色位,學習位,轉發位,同意位
STP中只有根交換機才會發送BPDU,而在RSTP中非根交換機也可以發送BPDU,BPDU的內容是基于根端口上的信息得來得。這樣交換機就可以讓BPDU快速得超時,當三個HELLO間隔時間內沒有收到最優BPDU得話,端口就會讓該BPDU超時。
與STP不同,RSTP中,網段上得指定交換機得指定端口發送的次優BPDU會直接被交換機接收(而不是忽略等待超時后再處理),立刻代替之前保存的BPDU,交換機會根據一般得規則重新計算自己在網段上的端口角色狀態和端口狀態。這種行為使得交換機能夠在鄰居交換機和根交換機之間的連接(間接連接)出現問題時,能夠快速的響應。
發送次優BPDU的情況:根端口DOWN掉或三個HELLO時間內沒有 從對端收到最優BPDU。若無其他替換端口,聲明自己是根橋,若有替換端口,發送與那個接口有關的BPDU(主要是開銷)
RSTP的提議同意機制(重!!!)
前提條件:必須是點到點的鏈路,如果是半雙工端口會識別為共享(share)鏈路,在共享鏈路上不能使用P/A協商。
網絡拓撲變更后,大約需要3個hello time時間,即6秒。
P/A提議快速收斂機制:
新鏈路連接時候,鏈路兩端的端口初始都為指定端口并處于阻塞的狀態。
proposing:當一個指定端口處于Discarding或Learning狀態時,該變量置位,并向下游交換設備傳遞Proposal位被置位的RST BPDU。
Proposed:當端口收到對端的指定端口發來的攜帶proposal的RST BPDU時,該變量置位。該變量指示本網段上的指定端口希望盡快進入forwarding狀態。
Sync:當proposed被置位以后,收到proposal的根端口會依次為自己的其他端口置位sync變量,而收到proposal的非邊緣端口則會進入discarding狀態。
Synced:當端口轉到discarding狀態后,會將自己的synced變量置位。Alternate端口、backup端口和邊緣端口會馬上置位該變量。根端口監視其他端口的synced,當所有其他端口的synced全被置位,根端口會將自己的synced置位,然后傳回RST BPDU,其中agreement位被置位。
Agreed:當指定端口接收到一個RST BPDU時,如果該BPDU中的agreement位被置位且端口角色字段是跟端口,該變量被置位。Agreed變量一旦被置位,指定端口馬上轉入forwarding狀態。
P/A提議機制實例:
p0和p1兩個端口馬上都先成為指定端口,發送RST BPDU。
A的p1口收到更優的RST BPDU,馬上意識到自己將成為根端口,而不是指定端口,停止發送RST BPDU。
ROOT的p0進入discarding狀態,于是發送的RST BPDU中把proposal置1.
A收到根橋發送來的攜帶proposal的RST BPDU,開始將自己的所有端口進入sync變量置位。
P2已經阻塞,狀態不變;p4是邊緣端口,不參與運算;所以只需要阻塞費邊緣指定端口p3.
P2,p3,p4都進入discarding狀態之后,各端口的synced變量置位,根端口p1的synced也置位,于是便向p0返回agreement位置位的回應RST BPDU。該RST BPDU攜帶和剛才根橋發過來的BPDU一樣的信息,除了agreement位置位之外(proposal位清零)。
當s1判斷出這是對剛剛發出的proposal的回應,于是端口p0馬上進入forwarding狀態。
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地址綁定條目。
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保護功能
BPDU(Bridge Protocol Data Unit)保護
應用場景:邊緣端口在收到BPDU以后端口狀態將變為非邊緣端口,此時就會造成生成樹的重新計算,如果攻擊者偽造配置消息惡意攻擊交換設備,就會引起網絡震蕩。
功能:交換設備上啟動了BPDU保護功能后,如果邊緣端口收到RST BPDU,邊緣端口將被error-down,但是邊緣端口屬性不變,同時通知網管系統。被error-down的邊緣端口只能由網絡管理員手動恢復。如果用戶需要被error-down的邊緣端口可自動恢復,可通過配置使能端口自動恢復功能,并可設置延遲時間。
防TC-BPDU報文攻擊保護
應用場景:交換設備在接收到拓撲變化報文后,會執行MAC地址表項和ARP表項的刪除操作,如果頻繁操作則會對CPU的沖擊很大。
功能:啟用防TC-BPDU報文攻擊功能后,在單位時間內,交換設備處理拓撲變化報文的次數可配置。如果在單位時間內,交換設備在收到拓撲變化報文數量大于配置的閾值,那么設備只會處理閾值指定的次數。對于其他超出閾值的拓撲變化報文,定時器到期后設備只對其統一處理一次。這樣可以避免頻繁的刪除MAC地址表項和ARP表項,從而達到保護設備的目的。
Root保護
應用場景:由于維護人員的錯誤配置或網絡中的惡意攻擊,根橋收到優先級更高的BPDU,會失去根橋的地位,重新進行生成樹的計算,并且由于拓撲結構的變化,可能造成高速流量遷移到低速鏈路上,引起網絡擁塞。
功能:對于啟用Root保護功能的指定端口,其端口角色只能保持為指定端口。一旦啟用Root保護功能的指定端口收到優先級更高的RST BPDU時,端口狀態將進入Discarding狀態,不再轉發報文。在經過一段時間(通常為兩倍的Forward Delay),如果端口一直沒有再收到優先級較高的RST BPDU,端口會自動恢復到正常的Forwarding狀態。
環路保護
應用場景:在運行RSTP協議的網絡中,根端口和其他阻塞端口狀態是依靠不斷接收來自上游交換設備的RST BPDU維持。當由于鏈路擁塞或者單向鏈路故障導致這些端口收不到來自上游交換設備的RST BPDU時,此時交換設備會重新選擇根端口。原先的根端口會轉變為指定端口,而原先的阻塞端口會遷移到轉發狀態,從而造成交換網絡中可能產生環路。
功能:在啟動了環路保護功能后,如果根端口或Alternate端口長時間收不到來自上游的RST BPDU時,則向網管發出通知信息(如果是根端口則進入Discarding狀態)。而阻塞端口則會一直保持在阻塞狀態,不轉發報文,從而不會在網絡中形成環路。直到根端口或Alternate端口收到RST BPDU,端口狀態才恢復正常到Forwarding狀態。 說明: 環路保護功能只能在根端口或Alternate端口上配置生效。
-
端口
+關注
關注
4文章
1043瀏覽量
32704 -
環路
+關注
關注
0文章
51瀏覽量
12208 -
STP
+關注
關注
0文章
55瀏覽量
10425
原文標題:網絡工程師必懂:STP/RSTP協議(二)
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論