生成樹協議

透明網橋轉發數據幀時,不會對幀進行處理,也不會記錄幀的任何傳遞信息。如果一個物理鏈路裏有環,當有廣播包發出時,將形成廣播風暴。然而物理路徑上的環路消除完是不可能的,這輩子都不可能了,但可以通過協議阻斷網絡中存在的冗餘鏈路從而消除可能存在的環路。數據結構裏面說了,樹是沒有環的,因此要把有環的物理鏈路轉化成無環,可以通過生成樹的方式,故爾生成樹協議(STP)應運而生。

STP

STP拓撲結構

STP作爲消除數據鏈路層物理環路的協議,被稱爲802.1D,它有兩個升級版RSTP、MSTP,此處先聊聊STP。STP協議生成的拓撲結構如圖:
這裏寫圖片描述
一個STP網絡物理鏈路上的結構可分爲三部分:根橋、非根橋以及物理段。其中根橋與非根橋都是交換機,物理段則是終端設備。根據這張圖,我們需要了解一些STP協議裏的方言:

  1. 橋ID:橋ID由橋優先級和橋MAC地址組成,橋優先級默認情況下是相同的,但由於橋MAC地址是唯一的,所以橋ID也是唯一的。橋ID主要用於選出根橋,即生成樹的根節點。

  2. 端口ID:端口ID由端口索引號和端口優先級組成。

  3. 根路徑開銷:生成樹協議中用於判斷到達根橋的距離的參數。一般而言,根路徑開銷與物理帶寬成反比,帶寬越大,鏈路通過開銷越小。

:比較橋ID與端口ID時,先比較橋優先級或端口優先級,再比較橋MAC地址或端口號。

STP協議的收斂過程

STP採用的協議數據報文時BPDU(橋協議數據單元)。BPDU分爲兩類:配置BPDU(用於進行生成樹計算和維護生成樹拓撲的報文)、TCN BPDU(拓撲變化時用於通知相應設備拓撲變化)。BPUD報文中含有的信息有:根橋ID、根路徑開銷、指定橋ID、指定端口ID。

SPI收斂過程:

  1. 根橋選舉:根橋選舉將產生STP網絡中的根橋,網絡初始化時,所有的橋都認爲自己是 “根橋”,設備之間發送BPUD報文比較橋ID。橋ID最小的橋將被選爲根橋。
  2. 端口角色:STP將阻塞環路中的端口,從而消除環路。阻塞端口時,根橋上的所有端口爲指定端口(DP),每個非根橋選擇根路徑開銷最小的端口作爲根端口(RP),每個物理段選出根路徑開銷最小的網橋作爲指定橋(DB),該指定橋到物理段的端口作爲指定端口。其餘既不是指定端口也不是根端口的是Alternate端口,將被置爲阻塞狀態。

注: 網絡中設備不是一成不變的,網絡拓撲發生改變時端口的狀態也會隨之變化。當一個端口不再是根端口或者指定端口時,端口的狀態就變爲Blocking。當一個端口被選爲根端口或者指定端口時,就會從Blocking狀態遷移到一箇中間狀態Listening狀態,經歷Forward Delay時間後就會遷移到下一個Learning狀態,再經歷一個Forward Delay時間後,遷移到Forwarding狀態。默認的Forward Delay時間是15s,一個端口被選爲根端口或者指定端口,要經過30s的時間。

端口的狀態:

狀態 描述
Disabled 端口失效,不接收和發送任何報文
Blocking 端口不參與轉發數據報文,但可以接收並交由CPU處理,不能發送配置信息,不能進行地址學習
Listening 端口不參與數據轉發,不進行地址學習,但可以發送BPDU配置消息
Learning 端口不轉發數據,開始地址學習,接收、處理、發送BPDU配置消息
Forwarding 可以轉發數據,接收、處理、發送BPDU配置消息

RSTP

STP協議中,一個端口被選爲根端口或者指定端口後,要經過兩個Forward Delay的時間網絡纔會正常,若是網絡中拓撲切換頻繁,那麼網絡將一直處於不正常狀態。使用RSTP協議,則能提供網絡快速恢復的功能。

  1. 端口被選爲根端口: 當交換機上原有兩個端口可以達到根橋,則根端口轉換時所需時間只是根端口切換的時間,無需傳遞BPDU。
  2. 指定端口是非邊緣端口: 非邊緣指的是這個端口連接到其他交換機,而不是隻連接到終端設備。如果交換機之間是點對點電路,則交換機需要發送握手報文到其他交換機進行協商,只有對端返回一個贊同報文後,端口才進入轉發狀態。
  3. 指定端口是邊緣端口:邊緣端口是直接與終端設備相連,不再連接任何交換機的端口。這些端口無需參與生成樹計算,端口可以無延時地進入轉發狀態

MSTP

MSTP協議可以在網絡中定義多個生成樹實例,每個實例對應多個vlan,每個實例維護自己的生成樹。

生成樹協議基本配置

STP基本配置

//開啓生成樹協議
stp enable
//關閉生成樹協議(在端口視圖下使用該命令將只關閉該端口的stp功能)
stp disable
//設置工作模式
stp mode {stp|rstp|mstp}

配置優化stp

//配置網橋優先級
stp [instance instance-id] priority priority
//端口視圖下配置端口爲邊緣端口
stp edged-port enable

stp顯示與維護

//顯示stp信息
display stp
//查看stp各端口的角色與狀態
display stp brief
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章