華爲路由交換STP/RSTP/MSTP

STP生成樹

原理

通過發送BPDU來確拓撲結構,根據互相交互的BPDU來選舉出根橋和端口角色從而防止環路、防止廣播風暴

如圖:任意一臺交換機發出一個廣播就會促發其他交換機也發出廣播 就會陷入無限循環 而且交換機的mac地址表會不斷的變化 影響網絡的穩定和暢通
交換機環路引發的廣播風暴

BPDU (網橋協議數據單元)

設備之間傳輸BPDU來建立生成樹結構,根據BPDU裏的信息,設備之間就可以選舉出根橋和對應的端口角色 BPDU分了兩種 分別是 配置BPDU 和 TCN BPDU

配置BPDU:採用組播地址0180-c200-0000發送 用於建立stp網絡結構,還用於維持stp的結構 兩秒發一次
TCN BPDU:下游設備檢測到網路結構發生變化後 發出的通知

根橋

根橋有且只有一個 通過比較 橋ID選舉出 橋ID=優先級+mac-小的優選 優先級默認爲32768
優先級的值只能設置爲4096的倍數,也就是步長爲4096

端口角色(指定、根、阻塞)

指定端口
設備發送配置BPDU的端口

  • 根橋上的所有端口都是指定端口
  • 指定端口可以存在多個
  • 端口狀態爲轉發狀態

選舉:.非根橋之間通過比較 先比較開銷 再比較端口ID(優先級+端口號) 小的選爲根端口

根端口
設備接收BPDU的端口,和去往根橋的最優端口

  • 跟橋上沒有根端口
  • 根端口有且只有一個
  • 根端口有且只有一個
  • 根端口是設備去往根橋的最優路徑
  • 根橋所連接的是指定端口
  • 端口狀態爲轉發狀態

選舉:線比較去往根橋的開銷 小的優先—>比較上連設備橋ID小的優先—>比較對端 端口優先級小的優先—>比較對端端口號小的優先
在這裏插入圖片描述

阻塞端口

  • 不是根端口也不是指定端口 那剩下的就是阻塞端口
  • 阻塞端口20秒沒收到BPDU 就會發送自己的BPDU參與stp運算
  • 端口狀態爲阻塞狀態(Bloking)

端口狀態

  • 禁用(Disable)
    DOWN狀態
  • 阻塞(Bloking)
    接收BPDU 不發送BPDU 不轉發用戶數據
  • 偵聽(Lestening)
    接收BPDU 發送BPDU 不轉發用戶數據
  • 學習(Learning)
    接收BPDU 發送BPDU 不轉發用戶數據
  • 轉發(forwarding)
    接收BPDU 發送BPDU 轉發用戶數據

當網絡結構發生變化後 一個阻塞端口轉變爲轉發狀態需要經歷50秒的時間 具體轉變過程如下

  • 阻塞狀態----20秒沒收到 BPDU則認爲網絡發生變化,端口進入偵聽狀態參與STP運算
  • 偵聽狀態—發送自己的BPDU 偵聽網絡中的BPDU 15秒後進入學習狀態
  • 學習狀態—發送自己的BPDU 學習mac地址 15秒後進入轉發狀態
    //15秒是爲了有充足的時間讓stp進行收斂,stp沒收斂完就發送用戶數據會有環路
  • 轉發狀態—進行用戶數據的轉發

STP拓撲發生變化

根橋發生變化:非根橋交換機20秒後收不到來自根橋的BPDU就會進行重新計算stp 阻塞端口 進入 偵聽狀態 在進入學習狀態 在進入轉發狀態需要50秒
直連端口發生變化:阻塞端口變爲根端口計算生成樹需要兩個轉發時延15+15=30秒的時間

stp如何維持的

由根橋從指定端口發送BPDU 非根橋從根端口收到BPDU後 從指定端口向下遊轉發這個BPDU
若設備20秒沒收到BPDU就會認爲網絡結構發生變化 引起stp從新計算 根橋發送BPDU的頻率是2秒一次
在這裏插入圖片描述

