HCIE-RS面試---STP拓撲變化過程

BPDU:bridge protocol data unit,網橋協議數據單元。
網絡中全部設備使能STP後,每一臺設備都覺得本身是根橋。此時,每臺設備僅僅收發配置BPDU,而不轉發用戶流量,全部的端口都處於listening狀態,全部設備經過交換配置BPDU後,進行選舉工做,選出根橋、根端口和指定端口。算法

BPDU報文的交互過程

在這裏插入圖片描述
根橋BID,累計根路徑開銷、發送者BID,發送端口PID構成有序組。配置BPDU會按照Hello Timer規定的時間間隔來發送。網絡

STP算法實現的基本過程

一、初始狀態

因爲每一個橋都覺得本身是根橋,因此在每一個端口所發出的BPDU中,根橋字段都是用各自的BID,root path cost字段是累計的到達根橋的開銷,發送者BID是本身的BID,端口PID是發送該BPDU端口的端口ID。ide

二、選擇根橋

網絡初始化時,網絡中全部的STP設備都自覺得根橋,根橋ID爲自身的BID,經過交換BPDU,設備之間比較BID,BID最小的設備被公認爲根橋。至此,根橋肯定。blog

三、選擇根端口和指定端口

3.1 非根橋將接收最優BPDU的那個端口定爲根端口。

最優配置消息的選擇過程

1 每一個端口將收到的配置消息與本身的配置消息進行比較
  • 若是收到的配置消息優先級比較低,則將其直接丟棄,對本身的配置消息不進行任何處理;
  • 若是收到的配置消息優先級較高,則用該配置消息的內容將本身配置消息的內容替換掉。
  • 若是收到的配置消息優先級與本身相同, 則將其直接丟棄。
    2 設備將全部端口的配置消息進行比較,選出最優的配置消息

    3.2 設備根據根端口的配置消息和根端口的路勁開銷,爲每一個端口計算一個指定端口配置消息:

  • RBID字段替換爲RP的收到的BPDU中的RBID字段(BPDU中原來的RBID字段爲自身BID,因爲從RP收到的BPDU中獲得了真正的RBID,將此字段進行替換)
  • 根路徑開銷字段替換爲RP收到的根路徑開銷加上RP對應的路徑開銷。(原來爲0,即根橋全部端口到根橋的路徑開銷爲0)
  • 發送者BID替換爲自身設備的ID
  • 發送端口PID替換爲自身端口ID

    3.3 設備將計算出的配置消息與角色待定端口本身的配置消息進行比較:

  • 若是計算出的配置消息更優,則該端口被肯定爲指定端口,其配置消息也被計算出的配置消息替換,並週期性地向外發送;
  • 若是該端口本身的配置消息更優,則不更新該端口的配置消息並將該端口阻塞,該端口將再也不轉發數據,且只接收不發送配置消息。

    STP算法實現過程

    在這裏插入圖片描述
    A,B,C的優先級分別爲0,1,2,A與B之間,A與C之間,B與C之間鏈路的路徑開銷分別爲5,10,4.接口

    1 各設備的初始狀態

    注意:四元組:{根橋ID,累計根路徑開銷,發送者BID,發送端口PID}圖片

    A

端口名稱 端口的配置消息
Port A1 {0,0,0,pa1}
Port A2 {0,0,0,pa2}

B

端口名稱 端口的配置消息
Port B1 {1,0,1,pb1}
Port B2 {1,0,1,pb2}

C

端口名稱 端口的配置消息
Port C1 {2,0,2,pc1}
Port C2 {2,0,2,pc2}

2 各設備的比較過程及結果

A

