8.2 STP:RSTP收斂

1.小知識

1.1 所有交換機使用RSTP,就一定快速收斂嗎?

  答案:不一定。RSTP是否啓用P/A快速收斂機制,除了需要對端設備開啓RTSP協議,還需要確定物理鏈路類型。在RSTP定義中有point-to-point類型和share類型,當鏈路上有hub或者端口半雙工時,交換機一般都認爲鏈路是share類型,這個時候在該鏈路上就不會啓動P/A鏈路是point-to-point類型時,交換機會啓動P/A機制
  思科交換機在接口模式下使用spanning-tree link-type {share|point-to-point}指定類型;華爲交換機在接口模式下使用stp point-to-point 指定類型。

1.2 P/A機制下,誰來負責避免環路呢?

  記住一點:由執行根端口角色變更的交換機在本地執行環路避免工作,例如設備變成根橋了,它以前的根端口角色就不存在變成指定端口;端口的開銷變大或變小了,需要重新選舉根端口了。這些情況都會引起根端口角色變更。

1.3 交換機在具體如何執行環路避免呢?

  設備在P/A傳遞機制中,非邊緣端口會處於discard狀態不會轉發數據,設備只有收到A置位的報文才會將非邊緣端口設置爲forwarding狀態。請記住一點:在初始化時候,所有交換機都會發送P置位報文,也是所有交換機協商完畢後,A置位的報文才會產生

1.4 拓撲變更時,所有設備的MAC表都清理嗎?

  一定要記住:RSTP拓撲變更時,只有受到變更影響的設備MAC表才需要清理,並不是全網設備都需要清理。

2.拓撲收斂

  在拓撲收斂中,只有非邊緣端口狀態從discard轉到forwarding纔會觸發拓撲變更TC報文,這裏只討論到設備角色和端口角色選舉完畢爲止,至於MAC表變更不做討論,因爲這個很簡單。

2.1 初始網絡收斂

在這裏插入圖片描述
  SW1優先級設置爲root primary,SW4優先級設置爲root secondary,下面描述網絡初始化時收斂過程:

  1.所有設備初始時都認爲自己是根橋,發送P置位的BPDU告訴鄰居,我是老大,都是指定端口,你就說同不同意。

  2.LSW1和LSW4收到LSW2和LSW3報文後,都一致認爲它倆是小弟,所以不會發送A置位的BPDU報文。

  3.LSW2和LSW3收到LSW1和LSW4報文後,認爲LSW1是老大,於是將LSW1是老大的信息,再次發送P置位的BPDU給LSW4。

  4.LSW4一看該信息,得了老大是LSW1了,於是向LSW2和LSW3發送A置位報文。LSW2和LSW3也會將A置位報文發給LSW1,都承認LSW1是根橋老大。

  5在設備發送或收到A置位BPDU後,根端口和指定端口立刻選舉出來,並設置爲forwarding。這個時間很快,也不需要經過STP的端口轉換延遲

2.2 新增根橋設備收斂

在這裏插入圖片描述
  以前的根橋時LSW1,後面新加設備LSW5的優先級更高,所以它是新根橋,其收斂過程如下:

  1.LSW5認爲自己是根橋老大,設置gi0/0/1爲指定端口處於disacrd狀態,併發送根橋ID是自己的P置位BPDU給LSW2.

  2.LSW2也一樣發送P置位的BPDU給LSW5,不過發現LSW5更優,所以立刻認爲gi0/0/3是根端口,gi0/0/1和gi0/0/2設置爲指定端口,但是爲了防止環路,端口都是discard狀態。

  3.LSW2向下級LSW1和LSW4傳遞P置位的BPDU,告訴它們老大換人了,抓緊協商同意把。LSW1和LSW4經過協商認爲新老大是LSW5,於是端口都設置爲discard狀態。但是不會立刻向LSW2發送A置位的報文,因爲LSW1和LSW4下游還有設備。

  4.LSW1和LSW4向下級LSW3發送P置位的BPDU,LSW3協商認爲老大是LSW5,於是端口都設置爲discard狀態。由於LSW3已經是最下級設備,所以LSW3開始向上發送A置位的BPDU,並協商端口角色,其中根端口和指定端口立刻進入forwarding狀態,阻塞端口繼續處於discard狀態。

  5.LSW1和LSW4收到A置位BPDU後協商自己端口角色,根端口和指定端口立即進入forwarding狀態,LSW1和LSW4也會立即向上發送A置位BPDU。

  6.LSW2收到A置位BPDU後,根和指定端口立即進入forwarding狀態,同時向上轉發A置位報文,LSW5收到報文後指定端口進入forwarding狀態。

  7.至此拓撲收斂完畢,雖然步驟很多但所用時間其實很短,大型拓撲也不過1-2秒左右就可以搞定。

