RSTP 詳細

RSTP與STP的不一樣html

  1. 增長端口角色:AP和BP網絡

  2. 減小端口狀態爲Discardinglearningforwarding併發

  3. 充分利用BPDU中的Flag字段ide

  4. BPDU的處理方式發生了改變學習

  5. 提升收斂速度url

  6. 增長了保護功能spa

       RSTPSTP消除環路的思想保持一致,RSTP具有了STP的全部功能,支持RSTP的網橋能夠和支持STP的網橋一同運行。orm

 RSTP(上)

 

RSTP的端口角色共有4種:根端口、指定端口、Alternate端口和Backup端口htm

根端口和指定端口的做用同STP協議中定義,Alternate端口和Backup端口的描述以下:blog

  • 從配置BPDU報文發送角度來看:


    • Alternate端口就是因爲學習到其它網橋發送的更優配置BPDU報文而阻塞的端口。

    • Backup端口就是因爲學習到本身發送的更優配置BPDU報文而阻塞的端口。

  • 從用戶流量角度來看:


    • Alternate端口提供了從指定橋到根的另外一條可切換路徑,做爲根端口的備份端口

    • Backup端口做爲指定端口的備份,提供了另外一條從根橋到相應網段的備份通路。

給一個RSTP域內全部端口分配角色的過程就是整個拓撲收斂的過程。

 

 

RSTP端口狀態

  • Forwarding

  • Learning

  • discarding

STP端口狀態

RSTP端口狀態

發送配置BPDU

MAC地址學習

轉發數據

Disable

Discarding

Blocking

Discarding

Listening

Discarding

Learning

Learning

Forwarding

Forwarding

 

RSTP的狀態規範把原來的5種狀態縮減爲3種。根據端口是否轉發用戶流量和學習MAC地址來劃分:

  • 若是不轉發用戶流量也不學習MAC地址,那麼端口狀態就是Discarding狀態。

  • 若是不轉發用戶流量可是學習MAC地址,那麼端口狀態就是Learning狀態。

  • 若是既轉發用戶流量又學習MAC地址,那麼端口狀態就是Forwarding狀態。

RSTP計算過程:

  • 端口在Discarding狀態下完成端口角色的肯定:


    • 當端口角色肯定爲根端口和指定端口後,通過forwardingdelay後,端口進入Learning狀態,處於Learning狀態的端口其處理方式和STP相同,此期間端口開始學習MAC地址並在Forwardingdelay後進入Forwarding狀態,開始轉發數據。實際上,RSTP會經過其餘方式加快這個過程。

    • 當端口角色肯定爲Alternate端口後,端口會維持在Discarding狀態。

 

 

RSTP對STP的BPDU改動

  • 充分利用STPBPDUFlag,明確端口角色

  • Type字段爲2

  • Flag字段使用了以前的保留位,更改後的配置BPDU改名爲RST BPDU

RSTP(上)

 

配置BPDU格式的改變,充分利用了STP協議報文中的Flag字段,明確了端口角色。在配置BPDU報文的格式上,除了保證和STP格式基本一致以外,RSTP做了一些小變化:

  • Type字段,配置BPDU類型再也不是0而是2,因此運行STP的設備收到RSTP的配置BPDU時會丟棄。

  • Flags字段,使用了原來保留的中間6位,這樣改變的配置BPDU叫作RSTBPDU

RSTP中BPDU的Flag字段解釋:

  • 0位爲TC標誌位,和STP相同。

  • 1位爲Proposal標誌位,該位置位表示該BPDU爲快速收斂機制中的Proposal報文。

  • 2位和第3位爲端口角色標誌位,00表示端口角色爲未知;01表示端口角色爲AlternateBackup端口;10表示端口爲根端口11表示端口爲指定端口。

  • 4位爲Learning標誌位,該位置位表示端口處於Learning狀態。

  • 5位爲Forwarding標誌位,該位置位表示端口處於Forwarding狀態。

  • 6位爲Agreement標誌位,該位置位表示該BPDU位快速收斂機制中的Agreement報文。

  • 7位爲TCA標誌位,和STP相同。

 

 

RSTP中配置BPUD的處理

  • 非根橋設備每隔HelloTimer從指定端口主動發送配置BPDU

  • BPDU超時計時器爲3HelloTimer

  • 阻塞端口能夠當即對收到的次級BPDU進行迴應

RSTP(上)

 