比較過程

  • Port A1收到Port B1的配置消息{1,0,1,Port B1},發現本身的配置消息{0,0,0,Port A1}更優,因而將其丟棄。
  • Port A2收到Port C1的配置消息{2,0,2,Port C1},發現本身的配置消息{0,0,0,Port A2}更優,因而將其丟棄。
  • DeviceA發現本身各端口的配置消息中的根橋和指定橋都是本身,因而認爲本身就是根橋,各端口的配置消息都不做任何修改,此後便週期性地向外發送配置消息。

    比較結果

  • Port A1:{0,0,0,Port A1}
  • Port A2:{0,0,0,Port A2}

    B

    比較過程一

  • pb1收到pa1的發來的配置消息{0,0,0,pa1},發現比本身的配置消息{1,0,1,pb1}更優,因而更新本身的配置消息。
  • pb2收到pc2發來的配置消息{2,0,2,pc2},發現本身的配置消息{1,0,1,pb2}更優,因而將其丟棄。

    比較結果二

  • PB1:{0,0,0,PA1}
  • PB2:{1,0,1,PB2}

    比較過程二

  • B比較本身各端口的配置消息,發現PB1的配置消息最優,因而將其指定爲根端口,,其配置消息不變。
  • B根據根端口PB1的配置消息和路徑開銷,爲PB2計算出指定端口的配置消息{0,5,1,PB2},而後與BP2自己的配置消息進行比較,發現計算出的配置消息更優,因而PB2被定爲指定端口,其配置消息也被替換爲計算出的配置消息,並週期性向外發送。

    計算結果二

  • 根端口PB1:{0,0,0,PA1}
  • 指定端口PB2:{0,5,1,PB2}

    C

    計算過程一

  • PC1收到PA2的配置消息{0,0,0,PA2},發現其比本身的配置消息{2,0,2,PC1}更優,因而更新本身的配置消息。
  • PC2收到PB2更新前的配置消息{1,0,1,PB2},發現其比本身的配置消息{2,0,2,PC2}更優,因而更新本身的配置消息。

    計算結果一

  • PC1:{0,0,0,PA2}
  • PC2:{1,0,1,PB2}

    計算過程二

  • C比較本身各端口的配置消息,發現PC1的配置消息最優,因而該端口被肯定爲根端口,其配置消息不變。
  • C根據根端口的配置消息和路徑開銷,爲PC2計算出指定端口的配置消息{0,10,2,PC2},而後與PC2自己的配置消息{1,0,1,PB2}進行比較,發現計算出的配置消息更優,因而PC2被肯定爲指定端口,其配置消息更新爲計算出的配置消息

    計算結果二

  • PC1:{0,0,0,PA2}
  • PC2:{0,5,1,PB2}

    計算過程三

  • C比較PC1的根路徑開銷10與PC2的根路勁開銷9,發現後者更小,因而PC2的配置消息更優,因而PC2被肯定爲根端口,其配置消息不變。
  • C根據根端口的配置消息和路徑開銷,爲PC1計算出指定端口的配置消息{0,9,2,PC1},而後與PC1自己的配置消息{0,0,0,PA2}進行比較,發現自己的配置消息更優,,因而PC1被阻塞,其配置消息不變。今後,,PC1再也不轉發數據,直到有觸發STP計算的新狀況出現,如B與C之間的鏈路down掉。

網絡收斂後,根橋會按照必定的時間間隔產生並向外發送配置BPDU,其餘設備收到該配置BPDU後,若是優先級比本身的配置BPDU高,則非根橋設備會根據收到的配置BPDU中攜帶的信息更新本身相應的端口存儲的配置BPDU信息,不然會丟棄該配置BPDU。rpc

STP 拓撲變化

TCN的發送和TC的泛洪

  1. T點接口發生變動後,下游設備會不間端地向上遊設備發送TCN BPDU報文。
  2. 上游設備收到下游設備發來的TCN BPDU報文後,只有指定端口處理TCN BPDU報文,其餘端口也有可能收到TCN BPDU報文,但不會處理。
  3. 上游設備會將配置BPDU報文中的flags字段中的TCA位置1,而後發送給下游設備,告知下游設備中止發送TCN BPDU報文。
  4. 上游設備複製一份TCN BPDU報文,向根橋方向發送。
  5. 重複步驟1,2,3,4.直到根橋收到TCN BPDU報文。
  6. 根橋把配置BPDU報文中flags的TC位和TCA位同時置1 後發送,TC位置1 是爲了通知下游設備直接刪除橋MAC地址表項,TCA位置1 是爲了通知下游設備中止發送TCN BPDU報文。
    說明:
    • TCN BPDU報文主要用來向上遊設備乃至根橋通知拓撲變化。
    • 置位的TCA標記的配置BPDU報文主要是上游設備用來告知下游設備已經知道拓撲變化,通知下游設備中止發送TCN BPDU報文。
    • 置位的TC標記的配置BPDU報文主要是上游設備用來告知下游設備拓撲發生變化,請下游設備直接刪除橋MAC地址表項,從而達到快速收斂的目的。

總結

選舉方法

  • 一、選擇根橋
  • 二、非根橋上選擇根端口
  • 三、衝突域上選擇指定端口
  • 四、既不是RP也不是DP的就是AP

    在穩定STP網絡中端口狀態只有2種

    一、discasrding(AP)

    二、forwarding(RP.DP)

    最優BPDU的選擇

  • 1 root id 最小
  • 2 rpc積累和
  • 3 bid最小
  • 4 pid最小

    選舉的算法

  • root id 最小是根橋
  • 非根橋bpdu最好的端口是RP
  • 根據RP計算DP的BPDU參數,若是比指定端口的自己的BPDU參數好,則該端口爲DP端口,若是沒有比指定端口自己的BPDU參數好,則該端口爲AP。

RP失效,存在AP,網絡須要30s恢復鏈接

RP失效,不存在AP,網絡須要50s恢復鏈接

相關文章
相關標籤/搜索