1. 程式人生 > >014-STP根橋、根端口、指定端口、預備端口的選舉-筆記

014-STP根橋、根端口、指定端口、預備端口的選舉-筆記

分享圖片 idg 轉發 生成樹 51cto bridge mar 端口優先級 rpc

圖中的阻塞端口指的就是預備端口。。。。個人習慣
技術分享圖片
STP中定義了三種端口角色:指定端口, 根端口和預備端口。
指定端口是交換機向所連網段轉發配置BPDU的端口, 每個網段有且只
能有一個指定端口。 一般情況下, 根橋的每個端口總是指定端口。

根端口是非根交換機去往根橋路徑最優的端口。 在一個運行STP協議的
交換機上最多只有一個根端口, 但根橋上沒有根端口。

如果一個端口既不是指定端口也不是根端口, 則此端口為預備端口。 預
備端口將被阻塞。
在以太網中, 二層網絡的環路會帶來廣播風暴, MAC地址表震蕩, 重復
數據幀等問題, 為解決交換網絡中的環路問題, 提出了STP。
STP的主要作用:

  1. 消除環路:通過阻斷冗余鏈路來消除網絡中可能存在的環路。
  2. 鏈路備份:當活動路徑發生故障時, 激活備份鏈路, 及時恢復網絡
    連通性
    STP通過構造一棵樹來消除交換網絡中的環路。
    每個STP網絡中, 都會存在一個根橋, 其他交換機為非根橋。 根橋或者
    根交換機位於整個邏輯樹的根部, 是STP網絡的邏輯中心, 非根橋是根
    橋的下遊設備。 當現有根橋產生故障時, 非根橋之間會交互信息並重新
    選舉根橋, 交互的這種信息被稱為BPDU。 BPDU中包含交換機在參加
    生成樹計算時的各種參數信息, 後面會有詳細介紹。
    STP中定義了三種端口角色:指定端口, 根端口和預備端口。
    指定端口是交換機向所連網段轉發配置BPDU的端口, 每個網段有且只
    能有一個指定端口。 一般情況下, 根橋的每個端口總是指定端口。
    根端口是非根交換機去往根橋路徑最優的端口。 在一個運行STP協議的
    交換機上最多只有一個根端口, 但根橋上沒有根端口。
    如果一個端口既不是指定端口也不是根端口, 則此端口為預備端口。 預
    備端口將被阻塞
    STP中根橋的選舉依據的是橋ID, STP中的每個交換機都會有一個橋
    ID(Bridge ID) 。 橋ID由16位的橋優先級(Bridge Priority) 和48位的
    MAC地址構成
    。 在STP網絡中, 橋優先級是可以配置的, 取值範圍是
    0~65535, 默認值為32768。 優先級最高的設備(數值越小越優先) 會
    被選舉為根橋。 如果優先級相同, 則會比較MAC地址, MAC地址越小
    則越優先。
    交換機啟動後就自動開始進行生成樹收斂計算。 默認情況下, 所有交換
    機啟動時都認為自己是根橋, 自己的所有端口都為指定端口, 這樣
    BPDU報文就可以通過所有端口轉發。 對端交換機收到BPDU報文後,
    會比較BPDU中的根橋ID和自己的橋ID。 如果收到的BPDU報文中的橋
    ID優先級低, 接收交換機會繼續通告自己的配置BPDU報文給鄰居交換
    機。 如果收到的BPDU報文中的橋ID優先級高, 則交換機會修改自己的
    BPDU報文的根橋ID字段, 宣告新的根橋。
    非根交換機在選舉根端口時分別依據該端口的根路徑開銷、 對端BID
    (Bridge ID) 、 對端PID(Port ID) 和本端PID。
    交換機的每個端口都有一個端口開銷(Port Cost) 參數, 此參數表示該
    端口在STP中的開銷值。 默認情況下端口的開銷和端口的帶寬有關, 帶
    寬越高, 開銷越小。 從一個非根橋到達根橋的路徑可能有多條, 每一條
    路徑都有一個總的開銷值, 此開銷值是該路徑上所有接收BPDU端口的
    端口開銷總和(即BPDU的入方向端口) , 稱為路徑開銷。 非根橋通過
    對比多條路徑的路徑開銷, 選出到達根橋的最短路徑, 這條最短路徑的
    路徑開銷被稱為RPC(Root Path Cost, 根路徑開銷) , 並生成無環樹
    狀網絡。 根橋的根路徑開銷是0。
    一般情況下, 企業網絡中會存在多廠商的交換設備, 華為X7系列交換機
    支持多種STP的路徑開銷計算標準, 提供最大程度的兼容性。 缺省情況
    下, 華為X7系列交換機使用IEEE 802.1t標準來計算路徑開銷。
    運行STP交換機的每個端口都有一個端口ID, 端口ID由端口優先級和端
    口號構成。 端口優先級取值範圍是0到240, 步長為16, 即取值必須為
    16的整數倍。 缺省情況下, 端口優先級是128
    。 端口ID(Port ID)可以用
    來確定端口角色。
    每個非根橋都要選舉一個根端口。 根端口是距離根橋最近的端口, 這個
    最近的衡量標準是靠路徑開銷來判定的, 即路徑開銷最小的端口就是根
    端口。 端口收到一個BPDU報文後, 抽取該BPDU報文中根路徑開銷字
    段的值, 加上該端口本身的端口開銷即為本端口路徑開銷。 如果有兩個
    或兩個以上的端口計算得到的累計路徑開銷相同, 那麽選擇收到發送者
    BID最小的那個端口作為根端口。
    如果兩個或兩個以上的端口連接到同一臺交換機上, 則選擇發送者PID最小的那個端口
    作為根端口。 如果兩個或兩個以上的端口通過Hub連接到同一臺交換機的同一個接口上,
    則選擇本交換機的這些端口中的PID最小的作為根端口。
    在網段上抑制其他端口(無論是自己的還是其他設備的) 發送BPDU報
    文的端口, 就是該網段的指定端口。 每個網段都應該有一個指定端口,
    根橋的所有端口都是指定端口(除非根橋在物理上存在環路) 。
    指定端口的選舉也是首先比較累計路徑開銷, 累計路徑開銷最小的端口
    就是指定端口。 如果累計路徑開銷相同, 則比較端口所在交換機的橋ID,
    所在橋ID最小的端口被選舉為指定端口。 如果通過累計路徑開銷和所在
    橋ID選舉不出來, 則比較端口ID, 端口ID最小的被選舉為指定端口。
    網絡收斂後, 只有指定端口和根端口可以轉發數據。 其他端口為預備端
    口, 被阻塞
    , 不能轉發數據, 只能夠從所連網段的指定交換機接收到
    BPDU報文, 並以此來監視鏈路的狀態。

014-STP根橋、根端口、指定端口、預備端口的選舉-筆記