STP生成樹協議,感覺這個協議內容挺多,根網橋、根埠、指定埠傻傻分不清。
STP【Spanning-Tree Protocol | 生成樹協議】
交換機工作原理回顧
交換機從某埠接受數據幀,學習源MAC地址,之後查找自身的MAC地址表,尋找目標MAC地址;若無法找到目標MAC地址,則廣播該數據幀;若能夠找到目標MAC地址,則單播數據幀。
環路引起的原因
1. 用於交換機學習源MAC地址,廣播轉發數據的工作方式,極易造成二層環路的問題
2. 廣播風暴將造成交換機死機,甚至硬體燒毀
3. 需要使用相應的技術防止二層環路的發生
STP的作用
1. SPT —— Spanning Tree Protocol 【生成樹協議】
2. 邏輯上斷開環路,防止廣播風暴的產生;當主鏈路出現故障時,斷開的埠將被激活,恢復通信,起到備份線路的作用
STP的算法
STP將一個環形網絡生成無環拓撲結構的步驟為:
1. 選擇跟網橋【Root Bridge】
網橋ID【BID】
網橋ID是唯一的,交換機之間選擇BID值最小的交換機作為網絡中的根網橋
選擇根網橋的目的是為了給將生成的樹形結構確定一個樹根
網橋優先級取值範圍:0 —— 65535
預設值為:32768
2. 選擇根埠【Root Ports 】
在非根網橋上選擇一個到根網橋最近的埠作為根埠
根埠選舉過程【4步】:
最低的到達根網橋的路徑開銷
最低的發送方網橋ID
最低的埠優先級
發送方最低的埠ID
根路徑成本 —— 是非根網橋到根網橋的路徑上所有鏈路的成本之和
埠ID的組成:
取值範圍: 0 -240
預設值:128
3. 選擇指定埠【Designated Ports】
註:根網橋身上的所有埠均為指定埠
BPDU中的根網橋ID
最低的到達根網橋的路徑開銷
發送方的網橋ID
若優先級相同,則具有最低MAC地址
4. BPDU 【Bridge Portocol Data Unit | 橋接協議數據單元】
作用:用來承載STP中各個交換機彼此之間相互通告消息所使用的載體
BPDU使用組播方式發送,組播地址:01-80-C2-00-00-00
BPDU分為2大類:
1. 配置BPDU: 用來完成STP的首次計算
2. TCN BPDU(拓撲變更通告):在STP拓撲結構發生變化時使用
BPDU默認每2s發送一次
從根網橋開始,其發送的BPDU的MSG age為0, 默認的Max age 為20, 該值每經過一層交換機遞增1,目的是用來控制STP的範圍
STP的5種埠狀態
1. 禁用【Disable】: 不發送BPDU、不接受BPDU、不學習MAC地址信息、不會轉發數據
2. 阻塞【Discard】: 不發送BPDU、接受BPDU、不學習MAC地址信息、不會轉發數據【常態】
3. 偵聽【Listening】: 發送BPDU、接受BPDU、不學習MAC地址信息、不會轉發數據【中間態】
4. 學習【Learning】: 發送BPDU、接受BPDU、學習MAC地址信息、不會轉發數據【中間態】
5. 轉發【Forwarding】: 發送BPDU、接收BPDU、學習Mac地址信息、轉發數據【常態】
STP的計時器
STP中,一個阻塞埠從阻塞狀態恢復至轉發狀態,需要經過50s的時間【20s的最大老化延遲(Maxage) + 30s的轉發延遲(偵聽→學習15s; 學習→轉發15s)】
1. 交換機對於非直連鏈路發生的鼓掌需要經過50s的時間恢復【20s + 15s + 15s】
2. 交換機對於直連鏈路發生的鼓掌需要經過30s的時間恢復【15s + 15s】
拓撲變化與MAC地址表老化
1. MAC地址表的老化時間默認為300s
2. 在MAC地址表老化時間超時之前,即便STP完成了鏈路的轉換,但交換機依舊無法正常接收數據
3. 在STP中,根網橋負責通知下遊設備把MAC地址表項的老化時間由默認的300秒修改為Forward Delay的時間【默認為15s】
STP【802.1D】的配置
stp mode stp
stp priority 4096
stp pathcost-standard dot1d-1998
註:華為交換機支持三種路徑開銷表中,以確保與友商設備保持兼容
預設情況下,路徑開銷標準為IEEE 802.1t
stp cost 命令取決於路徑開銷計算方法:
使用華為的私有計算方法時, cost取值範圍是 1 ~ 200000
使用IEEE 802.1d標準方法是,cost取值範圍是 1 ~ 65525
使用IEEE 802.1t標準方法時,cost取值範圍是 1 ~ 20000000 【默認】