BPDU處理髮生的變化

  • 拓撲穩定後,配置BPDU報文的發送方式


    • 拓撲穩定後,根橋按照HelloTimer規定的時間間隔發送配置BPDU。其餘非根橋設備在收到上游設備發送過來的配置BPDU後,纔會觸發發出配置BPDU,此方式使得STP協議計算複雜且緩慢。RSTP對此進行了改進,即在拓撲穩定後,不管非根橋設備是否接收到根橋傳來的配置BPDU報文,非根橋設備仍然按照HelloTimer規定的時間間隔發送配置BPDU,該行爲徹底由每臺設備自主進行。

  • 更短的BPDU超時計時


    • 若是一個端口連續3HelloTime時間內沒有收到上游設備發送過來的配置BPDU,那麼該設備認爲與此鄰居之間的協商失敗。而不像STP那樣須要先等待一個MaxAge

  • 次級BPDU的處理


    • 當一個端口收到上游的指定橋發來的RSTBPDU報文時,該端口會將自身存儲的RSTBPDU與收到的RSTBPDU進行比較。若是該端口存儲的RSTBPDU的優先級高於收到的RSTBPDU,那麼該端口會直接丟棄收到的RSTBPDU,當即迴應自身存儲的RSTBPDU。當上遊設備收到下游設備迴應的RSTBPDU後,上游設備會根據收到的RSTBPDU報文中相應的字段當即更新本身存儲的RSTBPDU。由此,RSTP處理次等BPDU報文再也不依賴於任何定時器經過超時解決拓撲收斂,從而加快了拓撲收斂

 

STP收斂機制

  • STP中,爲了不環路,端口從使能到進入轉發狀態須要等待默認30秒的時間,只能依靠計時器被動的收斂。若是想要縮短計時器,會引發網絡的不穩定性。

RSTP快速收斂機制

  • 邊緣端口機制


    • RSTP裏面,若是某一個指定端口位於整個網絡的邊緣,即再也不與其餘交換設備鏈接,而是直接與終端設備直連,這種端口叫作邊緣端口。邊緣端口不接收處理配置BPDU,不參與RSTP運算,能夠由Disable直接轉到Forwarding狀態,且不經歷時延,就像在端口上將STP禁用。可是一旦邊緣端口收到配置BPDU,就喪失了邊緣端口屬性,成爲普通STP端口,並從新進行生成樹計算,從而引發網絡震盪。

  • 根端口快速切換機制


    • 若是網絡中一個根端口失效,那麼網絡中最優的Alternate端口將成爲根端口,進入Forwarding狀態。由於經過這個Alternate端口鏈接的網段上必然有個指定端口能夠通往根橋。

  • Proposal/Agreement機制


    • 當一個端口被選舉成爲指定端口以後,在STP中,該端口至少要等待一個ForwardDelayLearning)時間纔會遷移到Forwarding狀態。而在RSTP中,此端口會先進入Discarding狀態,再經過Proposal/Agreement機制快速進入Forward狀態。這種機制必須在點到點全雙工鏈路上使用。

    • Proposal/Agreement機制簡稱P/A機制。

RSTP(上)

 

邊緣端口機制

  • 邊緣端口鏈接的是終端,當網絡拓撲發生變化時,邊緣端口不會發生環路,因此邊緣端口能夠忽略兩個ForwardingDelay,直接進入轉發狀態,無需任何延遲。

  • 邊緣端口不接收處理配置BPDU,不參與RSTP運算,能夠由Disable直接轉到Forwarding狀態,且不經歷時延,就像在端口上將STP禁用。可是一旦邊緣端口收到配置BPDU,就喪失了邊緣端口屬性,成爲普通STP端口,並從新進行生成樹計算,從而引發網絡震盪。

RSTP(上)

 

根端口快速切換機制

  • RSTP中,Alternate端口爲根端口的備份。當該網橋的根端口失效進入阻塞狀態時,網橋會選擇優先級最高的Alternate端口做爲新的根端口,若是網橋對端設備指定端口依然爲轉發狀態,則該網橋的新根端口直接進入Forwarding狀態。

 

 

P/A機制

  • 是指定端口快速進入轉發狀態

  • 工做模式爲點對點的全雙工模式

  • 包括ProposalAgreement報文

RSTP(上)

 

