STP
STP的終極目標:
從網路的任何地方,都是去往跟交換器最短的無環的資料轉送路徑
1 同一個網路:
面臨的第一個問題:單點故障
解決方案: 提供網路冗餘/備份
1設備的備份
2鏈路的備份
所帶來的新問題:
二層數據轉送環路
新的解決方案:
STP/RSTP-spanning-tree protpocol【生成樹協定】
凸顯出另一個問題:利用率
解決方案:MSTP【產生實例樹協議】
共有標準協定:
STP - 802.1d ,慢;
RSTP - 802.1w , 快了一點;
MSTP - 802.1s
為了在實現鏈路備份的同時,還可以實現資料轉發的負載平衡,提高設備的使用率。
解決二層資料迴路的協定
STP協定運作原理/流程:
1 選舉交換器角色:
根交換器(網橋):
整個交換器網路中有且僅一個【跟BID小的值優先】
非根交換器:
除了根交換器
2 選舉端口角色:
根端口:
任何一個非根交換機上,有且只有一個,
距離根交換器最近(cost)的連接埠
指定連接埠:
任何一個網段中且僅有一個,
距離根交換器最近的(cost)的連接埠
非指定連接埠:
剩下的所有端口,都是非指定的
3 確定連接埠狀態:
down
listening: 偵聽
【偵聽的BPDU,為了盡量的收集全所有的BPDU ,進行比較】
learning : 學習
【此階段學習MAC位址表】
forwarding:轉送
【根連接埠和製定連接埠的最終狀態】
blocking :阻塞
【非指定連接埠對應的最終連接埠】
STP協定的所有功能都是透過BPDU封包來實作
BPDU -bridge protocol data unit 【橋協定資料單元】
BPDU報文的基本組成:
root-id: 表示的是根交換器的ID
cost: 表示的是發送該BPDU的交換器到達根交換器的距離
bridge-id:表示的是發送該BPDU的交換器的名稱
port-id: 表示的是發送該BPDU的交換器的出埠
由兩部分組成:
port-priority port-number
【埠優先權埠號】
連接埠的優先權:1個位元組,預設值為128
連接埠號碼; 1個位元組,是交換器上的連接埠的號碼
例如:交換器的gi0/0/23 的port-id表示是: 128.23
我們可以在選舉「設備角色」和「連接埠角色」時候
基於「交換器角色」和「連接埠角色」的定義
對BPDU 封包中的4個字段,從上向下依序進行比較。
首先比較的是root-id ;
如果不相同,則選擇最小的為Root-switch;
如果相同,則比較cost ;如果不相同,則選擇最小的cost ;
如果相同,則比較bridge-id , 如果不相同,則選擇最小的;
如果相同,則比較port-id , 如果不相同,則選擇最小的;
hello -2秒
【根交換器發送BPDU 的時間週期,兩秒一次】
forward-delay=15秒轉送延遲
【表示在listening 和learning分別停留的時間】
max-age=20 秒最大生命時間20 秒
【每透過一個交換機減一秒,最高20秒】
配置命令以及解释: [huawei]stp priority
【修改一個連接埠上的STP 的cost 】
華為交換器上,1000M連接埠的cost預設是20000 ;
【可以查看到交換器運作的STP 的模式,以及自己和根交換器的BID 資訊】
[huawei]display stp brief
【可以查看到交換器上的每個啟用了STP 的連接埠的角色與狀態】
【可以查看該介面的cost ,以及發送和接收BPDU的情況】
[A]stp region-configuration
【stp域的設定】
[A-mst-region]region-name 1
【給域取名字】
[A-mst-region]instance 1 vlan 10 20
【建立實例1 把vlan 10 20 加入】
[A-mst-region]active region-configuration
【啟動網域設定】
[A]stp instance 2 priority 4096
【給實例2 設定優先權】
[A]display stp instance 1
【檢視實例1的stp是否優先權生效】
以上是二層STP的原理是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!