2.3 新增非根橋收斂

在這裏插入圖片描述
  新增的LSW5優先級沒有LSW1高,所以它只算是普通設備,收斂過程如下:

  1.LSW5認爲自己是根橋老大,將gi0/0/1設置爲指定端口discard狀態,併發送P置位的BPDU,該BPDU中的根橋是自己。LSW2的gi0/0/3設置爲指定端口discard狀態,向LSW5發送P置位的BPDU,該BPDU的根橋是LSW1。

  2.LSW5發現還是LSW1厲害一些,所以認爲LSW1是根橋,併發送A置位的BPDU,設置gi0/0/1爲根端口狀態立即變爲forwarding。LSW2的gi0/0/3也立刻變成指定端口forwarding狀態。

2.4 原設備升級根橋收斂

在這裏插入圖片描述
  原拓撲中LSW1是根橋,LSW4的gi0/0/2是替代端口AP,後面認爲修改LSW4爲新根橋,其拓撲收斂工程如下:

  1.LSW4認爲自己是根橋老大,於是非邊緣端口全部設置爲指定端口,但是轉發狀態維持不變,開始向LSW2和LSW3發送P置位的BPDU。

  2.LSW2和LSW3收到P置位BPDU後,認爲LSW4是新根橋老大,將自己端口設置爲discard狀態,並向下遊設備轉發P置位的BPDU。

  3.LSW1收到P置位的BPDU後,認爲LSW4是新根橋老大,將自己的端口先設置爲discard狀態。由於LSW1是最下游設備,所以開始發送A置位的BPDU,同時內部選舉端口角色,並將根端口和指定端口設置爲forwarding狀態。

  4.LSW2和LSW3收到A置位的BPDU後內部選舉端口角色,並將根端口和指定端口立刻設置爲forwarding狀態。LSW2和LSW3同時向LSW4發送A置位的BPDU。

  5.LSW4收到A置位的BPDU後,discard狀態的指定端口立刻進入forwarding狀態,至此收斂完畢。

3.故障收斂

3.1直連故障

在這裏插入圖片描述
  LSW1與LSW3的直連鏈路出現故障,收斂過程如下:

  1.LSW3發現根端口失效後,根端口立即失效並刪除最優BPDU信息,同時因爲收到來自LSW2的配置BPDU報文,所以不會等待3個hello時間,立刻將AP端口(AP端口就是根端口的備份)設置爲根端口,並將狀態從discard變成forwarding。LSW3觸發拓撲變更向LSW2發送TC置位的BPDU。

  2.LSW2收到TC置位的BPDU後,按照規則刪除MAC表,並向LSW1繼續發送TC置位的BPDU.

  3.LSW1根據規則刪除MAC表,拓撲和MAC表收斂完畢,收斂時間忽略不計。

3.2 非直連故障

在這裏插入圖片描述
  在該拓撲中,LSW1和LSW3出現了非直連故障,拓撲收斂過程如下:

  1.LSW2與LSW1鏈路故障,LSW2立刻檢測到RP端口失效,LSW2等待3個hello時間依然收不到任何設備發送的BPDU,就認爲自己是根橋,Gi0/0/2端口角色不變,狀態變成discard,發送根橋ID是自己的P置位配置BPDU

  2.LSW3在阻塞端口AP收到LSW2發送的次優BPDU後,立刻認爲gi0/0/1端口應該是指定端口,併發送P和A都置位的最優BPDU給LSW2。 這裏RSTP就比STP快了50秒,因爲STP需要等20S超時+30S的端口變遷,阻塞端口才能變成指定端口並進入forwarding狀態。

  3.LSW2收到最優BPDU後,不在認爲自己不是根橋,所以指定端口狀態變成forwarding,發送A置位的BPDU報文。LSW3收到報文後,指定端口gi0/0/1進入forwarding狀態,並且發送TC置位的報文。

  4.LSW1和LSW2收到TC置位報文後,按照規則刪除MAC表,拓撲收斂完畢,大概需要3個hello=6S。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章