P/A機制

  • Proposal/Agreement機制,其目的是使一個指定端口儘快進入Forwarding狀態。

  • P/A機制要求兩臺交換設備之間鏈路必須是點對點的全雙工模式。一旦P/A協商不成功,指定端口的選擇就須要等待兩個ForwardDelay,協商過程與STP同樣。

  • 新鏈路鏈接成功後,P/A機制協商過程以下


    • p0p1兩個端口立刻都先成爲指定端口,發送RSTBPDU

    • S2p1口收到更優的RSTBPDU,立刻意識到本身將成爲根端口,而不是指定端口,中止發送RSTBPDU

    • S1p0進入Discarding狀態,因而發送的RSTBPDU中把proposal1

    • S2收到根橋發送來的攜帶proposalRSTBPDU,開始將本身的全部端口進入sync變量置位。

    • p2已經阻塞,狀態不變;p4是邊緣端口,不參與運算;因此只須要阻塞非邊緣指定端口p3

    • p2p3p4都進入Discarding狀態以後,各端口的synced變量置位,根端口p1synced也置位,因而便向S1返回Agreement位置位的迴應RSTBPDU。該RSTBPDU攜帶和剛纔根橋發過來的BPDU同樣的信息,除了Agreement位置位以外(Proposal位清零)。

    • S1判斷出這是對剛剛發出的Proposal的迴應,因而端口p0立刻進入Forwarding狀態。

P/A過程能夠向下遊繼續傳遞  

 RSTP(上)

 

P/A過程能夠向下遊繼續傳遞。

當S1和S2之間新增了一條鏈路後,P/A機制工做以下:

  • S1經過端口E1發送Proposal置位的RSTBPDU消息給S2

  • S2收到該消息後,意識到E2爲根端口,啓用同步機制阻塞指定端口E1E3以免產生環路,而後將根端口設置爲轉發狀態,並向S1發送Agreement消息。

  • S1收到Agreement消息後,指定端口E1立刻進入轉發狀態。

  • S2處於同步狀態的非邊緣指定端口E1E3發送Proposal報文。

  • S3收到S2發送的Proposal報文後,判斷E1爲根端口,啓動同步過程,因爲S3下游均爲邊緣端口,因此已經實現了同步,所以S3直接向S2回覆Agreement消息。

  • S2收到S3發送的Agreement消息後,端口E1立刻進入轉發狀態。

  • S4的處理過程如S3

  • S2收到S4發送的Agreement消息後,端口E3立刻進入轉發狀態。

  • P/A過程結束。

在RSTP中檢測拓撲是否發生變化只有一個標準:一個非邊緣端口遷移到Forwarding狀態

一旦檢測到拓撲發生變化,將進行以下處理:

  • 爲本交換設備的全部非邊緣指定端口啓動一個TC WhileTimer,該計時器值是HelloTime的兩倍。在這個時間內,清空狀態發生變化的端口上學習到的MAC地址。同時,由這些端口向外發送RSTBPDU,其中TC置位。一旦TC WhileTimer超時,則中止發送RSTBPDU

  • 其餘交換設備接收到RSTBPDU後,清空全部端口學習到MAC地址,除了收到RSTBPDU的端口。而後也爲本身全部的非邊緣指定端口和根端口啓動TC WhileTimer,重複上述過程。

如此,網絡中就會產生RSTBPDU的泛洪。

 

RSTP與STP互操做

  • RSTP端口在接收到STPBPDU的兩個hellotimer後,會切換到STP工做模式

  • 切換到STP協議的RSTP端口會喪失快速收斂等特性

  • 當運行STP的設備從網絡撤離後,原運行RSTP的交換設備可遷移回到RSTP工做模式

RSTP能夠和STP互操做,可是此時會喪失快速收斂等RSTP優點。

 

當一個網段裏既有運行STP的交換設備又有運行RSTP的交換設備,STP交換設備會忽略RST BPDU,而運行RSTP的交換設備在某端口上接收到運行STP的交換設備發出的配置BPDU,在兩個Hello Time時間以後,便把本身的端口轉換到STP工做模式,發送配置BPDU。這樣,就實現了互操做。

在華爲設備上能夠配置運行STP的交換設備被撤離網絡後,運行RSTP的交換設備可遷移回到RSTP工做模式。

 

選舉根交換機

 

 

 

端口角色

描述

Root Port

根端口,是所在交換機上離根交換機最近的端口,穩定時處於轉發狀態。

Designated Port

指定端口,轉發所鏈接的網段發往根交換機方向的數據和從交換機方向發往所鏈接的網段的數據,穩定時處於轉發狀態。

Backup Port

備份端口,不處於轉發狀態,所屬交換機爲端口所連網段的指定交換機。

Alternate Port

預備端口,不處於轉發狀態,所屬交換機不是端口所連網段的指定交換機。

端口狀態

描述

Discarding

丟棄狀態

此狀態下端口對接收到的數據作丟棄處理,端口不轉發數據幀,不學習MAC地址表。

Alternate PortBackup Port

Learning

學習狀態

此狀態下端口不轉發數據幀,可是學習MAC地址表,參與計算生成樹,接收併發送BPDU

Forwarding

轉發狀態

此狀態下端口正常轉發數據幀,學習MAC地址表,參與計算生成樹,接收併發送BPDU。

相關文章
相關標籤/搜索