STP
1.協議簡述
STP(Spanning Tree Protoco),可應用於計算機網絡中樹形拓撲結構建立,主要作用是防止根網橋網絡中的冗餘鏈路形成環路工作。但某些特定因素會導致STP失敗,要排除故障可能非常困難,這取決於網絡設計。生成樹協議適合所有廠商的網絡設備,在配置上和體現功能強度上有所差別,但是在原理和應用效果是一致的。 ---------From.百度百科
要了解STP生成樹協議,首先要知道生成樹網絡中的信息溝通問題-BPDU
2.BPDU
交換機之間溝通是使用數據幀,網橋之間溝通是通過BPDU(Bridge Protocol Data Unit)橋協議數據單元,跨層封裝到二層,
BPDU的數據幀默認不屬於任何一個VLAN,故在存在VLAN的設備上,該數據幀基於Native VLAN發送。
-
配置BPDU:
拓撲收斂完成之後,僅根網橋週期(2S)發送;在沒有根網橋時,所有設備僅發送BPDU;—用於選舉根網橋、發佈拓撲信息、週期保活鏈路 -
TCN BPDU(拓撲變更信息):
TCN包中不包含任何具體信息,不會導致網絡重新收斂當一臺交換機的阻塞端口鏈路被斷開,那麼將標記爲中7位 置爲1,標識拓撲已經改變,該BPDU將發送到根網橋處,根網橋使用標記位 第0位,來確認;
若沒有收到ACK,那麼2S週期發送TCN;根網橋確認之後,將使用BPDU告訴所有的非根網橋,刷新CAM表,默認CAM的保存週期爲300s
-
次優BPDU
當非根網橋上的根端口斷開,此時接收不到根網橋的BPDU了,同時本地斷開的不爲阻塞端口,那麼本地會將自己定義爲根網橋,發出BPDU,由於該BPDU次於根網橋,所以稱爲次優BPDU次優BPDU,包含本地拓撲信息,同時也爲配置BPDU,但不爲根網橋發出的BPDU
3.STP生成樹協議發展
所有的生成樹協議都基於IEEE 802.1D,所以我們詳細的介紹802.1D,之後的生成樹PVST、PVST+、RSTP/802.1W、802.1S/MSTP都是對之前的優化
(1).IEEE 802.1D
802.1D在計算過程中,選出4中角色
-
根網橋(樹根、核心)
在一顆生成樹實例中有且僅有1臺,沒有根網橋之前,所有的交換機默認本地爲根網橋,發出BPDU進行根網橋的選舉根網橋的選舉:
比較BPDU中的BID(橋ID) = 網橋優先級 + MAC地址 越小越優先比較所有設備的優先級,0-65535 默認爲32768,越小越優
優先級相同的情況下比較MAC地址,數值小優
CISCO用Extend System ID來標識VLAN信息 -
根端口
在每臺非根網橋上有且僅有一個,本地離根網橋最近的接口,該接口用於接收來自根的BPDU,同時該接口也用於收發用戶的數據;根端口的選舉:
PID = 端口ID = 接口優先級 0-255 默認爲 128 +接口編號
1.入方向最小COST值
2.比較該接口對端(上級)的設備的BID,小優
3.比較該接口對端(上級)設備的PID,小優
4.比較本地PID -
指定端口
在每根網線上有且僅有一個,用於轉發來自根的BPDU,同時轉發用戶流量,根端口的對端肯定是指定端口,根網橋上所有接口均爲指定端口
1.比較從該接口發出BPDU的COST值
2.比較本地BID,小優
3.比較本地PID,小優
4.直接阻塞端口 -
非指定端口(阻塞端口)
當以上端口角色全部完成,剩餘的所有的存在的端口爲非指定端口,邏輯阻塞,可以接收,不能轉發COST值:
10M = 100
100M = 19
1000M = 4
10000M = 2
> 10000M = 1
實例分析
接口狀態
-
Down:接口指示燈未亮起,網線剛剛連接,不能收發BPDU
-
Listening(偵聽):接口指示燈爲橙色,進行BPDU收發,選舉各種角色,時長爲15S
當指定端口和根端口進入到下一個狀態,非指定端口進入阻塞狀態,指示燈一致保持爲橙色
-
Learning(學習):接口指示燈爲橙色,根端口和指定端口學習各個接口下放連接PC的MAC地址;生成MAC表;15S時長結束後進入下一個狀態
-
Forwarding(轉發):接口指示燈爲綠色,收斂完成,可以正常轉發用戶的數據,在30S內接口是轉發用戶數據;
-
Blocking(阻塞狀態):非指定端口在偵聽完成之後,進入的狀態,指示燈一直保持爲橙色
收斂時間
- 初次收斂爲30S = listening + learning
- 結構突變時
- 存在直連檢測時:當本地根端口斷開,且本地只剩下阻塞端口能接受到BPDU,該接口直接進入偵聽和學習狀態,30S轉換爲根端口
- 當不存在直連檢測時:阻塞端口需要50S轉換爲根端口 = 20S hold time + 30S 收斂
802.1D優缺點分析
- 收斂速度慢,所有的VLAN一顆樹,當交換機發生拓撲變更時接口跳轉50S,所有的接口都要參與生成樹的建立
- 鏈路利用率低 備份路勁在最佳路徑存在時一直閒置;
(2).PVST
CISCO私有,基於vlan的生成樹
原理:
-
在每個vlan中存在一顆樹,通常將不同生成樹的根放置於不同匯聚層位置,來實現鏈路利用率的提高.
-
每個vlan發出一個BPDU;各個vlan進行各自的802.1D計算
-
爲了區分不同的vlan發出的BPDU,網橋優先級(4096的倍數)+vlanid
優缺點分析
- 收斂慢
- cisco私有
- 樹多,帶寬和設備硬件資源均佔用(cisco設備存在一個專用的芯片來進行生成樹的運行)
- 僅支持接口封裝爲ISL的Trunk幹道
(3).PVST+
在PVST的基礎上進行升級,目前大多數cisco設備默認使用的STP協議
1.支持802.1q,trunk幹道封裝模式
2.可以做部分加速
-
修改優先級
Switch(config)#spanning-tree vlan 2 priority ? <0-61440> bridge priority in increments of 4096
-
可直接設備備份(secondary)和主根(primary)
Switch(config)#spanning-tree vlan 2 root ? primary Configure this switch as primary root for this spanning tree secondary Configure switch as secondary root 該命令不一定完全生效 主根命令是本地優先級下調2個4096 備份根命令是本地優先級下調1個4096
-
可修改接口優先級或者COST值
修改接口優先級: Switch(config-if)#spanning-tree vlan 2 port-priority ? <0-240> port priority in increments of 16 修改COST值: CORE(config-if)#spanning-tree vlan 2 cost ? <1-200000000> Change an interface's per VLAN spanning tree path cost
-
端口加速
連接PC的接口,開啓端口加速後;一旦連線,直接爲轉發狀態; Switch(config)#interface f0/1 Switch(config-if)#spanning-tree portfast
-
全局開啓端口加速
全局下開啓端口加速,對Trunk幹道不生效 Switch(config)#spanning-tree portfast default
-
上行鏈路加速
只能在接入層設備配置
配置之後,該交換機的網橋優先級和接口COST值會加大,意義在於存在阻塞端口的設備纔會存在直連檢測,而阻塞端口最好在接入層設備上;故加大優先級和COST值,在於放棄成爲根網橋,儘量成爲阻塞端口Switch(config)#spanning-tree uplinkfast
-
骨幹加速
當阻塞端口接收到次優BPDU,那麼該接口取消20s hold time,直接進入30s收斂,所有設備均可配置Switch(config)#spanning-tree backbonefast
優缺點分析
- 樹多
- cisco私有
- 加速不夠徹底
(4).快速生成樹(RSTP/802.1W)
不再依賴計時器 而是一個狀態的工作完成之後,直接進入下一個狀態
RSTP:爲cisco私有的快速生成樹協議;RSTP可以兼容802.1W
802.1W:爲非CISCO產品大多數默認的協議
- 802.1W是對802.1D的提速,依然整個交換網絡一棵樹
- RSTP爲CISCO的快速生成樹,是對PVST+的提速,每個VLAN一棵樹
這兩種協議均爲快速收斂,1-2s完成收斂,提速的原理一致,區別在於CISCO有基於VLAN的運算芯片
RSTP的狀態規範把原來的5種狀態縮減爲3種,根據端口是否轉發用戶流量和學習MAC地址來劃分:
- 如果不轉發用戶流量,也不學習MAC地址,那麼端口的狀態就是Discarding狀態。
- 如果不轉發用戶流量但是學習MAC地址,那麼端口的狀態就是Learning狀態
- 如果既轉發用戶流量又學習MAC地址,那麼端口就爲Forwarding狀態
在PacketTracer7.0中,存在兩種生成樹PVST/PVST+,和RSTP
干涉選舉同PVST+一致
Switch(config)#spanning-tree mode ?
pvst Per-Vlan spanning tree mode
rapid-pvst Per-Vlan rapid spanning tree mode
注:默認接口爲半雙工(10M)時,接口類型爲共享,全雙工接口爲點到點類型;
在共享接口下依然運行慢速生成,只有點到點接口可以快速收斂
Switch(config-if)#spanning-tree link-type ?
point-to-point Consider the interface as point-to-point
shared Consider the interface as shared
優缺點分析
- RSTP-樹太多
- 802.1W-一個數->鏈路利用率低
(5).分組式生成樹(MSTP/802.1S)
快速生成樹協議,將多個VLAN放置於同一個組內,一個組一顆樹
使用該協議時,整個網絡所有設備必須均運行MSTP,同時所有設備的分組設置必須完全一致;
MSTP/802.1S
原理
將多個VLAN放置在一個組裏,爲每個組生成一棵樹,樹型算法爲802.1W;將不同組的根網橋放置於不同的匯聚層設備處,可以實現流量的分載,提高鏈路利用率;
不同組發出的BPDU,使用BPDU,使用網橋優先級區分,優先級+組ID
vlan分組:
Switch(config)#spanning-tree mst configuration
Switch(config-mst)#instance 1 vlan 1-50 將vlan1-50劃 分到組1
Switch(config-mst)#instance 2 vlan 51-100 將vlan51-100劃分到組2
定義根網橋,備份根網橋的位置:
Switch(config)#spanning-tree mst 1 root primary 降2個4096
Switch(config)#spanning-tree mst 2 root secondary 降1個4096
修改參選接口的參數:
Switch(config)#interface e0/0
Switch(config-if)#spanning-tree mst 1 ?
cost Change the interface spanning tree path cost for an instance
port-priority Change the spanning tree port priority for an instance