生成樹協定:
企業網三層架構—》備援----》線路備援—》二層橋接環路
導緻問題:
1、 廣播風暴
2、 MAC位址表翻滾 —在一台交換機上,同一個MAC位址隻能映射唯一的接口;但同一個接口可以映射多個不同的MAC位址;
3、 同一資料幀的重複拷貝
4、 以上3個條件最終導緻裝置工作過載,導緻重新開機保護
生成樹協定: spanning tree STP ,所有的生成樹協定都在通過發送比較資訊進行選舉, 找到環路中應該被關閉的接口(接口阻塞)。
發送的比較的資訊稱為BPDU,網橋協定資料單元。
生成樹的類型:
STP(标準生成樹,又稱為802.1D)
RSTP(快速生成樹,又稱為802.1W)
MSTP(多生成樹協定,又稱為802.1S)
一、802.1D
一個交換網絡内僅存在一棵生成樹執行個體;
交換機間使用BPDU—橋協定資料單元 – 交換機間溝通互動收發的資料
配置BPDU—隻有根網橋可以發送,在交換網絡初始狀态時,所有交換機均定義本地為根網橋,進行BPDU的發送;使得網絡中所有交換機均收到其他裝置的BPDU,之後基于資料中的參數進行比對,選舉出根網橋;再所有非根網橋不再發送BPDU,而是僅接收和轉發根網橋的BPDU;周期2s發送,hold time 20s;
TCN—拓撲變更消息(也是BPDU): 本地交換機鍊路故障後,STP重新收斂,為了快速重新整理全網所有交換機的MAC表,将向本地所有STP接口發送TCN(标記位中的TCN位置1),鄰居交換機收到TCN後,先标記為ACK位為回複,用于可靠傳輸消息;之後将TCN逐級轉發到根網橋處,由根網橋回複TC消息來逐級回複到所有交換機;使所有交換機臨時将MAC表的老化時間修改為15s(預設的,轉發延時)
選舉— 根網橋 根端口 指定端口 非指定端口(阻塞端口)
【1】 根網橋 – 在一棵生成樹執行個體中,有且僅有一台交換機為root;
BPDU中的 橋ID來決定
橋ID= 網橋優先級(0-65535公有) 預設32768 + MAC位址(隻有存在svi接口的交換機才擁有mac位址,若存在多個mac選數值最小)
根網橋的選舉 先比較優先級,小優; 若優先級相同,比較mac,數值小優;
【2】 根端口—在每台非根網橋上,有且僅有一個接口;本地離根網橋最近的接口(最短、星型),接收來自根網橋的BPDU,轉發使用者的流量(該接口不阻塞)
**規則:**
1、比較從根網橋發出後,通過該接口進入時最小的cost值;
2、入向cost值相同,比較該接口對端裝置的BID,小優
3、對端BID也相同,比較該接口對端裝置的接口的PID;先優先級小,若優先級一緻,編号小
4、連對端PID也相同,比較本地PID,小優;
PID=端口ID 接口優先級(0-240,步長16,預設128) 接口編号
【3】 指定端口,在每一段存在STP的實體鍊路上,有且僅有一個;轉發來自根網橋的BPDU,同時可以轉發使用者流量(不阻塞);預設根網橋上所有接口為指定端口;
1、比較從根網橋發出後,通過該接口進入這段鍊路時的cost值最小(出向)
2、若出向cost值相同,必須本地的BID,小優;
3、本地BID相同,比較本地的PID;
4、本地PID,相同,直接阻塞該端口;
【4】非指定端口(阻塞端口)當以上所有角色全部選舉完成後,剩餘沒有任何角色的接口為非指定;
該接口邏輯阻塞,實際可以接收到資訊,但不轉發;
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:沒有BPDU收發,一旦可以進行BPDU收發進入下一狀态
偵聽:強制15s;所有交換機進行BPDU收發,選舉所有角色;接口角色為非指定端口直接進入阻塞狀态;
若為指定端口和根端口進入下一狀态;
學習:強制15s; 指定端口和根端口學習所有接口連接配接裝置的MAC位址,生成MAC表;之後進入下一狀
态;
轉發:指端端口和根端口進入,可以轉發使用者封包;
阻塞:邏輯阻塞;
注:隻有到接口進入到轉發狀态後,才能為使用者轉發資料封包,之前的30s不能轉發任何資料;
收斂時間:
初次收斂—30s = 15偵聽+15s學習
結構變化:
存在直連檢測:本地存在阻塞端口,若其他端口斷開,該阻塞端口馬上進入15是偵聽(選舉);結果若為
啟用,那麼将再進入15s學習—總30s
沒有直連檢測:本地不存在阻塞端口,若某個端口斷開,将發送次優BPDU(以本地為根)給其他鄰居交換機,其他交換機無視該資料,進行20s hold time計時,到時時阻塞接口進入15s偵聽,15s學習=總50s
802.1D 缺點:
1、收斂慢
2、鍊路使用率低
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
快速生成樹
cisco的RSTP — 基于vlan的快速生成樹 - 一個vlan一棵樹 pvst+的更新
公有RSTP(802.1w) — 整個交換網絡一棵樹 802.1d的更新
快速的原理:
1、 取消了計時器,而是在一個狀态工作完成後,直接進入下一狀态;
2、 分段式同步,兩台裝置間逐級收斂;使用請求和同意标記;依賴标記位的第1和第6位
3、 BPDU的保活為6s;hello time 2s;
4、 将端口加速(邊緣接口)、上行鍊路加速、骨幹加速內建了
5、 相容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
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