今日目標
- STP協議概述
- STP工作原理
- 選舉根端口和指定端口
- BPDU
- MSTP工作原理及配置
- MSTP負載均衡
1 STP協議概述
1.1 環路的危害
單點故障
- PC之間的互通鏈路僅僅存在1個
任何一條鏈路出現問題,PC之間都會無法通信
解決方案
- 提高網絡可靠性
增加冗余/備份鏈路
產生新的問題
- 增加備份鏈路后交換網絡上產生二層環路
PC1訪問PC2,PC1知道PC2的IP地址,但是不知識PC2的MAC地址
PC1會發送ARP廣播(目的MAC為全FFFF數據幀)
環路導致廣播風暴
- 環路導致廣播風暴
交換機收到廣播幀后,會從除接收端口外的其他所有接口廣播
廣播幀在交換機之間一直循環下去,眾多的廣播幀最終形成廣播風暴
廣播風暴導致網絡不可用
- 廣播風暴導致網絡癱瘓
廣播幀增多形成廣播風暴,從而導致鏈路擁塞,并極大消耗設備資源,最終導致網絡擁塞不可用,還會導致設備宕機不可用
1.2 消除環路:STP協議
STP概述
- STP:生成樹協議(IEEE802.1d)
STP:Spanning Tree Protocol(生成樹協議)
通過阻塞某個接口在邏輯上斷開環路,防止廣播風暴,破除二層環路
當主線路故障,阻塞接口被激活,主線路恢復,備份線路再次被阻塞
- STP:生成樹協議
交換機之間通過周期性的發送BPDU報文,來實現STP的功能 - BPDU:橋協議數據單元
Bridge Protocol Data Unit一橋協議數據單元,即STP協議的報文也稱二層的“心跳報文”,周期性發送,默認每2秒發送1次組播發送,組播MAC地址為:01-80-C2-00-00-00
2 STP工作原理
STP工作原理
步驟1:選舉根交換機
步驟2:在每個非根交換機上選舉1個根端口
步驟3:在每條鏈路(每個網段)上選舉1個指定端口
步驟4:阻塞非根端口、非指定端口
2.1 選舉根交換機
選舉根交換機
- 根網橋(根交換機)
STP引入了根橋(Root Bridge)概念
在一個STP網絡中,根橋只有一個
STP初始化時,所有的交換機都認為自己是“根交換機”
交換機之間通過比較BID的來確定根交換機,BD值小的為根交換機 - 網橋ID(BID)
STP協議為交換機取的名字,用于在交換網絡中唯一標識該設備
BID是優先級與MAC地址組成,BID值越小越優先
B1D優先級取值范圍:0~61440、默認值是:32768
BID優先級步長值:4096(0或4096的倍數)
- 通常根據BID優先級,選擇根交換機
BD值小的為根交換機,首先比較優先級,優先級小的為根交換機
如果優先級一致,則MAC地址小的為根交換機
STP配置命令
- 啟動或關閉交換機的STP功能
默認情況下交換機的STP功能處于開啟狀態
[Huawei]stp {enable disable}
- 選擇交換機的STP運行模式
默認情況下交換機的STP運行模式為MSTP
[Huawei]stp mode (stp|rstp mstp}
- 修改交換機的STP優先級,設置根交換機
[Huawei]stp priority 4096 //設置STP的優先級為4096
- 查看生成樹狀態信息
[Huawei]display stp
3 選舉根端口和指定端口
3.1 選舉根端口
- 根端口定律
非根交換機中有且只有一個根端口 - 選舉根端口原則
非根交換機到根交換機的根路徑開銷值最小的端口(此端口到根的路徑成本之和最低)如果根路徑開銷值相同,則比較對端交換機的BID,越小越優
如果對端BID也相同,則比較對端的PID,越小越優(PID由端口優先級和端口號組成,優先級取值范圍:0~240、步長值為16、端口優先級默認為128,所以端?號小PID就小)
- 路徑開銷(路徑成本):Cost
交換機的每一個端口都有一個路徑開銷-Cost值
交換機端口Cost值和端口帶寬有關,帶寬越高,Cost值越小
默認情況下千兆端口開銷為20000
默認情況下百兆端口開銷為200000
- 在非根網橋SW2/SW3上,選擇一個根端口(RP)
到根交換機的根路徑開銷值最小的端口,即根端口
SW2/SW3的根端口為G0/0/1
3.2 選舉指定端口
- 指定端口定律
在每條鏈路上選擇一個指定端口
根交換機的接口全是指定端口 - 選舉指定端口原則
一條鏈路上,到根交換機的根路徑開銷值最小的端口,即指定端口
如果根路徑開銷相同,則比較接口所在交換機的BID,越小越優
如果交換機的BID也相同,則比較=PID,越小越優
3.3 生成樹算法的結果
- 最后剩下的端口,被阻塞
- 最終形成“數據轉發路徑”
- 被“阻塞”的鏈路,作為“備份”鏈路
4 BPDU
- BPDU的4個關鍵字段,用于選舉交換機角色和端口角色
BPDU報文字段 | 字段作用 |
---|---|
協議ID | |
協議版本號 | |
報文類型 | |
拓撲變化標志 | |
根網橋ID | 當前根橋的BID |
根路徑開銷 | 本端口累計到根橋的開銷值(Cost) |
發送網橋ID | 本交換設備的BID |
端口ID | 發送該BPDU報文的端口ID (PID) |
報文老化時間 | |
消息老化時間 | |
發送報文間隔時間 | |
轉發延遲時間 |
STP的收斂
- STP端口的5種狀態
狀態 | 用途 |
---|---|
禁用(Disabled) | 強制關閉,沒有啟用STP協議 |
阻塞(Blocking) | 只接收BPDU,不能發送BPDU |
偵聽(Listening) | 比較BPDU,確定交換機角色和端口角色 |
學習(Learning) | 基于端口上收到的數據幀,學習MAC地址表 |
轉發(Forwarding) | 端口的最終的完美狀態,發送和接收用戶數據 |
-
STP的3種計時器,用于維護STP
Hello時間:端口發送BPDU報文的時間間隔,默認是2s
轉發延遲(Forward delay):端口從偵聽到學習狀態,分別停留的時間
最大老化時間(Max Age):一個端口最大的“沒有接收BPDU”的時間間隔 -
STP的收斂時間為:30s~50s,非常慢
5 MSTP工作原理及配置
STP回顧
-
弊端
收斂時間慢:30s~50s
設備利用率低 -
方案
RSTP,快速生成樹協議
MSTP,多生成樹協議
RSTP概述
- RSTP:快速生成樹協議
STP的基礎上優化而來
實現網絡的快速收斂,降低網絡故障時間,提高數據轉發的效率 - RSTP對STP的改進
增加了2種端口角色(AP和BP)
RSTP將STP的5種狀態減少到了3種:轉發(Forwarding)、學習(Learning)、丟棄(Discarding)
引入了讓指定端口盡快進入轉發狀態的機制(P/A機制) - RSTP的不足
RSTP和STP有一個共同缺陷:局域網內所有的VLAN共享一棵生成樹。
所有的VLAN的數據轉發路徑是相同的。
交換機之間的多個鏈路,只能實現備份的作用,永遠只會使用其中的主鏈路轉發數據,無法實現VLAN數據流的負載均衡,從而無法提高設備利用率,還有可能造成部分VLAN的數據流無法轉發。
MSTP概述
- MSTP,即Multiple STP,多生成樹協議
RSTP的基礎上優化而來
MSTP網絡中,引入了域的概念,稱為MST域
每個MST域中包含一個或多個“生成樹”稱之為“實例”
引入了實例(instance)的概念,實現VLAN數據流的負載均衡
默認情況下,所有的VLAN都屬于同一個默認的實例-Instance0
可以基于需求,可以將不同的VLAN分配到不同的實例中
不同的實例,就是不同的“生成樹”,就對應著多個不同的“根橋”
配置思路
1. 每個交換機創建相同的VLAN
2. 交換機之間的鏈路配置為Trunk,允許所有的VLAN通過
3. 交換機啟用STP協議,配置模式為MSTP
4. 交換機指定MST域的域名、實例和vlan的對應關系
5. 交換機上激活MST域的配置
6. 驗證與測試MST域的配置
- 同一個MST域的交換機配置特點:
都啟動了MSTP
域名配置相同
實例配置相同
6 MSTP負載均衡衡
- STP/RSTP的弊端
所有的VLAN共用一個“生成樹”,防止環路的同時只能確保一半的設備得到利用,另外
一半的設備僅僅用作“備份”,無法提高設備的利用率 - MSTP負載均衡
不同的VLAN關聯到不同的實例
不同的實例的根交換機放置在不同的交換機上
不同的VLAN通過不同的根交換機進行數據的轉發,從而確保提高設備的利用率,同時設
備之間還能實現備份
- 需求描述
PC1屬于VLAN10,IP地址為192.168.10.1/24,網關為192.168.10.254
PC2屬于VLAN20,1P地址為192.168.20.1/24,網關為192.168.20.254
確保PC1與PC2互通
合理配置MSTP,確保PC1與PC2之間的互通路徑是最優的
練習
- 選舉根交換機
- 理解STP工作原理
- MSTP負載均衡一
- MSTP負載均衡二
1 選舉根交換機
1.1 問題
設置SW1的STP優先級為4096,讓SW1成為根交換機
查看根交換機信息
1.2 方案
使用eNSP 搭建實全環境,如圖-1所示。
圖-1
1.3 步驟
實現此案例需要按照如下步驟進行。
[SW1]stp priority 4096 //設置STP的優先級為4096
<SW1>display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :4096 .4c1f-ccca-079f (本機的BID)
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :4096 .4c1f-ccca-079f / 0 (根網橋的BID)
<SW2>display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-ccb9-2000 (本機的BID)
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :4096 .4c1f-ccca-079f / 20000 (根網橋的BID)
<SW3>display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-cc9e-6330 (本機的BID)
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :4096 .4c1f-ccca-079f / 20000 (根網橋的BID)
2 理解STP工作原理
2.1 問題
如何選擇根網橋、根端口、指定端口、被阻塞的端口?
2.2 方案
使用eNSP 搭建實全環境,如圖-2所示。
圖-2
2.3 步驟
實現此案例需要按照如下步驟進行。
1)設置工作模式為STP,并設置SW1/SW2的STP的優先級
[SW1]stp priority 4096 //設置STP的優先級為4096
[SW2]stp priority 8192 //設置STP的優先級為8192
[SW1]display stp brief //顯示STP簡要信息
[SW2]display stp brief //顯示STP簡要信息
[SW3]display stp brief //顯示STP簡要信息
2)選擇根網橋
網橋ID最小
3)選擇根端口(非根網橋)
此端口到達根網橋路徑成本最低
此端口直連網橋ID最小
4)選擇指定端口(每根網線)
根網橋上所有端口都是指定端口
此端口所在交換機到達根網橋成本最低
此端口所在的換機的網橋ID最小
3 MSTP負載均衡一
3.1 問題
3.2 方案
使用eNSP搭建實驗環境,如圖-3所示。
圖-3
3.3 步驟
實現此案例需要按照如下步驟進行。
[S1]vlan batch 10 20
[S1]port-group 1
[S1-port-group-1]group-member g0/0/5 g0/0/6
[S1-port-group-1]port link-type trunk
[S1-port-group-1]port trunk allow-pass vlan 10 20
[S2]vlan batch 10 20
[S2]port-group 1
[S2-port-group-1]group-member g0/0/5 g0/0/6
[S2-port-group-1]port link-type trunk
[S2-port-group-1]port trunk allow-pass vlan 10 20
[S3]vlan batch 10 20
[S3]port-group 1
[S3-port-group-1]group-member g0/0/5 g0/0/6
[S3-port-group-1]port link-type trunk
[S3-port-group-1]port trunk allow-pass vlan 10 20
[S3]interface GigabitEthernet 0/0/1
[S3-GigabitEthernet0/0/1]port link-type access
[S3-GigabitEthernet0/0/1]port default vlan 10
[S3]interface GigabitEthernet 0/0/2
[S3-GigabitEthernet0/0/2]port link-type access
[S3-GigabitEthernet0/0/2]port default vlan 20
[S1]stp mode mstp 啟用MSTP協議
[S1]stp region-configuration 創建MSTP區域
[S1-mst-region]region-name ntd定義區域名為ntd
[S1-mst-region]instance 1 vlan 10指定實例與vlan的對應關系
[S1-mst-region]instance 2 vlan 20
[S1-mst-region]active region-configuration激活區域配置
[S2]stp mode mstp 啟用MSTP協議
[S2]stp region-configuration 創建MSTP區域
[S2-mst-region]region-name ntd定義區域名為ntd
[S2-mst-region]instance 1 vlan 10指定實例與vlan的對應關系
[S2-mst-region]instance 2 vlan 20
[S2-mst-region]active region-configuration激活區域配置
[S3]stp mode mstp 啟用MSTP協議
[S3]stp region-configuration 創建MSTP區域
[S3-mst-region]region-name ntd定義區域名為ntd
[S3-mst-region]instance 1 vlan 10指定實例與vlan的對應關系
[S3-mst-region]instance 2 vlan 20
[S3-mst-region]active region-configuration激活區域配置
[S1]stp instance 1 priority 4096
[S2]stp instance 2 priority 4096
<S1>display stp instance 1 brief
查看S1的instance 1 g0/0/5 g0/0/6都是指定接口
<S2>display stp instance 2 brief
查看S2的instance 2 g0/0/5 g0/0/6都是指定接口
4 MSTP負載均衡二
4.1 問題
1)PC1屬于 vlan 10 ,IP地址為 192.168.10.1/24,網關為 192.168.10.254
2)PC2屬于 vlan 20 ,IP地址為 192.168.20.1/24,網關為 192.168.20.254
3)確保PC1與PC2互通
4)配置 MSTP ,SW1為 vlan10的主根、vlan20的次根,SW2為vlan10的主根、vlan10的次根
4.2 方案
使用eNSP搭建實驗環境,如圖-4所示。
圖-4
4.3 步驟
實現此案例需要按照如下步驟進行。
[S1]VLAN batch 10 20
[S1]port-group 1
[S1-port-group-1]group-member G0/0/5 G0/0/6
[S1-port-group-1]port link-type trunk
[S1-GigabitEthernet0/0/5]port trunk allow-pass vlan ALL
[S2]VLAN batch 10 20
[S2]port-group 1
[S2-port-group-1]group-member G0/0/5 G0/0/6
[S2-port-group-1]port link-type trunk
[S2-GigabitEthernet0/0/5]port trunk allow-pass vlan ALL
[S3]VLAN batch 10 20
[S3]port-group 1
[S3-port-group-1]group-member G0/0/5 G0/0/6
[S3-port-group-1]port link-type trunk
[S3-GigabitEthernet0/0/5]port trunk allow-pass vlan ALL
[S1]stp mode mstp 啟用MSTP協議
[S1]stp region-configuration 創建區域
[S1-mst-region]region-name ntd 定義區域名為ntd
[S1-mst-region]instance 1 vlan 10 指定vlan與實例的對應關系
[S1-mst-region]instance 2 vlan 20
[S1-mst-region]active region-configuration 激活區域配置
[S2]stp mode mstp 啟用MSTP協議
[S2]stp region-configuration 創建區域
[S2-mst-region]region-name ntd 定義區域名為ntd
[S2-mst-region]instance 1 vlan 10 指定vlan與實例的對應關系
[S2-mst-region]instance 2 vlan 20
[S2-mst-region]active region-configuration 激活區域配置
[S3]stp mode mstp 啟用MSTP協議
[S3]stp region-configuration 創建區域
[S3-mst-region]region-name ntd 定義區域名為ntd
[S3-mst-region]instance 1 vlan 10 指定vlan與實例的對應關系
[S3-mst-region]instance 2 vlan 20
[S3-mst-region]active region-configuration 激活區域配置
[S1]stp instance 1 priority 0
[S1]stp instance 2 priority 4096
[S2]stp instance 2 priority 0
[S2]stp instance 1 priority 4096
[S3]interface GigabitEthernet 0/0/1
[S3-GigabitEthernet0/0/1]port link-type access
[S3-GigabitEthernet0/0/1]port default vlan 10
[S3]interface GigabitEthernet 0/0/2
[S3-GigabitEthernet0/0/2]port link-type access
[S3-GigabitEthernet0/0/2]port default vlan 20
[S1]interface GigabitEthernet 0/0/1
[S1-GigabitEthernet0/0/1]port link-type access
[S1-GigabitEthernet0/0/1]port default vlan 10
[S2]interface GigabitEthernet 0/0/2
[S2-GigabitEthernet0/0/2]port link-type access
[S2-GigabitEthernet0/0/2]port default vlan 20
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.10.254 24
[R1]interface GigabitEthernet 0/0/2
[R1-GigabitEthernet0/0/2]ip address 192.168.20.254 24
pc1 ping pc2 通<S1>display stp instance 1 brief
查看S1的instance 1 g0/0/5 g0/0/6都是指定接口
<S2>display stp instance 2 brief
查看S2的instance 2 g0/0/5 g0/0/6都是指定接口