RSTP快速生成樹

在stp中存在一個問題 就是收斂時間長 大概需要50秒的時間 所以需要RSTP的P/A機制(proppasl/agreement)來實現端口的快速轉變
相對於stp rstp新增了端口角色分別是BackupAlternate

端口角色

  • Backup端口:此端口作爲指定端口的備用端口,當指定端口發生故障時,此端口變爲指定端口(18秒後) 正常情況下是阻塞狀態
  • Alternate端口:此端口作爲根端口的備用端口,當根端口發生故障時,此端口變爲根端口(立刻)進入轉發狀態 正常情況下是阻塞狀態

邊緣端口

不接收BPDU 不參與stp運算 可從禁用狀態直接變爲轉發狀態 但是一旦接收到BPDU就會立刻變爲普通接口 參與stp運算
// 邊緣端口通常設置在交換機和pc相連接的端口,因爲pc一旦接入交換機 交換機就會認爲網絡發生變化就會產生TCN BPDU 由於pc是經常開關的 所以會頻繁影響stp生成樹 設置爲邊緣端口就會解決這類問題
// 但是一旦邊緣端口連接到了其他交換機 那麼交換機就會向這個端口發送BPDU 一旦邊緣端口收到BPDU就會立刻變回普通的端口

端口狀態

RSTP將STP的五種端口狀態簡化爲三種,將 禁用 阻塞 偵聽合併爲禁用

禁用Discarding 發送BPDU 接收BPDU 不轉發用戶數據
學習Learning 接收但不轉發用戶數據 構建MAC地址表
轉發Forwarding 發送BPDU 接收BPDU 轉發用戶數據

RSTP維持

每臺設備都自主發送BPDU 不需要收到根橋的BPDU才觸發發送 頻率爲2秒一次
在這裏插入圖片描述

在stp中 20秒沒收到來自根橋的BPDU就會認爲鏈路出現故障 所以設備發現故障存在的時間需要20秒
而在RSTP中若三個hello time(6秒)沒收到上游鄰居發送的BPDU就會認爲鄰居出現故障 加快了設備發現故障的時間

故障處理

設備檢測網絡結構發生變化後會觸發TCN BPDU 釋放故障端口的MAC表項
設備收到TCN BPDU 後 釋放除了收到TCN的其他接口的MAC表項
在這裏插入圖片描述

保護機制

  • 根保護
    保護根橋的指定端口不會因爲網絡問題而改變端口角色
    開啓根保護後 根橋的指定端口收到更優的BPDU就會進入偵聽狀態 若一段時間沒收到這個BPDU了就會變回轉發狀態
    //根保護有利於保護根橋保持不變 不會變成非根交換機
    //根保護只能配置在指定端口上

  • BPDU保護
    開啓BPDU保護後 邊緣端口收到BPDU後會立刻關閉 需手動開啓或自動開啓
    //邊緣端口是鏈接pc機的 正常情況下PC是不會發送BPDU的 若有人故意攻擊BPDU保護就起到了防止有人攻擊從而引起的網絡震盪

  • 環路保護
    端口如果長時間沒收到來自上游的BPDU 就會進入丟棄狀態 避免網絡中出現環路情況(光纖)

MSTP多生成樹

無論是stp還是RSTP所有網絡設備都是公用同一顆生成樹 這樣就會造成某些鏈路沒有數據在走,某些鏈路的傳輸壓力過大的問題

當lsw1 0/0/3接口被選爲阻塞端口後 所有數據都通過左邊鏈路 而右邊鏈路卻沒有任何用戶數據流通
造成左邊轉發壓力過大 右邊浪費帶寬的情況
在這裏插入圖片描述
MSTP多生成樹可以根據vlan來劃分 在一個網絡結構裏可以存在多個生成樹
如圖:
vlan3 的數據走左邊 vlan2的數據走右邊 這樣就可以實現負載均衡
在這裏插入圖片描述

小白菜 發現錯誤的請多多指導

發佈了5 篇原創文章 · 獲贊 2 · 訪問量 121
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章