生成樹協議
生成樹協議
冗餘—— 裝置 線路 閘道器 電源(USP)
在路由器中,路由表是由路由器演算法計算得來的,路由路徑越多、越複雜,則有越多備份路徑,並且路由演算法具有防環的特性。
線路冗餘——二層交換網路 二層橋接環路
導致問題:
1.廣播風暴(順時針、逆時針兩個方向包在死迴圈)
2.MAC地址表翻滾 ——在一臺交換機上,同一個MAC地址只能對映唯一的介面;但同一
介面可以對映多個不同的MAC地址;
3.同一資料幀的重複拷貝
4.以上3個條件最終導致裝置工作過載,導致重啟保護
在一個交換機網路內,邏輯的阻塞部分的埠,實現各個節點間僅存在一條路徑,沒有環路;
生成樹:在一個二層交換網路中,生成一棵樹型結構,邏輯的阻塞部分介面,使得從根到所有的節點僅存在唯一的路徑;當最佳路徑故障時,自動開啟部分阻塞埠,來實現線路備份的作用;
生成樹在生成過程中,應該儘量的生成一棵星型結構,且最短路徑樹;
存在演算法: 802.1D PVST PVST+(CISCO) RSTP(802.1w) MSTP(802.1S)
一.802.1D演算法:所有交換機間使用BPDU包來進行溝通
BPDU——橋協議資料單元 週期2s傳送一次-----起到保活機制 20s保活時間
BPDU跨層封裝到二層資料幀
配置BPDU—只有根網橋可以傳送,在交換網路初始狀態時,所有交換機均定義本地為根網橋,進行BPDU的傳送;使得網路中所有交換機均收到其他裝置的BPDU,之後基於資料中的引數進行比對,選舉出根網橋;再所有非根網橋不再發送BPDU,而是僅接收和轉發根網橋的BPDU;週期2s傳送,hold time 20s;
根網橋 —— 根埠—— 指定埠—— 非指定埠(阻塞埠)
根網橋(老大 一臺交換機 在一棵生成樹例項中有且僅有一個)
1.比較BPDU中的 BID=網橋優先順序+MAC地址
網橋優先順序 0–65535 預設為32768 越小越優
2.選舉規則:先比較網橋優先順序,數值越小越好
若優先順序相同,則比較MAC地址,數值越小越好
根埠(一個介面 在每臺非根網橋有且僅有一個 是該交換機離根網橋最近的介面
且肯定不會被阻塞 週期接收來自根的BPDU)
1.比較從根網橋發出BPDU後,通過該介面進入時的最小cost值
2.若進入時cost值相同,則比較介面上級(對端)裝置的BID值(MAC值),BID值小的
裝置對應的介面成為根埠
3.若對端的裝置的BID相同,則比較介面對端介面的PID(介面編號),越小越好
PID =埠ID = 介面優先順序+介面編號 優先順序 0–255 預設為128
4.若對端介面的PID相同,則比較本地介面的PID,越小越優
指定埠(一個介面 在每條存在STP的物理鏈路上 有且僅有一個 轉出根網段的BPDU)
1.比較從根網橋發出BPDU後,通過該介面轉出時cost值最小
2.比較介面所在裝置的BID,越小越優
3.若BID相同,比較本地的PID,越小越優
4.若PID也相同,則直接阻塞該埠
非指定埠(即阻塞埠 當上面所有的角色選舉完成後,剩餘所有的介面)
cost值:不同頻寬 存在不同cost
802.1d標準: 802.1T標準
10M = 100 1000M= 20000
100M=19 100M=200000
1000M=4
10000M=2
100000M=1
[SWA]stp pathcost-standard ? 預設華為使用802.1t標準
dot1d-1998 IEEE 802.1D-1998
dot1t IEEE 802.1T
legacy Legacy
生成協議中,至少應該將根網橋干涉到匯聚層處;
根網橋 根埠 指定埠 非指定埠
狀態:
Down 正常通電 通訊後切換到下一個狀態
偵聽(15s) 所有交換機收發BPDU,選舉所有角色
根埠與指定埠進入下一狀態,非指定埠直接進入阻塞狀態
學習(15s) 所有交換機接收記錄經過的資料幀源MAC地址,生成MAC表
轉發—— 根埠 指定埠
阻塞—— 非指定埠
802.1D演算法的收斂時間:
- 30s 初次收斂
- 結構變化
(1)存在直連檢測-------一臺交換機在結構突變後,僅存在一個阻塞介面可以接收來自根網橋的BPDU,那麼該介面將進入到正常的30s收斂階段----30s
(2)非直連檢測------ 50s
802.1D缺點:
收斂速度慢
鏈路利用率低
802.1配置命令:
[sw1]stp mode stp 修改為802.1d演算法,當下華為預設為MSTP;
[sw1]stp priority 4096 修改網橋優先順序
[sw1-GigabitEthernet0/0/1]stp cost ? 修改介面cost值
INTEGER<1-200000000> Port path cost
[sw1-GigabitEthernet0/0/1]stp port priority ? 修改介面優先順序
INTEGER<0-240> Port priority, in steps of 16
二、PVST cisco私有 基於vlan的生成樹協議
在每個vlan內,存在一棵樹,每個樹的工作原理同802.1d一致;不同vlan的BPDU區別在於優先順序;
優先順序=4096倍數+vlan id 人為僅可修改4096倍數備份,且只能修改為4096的整倍
僅支援 trunk幹道封裝為ISL(cisco私有封裝)
三、PVST + 在PVST的基礎,相容802.1q的trunk封裝;且設計了部分的加速;
埠加速(進入層連線使用者的介面) 上行鏈路加速-針對直連檢測
骨幹加速—針對次優BPDU
缺點:1、收斂慢(加速不徹底) 2、樹多(僅cisco存在單獨的晶片,友商無法負荷)
四、快速生成樹
cisco的RSTP — 基於vlan的快速生成樹 - 一個vlan一棵樹 pvst+的升級
公有RSTP(802.1w) — 整個交換網路一棵樹 802.1d的升級
快速的原理:
取消了計時器,而是在一個狀態工作完成後,直接進入下一狀態;
分段式同步,兩臺裝置間逐級收斂;使用請求和同意標記;依賴標記位的第1和第6位
BPDU的保活為6s;hello time 2s;
將埠加速(邊緣介面)、上行鏈路加速、骨幹加速集成了
相容802.1d和PVST,但802.1d和PVST沒有使用標記位中的第1-6位,故不能快速收斂;因此如果網路中有一臺裝置不支援快速收斂,那麼其他開啟快速收斂的裝置也不能快速;
當tcn訊息出現時,不需要等待根網橋的BPDU,就可以重新整理本地的cam表;
切記:介面預設為半雙工時,即便允許RSTP,依然基於慢速的802.1D演算法來收斂;
[sw1]stp mode rstp
邊緣介面—用於連線PC的介面,一旦被設定為邊緣介面;將不再進行BPDU的傳送,且不進行STP的收斂,直接為轉發狀態; 但若該介面收到了對端的BPDU,將失去邊緣特性,重新正常收斂;
[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet0/0/1]stp edged-port enable
[sw1]stp priority ? 修改網橋優先順序
INTEGER<0-61440> Bridge priority, in steps of 4096
[sw1]stp root ? 快速定義根網橋角色
primary Primary root switch
secondary Secondary root switch
[sw1-GigabitEthernet0/0/1]stp port priority ? 修改介面優先順序
INTEGER<0-240> Port priority, in steps of 16
[sw1-GigabitEthernet0/0/1]stp cost ? 修改介面cost
INTEGER<1-200000000> Port path cost
五、MSTP/MST/802.1S 華為裝置預設使用該協議
繼承了快速生成樹的基礎; 將多個vlan放置於一個組內,基於每個組一棵生成樹;
不同組間的BPDU中優先順序= 4096倍數+組號
[r1]stp mode mstp
預設存在組0,且所有vlan預設處於該組;優先順序= 32768+0
分組
[sw1]stp enable
[sw1]stp region-configuration
[sw1-mst-region]region-name a 所有裝置應在一個組內
[sw1-mst-region]instance 1 vlan 1 to 5
[sw1-mst-region]instance 2 vlan 6 to 10
[sw1-mst-region]active region-configuration 啟用當前配置(必須配置該指令)
切記:若將建立某個組,但該組內的vlan,在本交換機上沒有建立,同時沒有為該vlan服務的介面;該組將沒有任何資訊;整個交換網路中所有裝置的分組資訊必須完全一致;
定義本地為組1 的主根,組2 的備份根
stp instance 1 root primary 優先順序修改為0
stp instance 2 root secondary 優先順序修改為4096
[sw1]stp instance 1 priority ?
INTEGER<0-61440> Bridge priority, in steps of 4096
[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet0/0/1]stp instance 1 cost ?
INTEGER<1-200000000> Port path cost
[sw1-GigabitEthernet0/0/1]stp instance 1 port priority ?
INTEGER<0-240> Port priority, in steps of 16