協議
原理
STP的作用是通過阻斷冗餘鍊路,使一個有回路的橋接網絡修剪成一個無回路的樹形拓撲結構
算法
STP将一個環形網絡生成無環拓樸的步驟:
選擇根橋(root Bridge)
選擇根端口(Root Ports)
選擇指定端口(Designated Ports)
選擇根網橋的依據
網橋ID(BID)
網橋ID是唯一的,交換機之間選擇BID值最小的交換機作為網絡中的根網橋
選擇根網橋舉例
根據網橋ID選擇根網橋
選擇根端口的依據
在非根網橋上選擇一個到根網橋最近的端口作為根端口
選擇根端口的依據是:
根路徑成本最低
直連(上遊)的網橋ID最小
端口(上遊)ID最小
根路徑成本
根路徑成本(開銷)是網橋到根網橋的路徑上所有鍊路的成本之和,默認10M/100M自适應的路徑開銷為200000
選擇根端口舉例
在非根橋上,選擇一個根端口(RP)
選擇指定端口的依據
在每個網段上,選擇1個指定端口
根橋上的端口全是指定端口
非根橋上的指定端口:
根路徑成本最低
端口所在的網橋的ID值較小
端口ID值較小
選擇指定端口舉例
在每個網段選擇1個指定端口(DP)
STP計算結果
經過STP計算,最終的邏輯結構為無環拓樸
STP舉例
經過STP計算後的邏輯拓樸
BPDU(橋協議數據單元)
交換機之間使用BPDU來交換STP信息
BPDU
Bridge Protocol Data Unit-橋協議數據單元
使用組播發送BPDU,組播地址為:
01-80-c2-00-00-00
BPDU分為2種類型:
配置BPDU-用于生成樹計算
拓樸變更通告(TCN)BPDU-用于通告網絡拓樸的變化
BPDU包含的關鍵字段
STP使用BPDU選擇根網橋2-1
交換機啟動時,假定自己是根網橋,在向外發送的BPDU中,根網橋ID字段填寫自己的網橋ID
STP使用BPDU選擇根網橋2-2
當接收到其他交換機發出的BPDU後,比較網橋ID,選擇較小的添加到根網橋ID中
STP使用BPDU計算根路徑成本2-1
根網橋發送根路徑成本為0的BPDU
STP使用BPDU計算根路徑成本2-2
其他交換機接收到根網橋的BPDU後,在根路徑成本上添加接收接口的路徑成本,然後轉發
生成樹端口的狀态
生成樹計時器
hello-timer:2s root每2s産生BPDU
forwarding-timer:15s stp選舉時間
max-age:20s 儲存BPDU的時間,spanning-tree發生故障,20s後原blocking狀态->learning狀态
STP狀态機
在STP選舉過程中,端口是不能轉發用戶數據的。端口一開始處于阻塞狀态,這個狀态隻能接收BPDU;
一個接口20秒沒收到BPDU,也就是到了最大時間,端口會進入偵聽狀态,這時接口可以接收BPDU,并開始發送BPDU;
發送15秒的BPDU,接口将會為轉發用戶數據做準備,也開始學習MAC地址,這個狀态叫學習狀态;
再經過15秒的學習後,端口進入轉發狀态,轉發狀态是一個正常的接口。
spanning-tree設置
開啟STP:
switchA(Config)#spanning-tree
MSTP is starting now, please wait...........
MSTP is enabled successfully.
spanning-tree設置
查看配置
SW1#sh spanning-tree
-- MSTP Bridge Config Info --
Standard : IEEE 802.1s
Bridge MAC : 00:03:0f:01:0e:30
Bridge Times : Max Age 20, Hello Time 2, Forward Delay 15
Force Version: 3
########################### Instance 0 ###########################
Self Bridge Id : 32768 - 00:03:0f:01:0e:30
Root Id : 16384.00:03:0f:01:0f:52
Ext.RootPathCost : 200000
Region Root Id : this switch
Int.RootPathCost : 0
Root Port ID : 128.1
Current port list in Instance 0:
Ethernet0/0/1 Ethernet0/0/2 (Total 2)
PortName ID ExtRPC IntRPC State Role DsgBridge DsgPort
-------------- ------- --------- --------- --- ---- ------------------ -------
Ethernet0/0/1 128.001 0 0 FWD ROOT 16384.00030f010f52 128.007
Ethernet0/0/2 128.002 0 0 BLK ALTR 16384.00030f010f52 128.011
MSTP
用少量資源在網絡中實現多個生成樹
在多條Trunk鍊路上實現VLAN級負載均衡
MSTP配置
DCS (Config)# spanning-tree mst configuration
DCS (Config-Mstp-Region)#name mstp
DCS (Config-Mstp-Region)#instance 1 vlan 10
DCS (Config-Mstp-Region)#instance 2 vlan 20
DCS (Config-Mstp-Region)#exit
DCS (Config)# spanning-tree
MSTP is starting now, please wait...........
MSTP is enabled successfully.
改變生成樹的形态
改變交換機優先級
switchB(Config)#spanning-tree mst 0 priority 28672
改變鍊路開銷
switchA(config-Ethernet0/0/2 )#spanning-tree mst 1 cost 300000
改變端口優先級
switchA(Config-Ethernet0/0/2)#spanning-tree mst 0 port-priority 144
雲端協議
雲端采用的應用虛拟化技術,擁有豐富資源,其專有協議就是stp,網頁采取stp://調用雲端客戶端下載,所有雲端客戶端版本均可采用stp調用進行P2P下載。