環路解決方案
1 單點故障和方案
1.1 端口協商參數
雙工模式,duplex
半雙工模式,half-dulex:同一時刻,只能收或者發,信號的雙向傳輸
全雙工模式,full-duplex:同一時刻,可以同時收發,信號的單向傳輸
速率,speed
***默認是auto模式,建議不同類型的設備之間進行互聯鏈路時,手動指定速率和雙工
1.2 單點故障和環路問題
傳統交換網絡產生的問題:
單點故障
解決方案:
增加冗餘鏈路
增加冗餘設備
隨之而來的問題:
數據轉發環路
產生環路的數據,會不斷的在網絡中進行傳輸,從而消耗網絡中的鏈路資源和設備資源
解決方案:
在交換機上運行STP協議
目標:
在LAN中,保證任何兩個通信終端之間永遠只有一個
最短的、無環的轉發路徑
2 STP原理與實現
***STP:生成樹協議(802.1d)
2.1 STP的作用
STP,Spanning TreeProtocol:生成樹協議
***默認情況下,交換機爲每個VLAN打開STP樹協議
【命令】Switch(config)#no spanning-tree vlan *** #關閉STP樹協議
在網絡中存在冗餘鏈路的情況下,實現環路的防護
STP是防止交換機之間產生環路問題的“樹協議”
***活動鏈路和備份鏈路在出現故障時,可以自動切換
2.2 STP的實現
2.2.1 BPDU介紹
BPDU,Bridge Protocol DataUnit #橋接協議數據單元
1、BPDU是運行STP的交換機之間交換的消息幀。
2、包含了STP所需的路徑的優先級信息
按順序進行比較:
1、Root ID #表示根交換機是誰
2、Cost #表示發送該BPDU的交換機到達根交換機的距離
3、BID #表示發送該BPDU的交換機的名字
組成:優先級(默認是32768)+基MAC
4、Port ID #表示發送方交換機是哪個端口發送出來的
組成:端口優先級(默認是128)+端口號(接收的端口號)
***值越小越好
2.2.2 不同VLAN的BPDU
交換機如何區分不同VLAN的BPDU:
BPDU中的BID:優先級+MAC地址
優先級爲2字節(16bit):其中分爲4bit+12bit
其中12bit代表交換機中的VLAN號,有2^12=4096個
其中4bit真正表示了BID的優先級,即2^4,範圍0~15
由此得出:前面的4bit纔是真正表示了優先級
因此優先級0~61440,默認是32768,必須是4096的倍數,優先級只能有16個
但是在表示優先級數值的時候,後面的12bit,都必須算上,同時必須是0
即,每個交換機的STP的優先級都是2^12的0-15的倍數,即4096的倍數
2.2.3 BPDU的分類
配置BPDU
拓撲變更通告(TCN)BPDU
2.3 STP的分類
PVST,Per-vlan STP,在VLAN中存在的STP,收連速度比較慢
RSTP,快速生成樹協議
MSTP,多生成樹協議
STP—>PVST—>RSTP—>MSTP
2.4 STP工作過程
【命令】Switch#Show spanning-tree #查看樹協議表
2.4.1 確定交換機的角色
根交換機
非根交換機
判斷角色的原則:比較每個交換機的BID,Brigde ID(橋ID),越小越好
組成:優先級+MAC
優先級:默認是32768,2字節
MAC:交換機的主板MAC(基MAC地址),6字節
【命令】Switch#show version #查看交換機的基MAC地址(BaseEthernet MAC Address)
2.4.2 確定端口角色
根端口(RP):每一個非根交換機,都有一個,且只有一個,距離根交換機最近(cost值)的端口
指定端口(DP):每一個“衝突域”中都存在一個距離根交換機最近(cost值)的口,根交換機上的口都是指定端口
阻塞端口(Altn):其他所有端口,備份鏈路
***衝突域:交換機上的每個端口都有一個衝突域
***在分析時,先確定根端口,在選指定端口
根端口(RP):子節點連接父節點的端口
指定端口(DP):父節點連接子節點的端口
阻塞端口:消除網絡環路
2.4.3 確定端口狀態
Disable(關閉) #相當於shutdown,此時端口不能用
Listening(偵聽) #該極端偵聽的是BPDU,用於確定端口角色
Learning(學習) #該狀態學習的是MAC地址,形成MAC地址表
Forwarding(轉發) #即端口的最終轉發狀態
根端口、指定端口
Block(阻塞) #此時的端口是不可以發送數據的,只接收BPDU
非指定端口
2.5 Cost值
如何表示“距離”
在STP中,通過cost值表示一個路徑的距離
對於某些鏈路,均有默認的cost值
10M=cost 100
100M=cost 19
1G=cost 4
10G=cost 2
2.6 修改交換機的STP優先級
***通過修改交換機的STP優先級重新確定VLAN的根交換機
【命令】Switch(config)#spanning-tree vlan 1 priority 61440 #修改根交換機SW1的BID優先級爲61440
***導致的結果,此時的網絡中的“根交換機”由SW1變成了其他VLAN
2.7 STP的3種計時器
Hello時間
轉發延遲(Forward delay)
最大老化時間
3 拓撲圖解析
1、畫圖說明“傳統網絡中的單點故障”
2、畫圖說明“解決方案(增加冗餘鏈路和設備)”
3、畫圖說明“冗餘鏈路和設備,帶來的環路問題”
詳細說明,環路是如何形成的
如何選舉交換機角色
如何判定端口角色
如何判定端口最終狀態
根據四臺交換機的BID(優先級+基MAC)確定
優先級默認爲32768,MAC地址00D0.5841.6B61最小,故SW2爲根交換機
2、確定端口角色
根交換機下的端口都是DP
確定非根交換機的RP:
比較:Cost值—>trunk鏈路上交換機的BID—>trunk鏈路上交換機端口的PortID
確定非根交換機的DP
比較:Cost值—> trunk鏈路上交換機的BID—>trunk鏈路上交換機端口的PortID
***通常,兩臺交換機之間有兩條trunk鏈路時才需要比較PortID
5、更改SW2在VLAN1中的STP優先級爲0
從而確保,根交換機由SW1轉移到SW2
隨後驗證,確認每個交換機的角色、每個端口的角色和狀態
4 配置命令總結
特權模式
Switch#Showspanning-tree #查看樹協議表
Switch#Showspanning-tree summary #查看樹協議表概要
Switch#showversion #查看交換機的基MAC地址(BaseEthernet MAC Address)
全局配置模式
Switch(config)#nospanning-tree vlan *** #關閉STP樹協議
Switch(config)#spanning-treevlan 1 priority 61440 #修改根交換機SW1的BID優先級爲61440