以太網交換網絡中為了進行鏈路備份,提高網絡可靠性,通常會使用冗余鏈路。但是使用冗余鏈路會在交換網絡上產生環路,引發廣播風暴以及 MAC地址表不穩定等故障現象,從而導致用戶通信質量較差,甚至通信中斷。
為解決交換網絡中的環路問題,提出了生成樹協議STP(Spanning Tree Protocol)。
與眾多協議的發展過程一樣,生成樹協議也是隨著網絡的發展而不斷更新的,從最初的IEEE802.1D 中定義的 STP 到 IEEE 802.1W 中定義的快速生成樹協議 RSTP(Rapid Spanning TreeProtocol),再到最新的IEEE 802.1S 中定義的多生成樹協議 MSTP(Multiple Spanning TreeProtocol )
本實驗將通過完成 STP 的基本配置,幫助學員掌握 STP 的配置和原理,以及部分 RSTP 特性。
一、實驗目的
- 掌握啟用和禁用 STP/RSTP 的方法
- 掌握修改交換機 STP 模式的方法
- 掌握修改橋優先級,控制根橋選舉的方法
- 掌握修改端口優先級,控制根端口和指定端口選舉的方法
- 掌握修改端口開銷,控制根端口和指定端口選舉的方法
- 掌握邊緣端口的配置方法
- 掌握啟用和禁用 RSTP 的配置方法
二、實驗拓撲結構
交換機S1-S4統一采用S3700交換機,連接線兩端的接口編號相同。
三、實驗背景
某公司的二層交換網絡中,為了提高網絡可靠性,故在二層交換網絡中增加冗余鏈路。為了阻止冗余鏈路可能帶來的廣播風暴,MAC 地址漂移等負面影響,需要在交換機之間部署生成樹協議。
四、實驗內容
4.1 實驗配置思路
- 使能設備上的 STP 功能
- 修改橋優先級來控制根橋的選舉
- 修改接口參數來控制端口角色
- 修改設備運行 RSTP 協議
- 配置 RSTP 邊緣端口
4.2 實驗配置步驟
4.2.1?設備基礎配置
(1)S1設備命名并關閉信息中心
<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S1
(2)S2設備命名并關閉信息中心
<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S2
(3)S3設備命名并關閉信息中心
<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S3
(4)S4設備命名并關閉信息中心
<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S4
4.2.2 配置設備運行 STP
(1)全局使能STP功能
全局使能交換設備或端口上的STP/RSTP/MSTP 功能的命令為stp enable 。默認情況下,交換設備上的 STP/RSTP/MSTP 功能處于啟用狀態,故該過程可以直接跳過。作為演示,以使能S1交換機的STP/RSTP/MSTP為例。
[S1]stp enable
(2)修改生成樹的工作模式
默認情況下,設備的生成樹協議工作模式為 MSTP 模式。修改生成樹工作模式的命令格式如下:
stp mode 工作模式
其中:工作模式可從stp、rstp和mstp中選擇。
對四個交換機的工作模式進行修改如下:
[S1]stp mode stp
[S2]stp mode stp
[S3]stp mode stp
[S4]stp mode stp
(3)查看生成樹的狀態
[S1]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-cc4b-051e # 自身的橋 ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-cc32-6930 / 200000 # 根橋 ID 和 RPC
CIST RegRoot/IRPC :32768.4c1f-cc4b-051e / 0
CIST RootPortId :128.3
BPDU-Protection :Disabled
TC or TCN received :67
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 0h:1m:7s
Number of TC :13
Last TC occurred :Ethernet0/0/3
----[Port1(Ethernet0/0/1)][FORWARDING]---- # 接口狀態,下面內容為具體信息Port Protocol :EnabledPort Role :Designated PortPort Priority :128Port Cost(Dot1T ) :Config=auto / Active=200000Designated Bridge/Port :32768.4c1f-cc4b-051e / 128.1Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=trueTransit Limit :147 packets/hello-timeProtection Type :NonePort STP Mode :MSTP Port Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send :3TC or TCN received :0BPDU Sent :53 TCN: 0, Config: 0, RST: 0, MST: 53BPDU Received :1 TCN: 0, Config: 0, RST: 0, MST: 1
從S1的?生成樹的狀態信息可以看出,自身的橋ID與根橋ID不相同,表明S1不是根橋。
經查,S3的橋ID與根橋ID相同,即表示S3為根橋。
[S3]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-cc32-6930 # 自身橋ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-cc32-6930 / 0 # 根橋ID及RPC
CIST RegRoot/IRPC :32768.4c1f-cc32-6930 / 0
CIST RootPortId :0.0
BPDU-Protection :Disabled
TC or TCN received :12
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 3h:17m:5s
Number of TC :11
Last TC occurred :Ethernet0/0/3
?注:按空格鍵翻頁查看后續輸出,按Ctrl+C 可結束顯示。
(4)查看各交換機上生成樹的狀態信息摘要
[S1]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/2 DESI FORWARDING NONE0 Ethernet0/0/3 ROOT FORWARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S2]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ALTE DISCARDING NONE0 Ethernet0/0/2 ALTE DISCARDING NONE0 Ethernet0/0/3 DESI FORWARDING NONE0 Ethernet0/0/4 ROOT FORWARDING NONE
[S3]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/3 DESI FORWARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S4]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ROOT FORWARDING NONE0 Ethernet0/0/3 ALTE DISCARDING NONE0 Ethernet0/0/4 ALTE DISCARDING NONE
根據各設備連接接口的STP State(FORWARDING表示接口可以轉發業務數據,DISCARDING表示不轉發,即接口被阻塞),結合拓撲結構,可得到如下所示的有效拓撲結構,圖中紅色標識的接口表示此接口被阻塞,不轉發業務數據,從而保障了從任一設備出發到達任意其它設備,均有路徑可達,且不存在環路。
?注:該拓撲僅供參考,每個人的實驗環境中的生成樹拓撲不一定相同。
?4.2.3?手動配置根橋和備份根橋
由于根橋在網絡中的重要性,在根橋選舉過程中,通常希望性能高、網絡層次高的交換設備會被選舉為根橋。
但是,性能高、網絡層次高的交換設備其優先級不一定高,因此需要通過執行相應命令配置其為根橋,以保證該設備成為根橋。
配置當前交換設備為指定生成樹的根橋或備份根橋的命令為stp root。
執行【stp root primary】命令指定當前交換設備為根交換設備,即表示該設備在指定生成樹中的優先級為0,且優先級不能修改。
執行【stp root secondary】命令指定當前交換設備在指定生成樹中為備份根橋,則表示該設備的優先級數值為 4096,且優先級不能修改。
現要求修改設備參數,使得 S2 成為根橋,S1 成為備份根橋。
(1)配置S2為根橋
# 配置當前交換機為根橋
[S2]stp root primary # 查看stp詳情
[S2]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :0 .4c1f-cca5-07c7 # 自身橋ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cca5-07c7 / 0 # 根橋ID及到根橋的路徑開銷RPC
CIST RegRoot/IRPC :0 .4c1f-cca5-07c7 / 0
CIST RootPortId :0.0
BPDU-Protection :Disabled
CIST Root Type :Primary root # 根橋
……此處省略后續輸出……
注:因自身橋 ID 與根橋 ID 相同,且根路徑開銷為 0,說明 S2 是當前網絡的根橋。?
(2)配置S1為備用根橋
# 配置當前交換機為備用根橋
[S1]stp root secondary # 查看當前STP詳情
[S1]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :4096 .4c1f-cc4b-051e # 自身橋ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cca5-07c7 / 200000 # 根橋ID及到根橋的路徑開銷RPC
CIST RegRoot/IRPC :4096 .4c1f-cc4b-051e / 0
CIST RootPortId :128.1
BPDU-Protection :Disabled
CIST Root Type :Secondary root # 備用根橋
……此處省略后續輸出……
?(3)再次查看所有設備的STP狀態摘要
[S1]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ROOT FORWARDING NONE0 Ethernet0/0/2 ALTE DISCARDING NONE0 Ethernet0/0/3 DESI FORWARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S2]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/2 DESI FORWARDING NONE0 Ethernet0/0/3 DESI FORWARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S3]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/3 ALTE DISCARDING NONE0 Ethernet0/0/4 ROOT FORWARDING NONE
[S4]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ALTE DISCARDING NONE0 Ethernet0/0/3 ROOT FORWARDING NONE0 Ethernet0/0/4 ALTE DISCARDING NONE
根據各設備連接接口的STP State(FORWARDING表示接口可以轉發業務數據,DISCARDING表示不轉發,即接口被阻塞),結合實驗拓撲結構,可得到如下所示的有效拓撲結構,圖中紅色標識的接口表示此接口被阻斷,不轉發業務數據,從而保障了從任一設備出發到達任意其它設備,均有路徑可達,且不存在環路。
?
4.2.4 配置根端口
現假定需要將S4 的Eth 0/0/4接口配置成為根端口。
(1)查看S4的STP狀態信息
[S4]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-ccf3-6b1b
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cca5-07c7 / 200000 # 根橋ID及RPC
CIST RegRoot/IRPC :32768.4c1f-ccf3-6b1b / 0
CIST RootPortId :128.3 # 根端口ID(即Eth 0/0/3)
BPDU-Protection :Disabled
TC or TCN received :32
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 0h:24m:5s
Number of TC :8
Last TC occurred :Ethernet0/0/3
從S4的STP狀態信息可以看出,S4到根橋S2的路徑開銷RPC為200000,本設備的根端口為Eth 0/0/3。
(2)修改RPC
現將S4到根橋S2的路徑開銷RPC為500000,命令如下所示。
[S4]interface Ethernet0/0/3# 指定從此接口到根橋的路徑開銷
[S4-Ethernet0/0/3]stp cost 500000
[S4-Ethernet0/0/3]quit
(3)查看當前 STP 狀態信息
[S4]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-ccf3-6b1b
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cca5-07c7 / 400000 # RPC變為400000
CIST RegRoot/IRPC :32768.4c1f-ccf3-6b1b / 0
CIST RootPortId :128.4 # 根端口變為Eth 0/0/4
BPDU-Protection :Disabled
TC or TCN received :38
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 0h:1m:44s
Number of TC :9
Last TC occurred :Ethernet0/0/4
從圖中可以看出,此時S4到根橋S2的路徑開銷RPC變成了400000,根端口變成了Eth 0/0/4,也就是Eth0/0/3被阻塞了,從而有效的網絡拓撲變成了如下圖所示的樣子。
4.2.5?修改當前生成樹工作模式為 RSTP
(1)修改所有設備的生成樹工作模式
[S1]stp mode rstp
[S2]stp mode rstp
[S3]stp mode rstp
[S4]stp mode rstp
?(2)查看設備上的生成樹狀態,僅以S1為例
[S1]display stp
-------[CIST Global Info][Mode RSTP]-------
……此處省略后續輸出……
?從輸出的首行可以看出,S1此時的生成樹工作模式為RSTP。
注:模式修改后,對生成樹的整體拓撲無影響。
4.2.6 配置邊緣端口
(1)S3 的 Eth 0/0/5-0/0/22確認只會連接終端設備,需要被配置為邊緣端口。
配置當前端口為邊緣端口的命令為【stp edged-port enable】
# 將Ethernet0/0/5配置為邊緣端口
[S3]interface Ethernet0/0/5
[S3-Ethernet0/0/5]stp edged-port enable
[S3-Ethernet0/0/5]quit# 將Ethernet0/0/6配置為邊緣端口
[S3]interface Ethernet0/0/6
[S3-Ethernet0/0/6]stp edged-port enable
[S3-Ethernet0/0/6]quit……其它端口類似操作,此處省略……
通常,設備的以太網接口數比較多,并且在很多以太網接口下有相同的配置。如果對這些以太網接口進行逐個配置會較為繁瑣,且容易輸入錯誤。因此,將需要執行相同配置命令的以太網接口加入到一個臨時端口組,在臨時端口組配置命令時,系統會自動到臨時端口組綁定的所有成員接口下執行這些命令行,完成以太網接口批量配置。
注:某些產品上可能不支持臨時接口組,需要對接口做單獨配置。本實驗中的交換機就需要單獨配置。
當前端口配置成邊緣端口后,如果收到 BPDU(Bridge Protocol Data Unit,橋協議數據單元)報文,交換設備會自動將邊緣端口設置為非邊緣端口,并重新進行生成樹計算。
4.3 結果驗證
(1)請根據實際收斂情況,標識和說明當前實驗環境中的根橋以及端口角色。
以S1為例
[S1]display stp
-------[CIST Global Info][Mode RSTP]------- # 工作模式為RSTP
CIST Bridge :4096 .4c1f-cc4b-051e # 自身橋ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 # 配置時間參數
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 # 生效的時間參數
CIST Root/ERPC :0 .4c1f-cca5-07c7 / 200000 # 根橋ID / RPC
CIST RegRoot/IRPC :4096 .4c1f-cc4b-051e / 0 # 備用根橋ID / RPC
CIST RootPortId :128.1 # 根端口
BPDU-Protection :Disabled # BPDU保護(未啟用,若啟用,收到BPDU的邊緣端口會被關閉)
CIST Root Type :Secondary root # 根橋類型(備用根橋)
TC or TCN received :100 # 收到的拓撲變更(TC/TCM)BPDU 數量
TC count per hello :0 # 每個 Hello 時間內的 TC 計數
STP Converge Mode :Normal # 生成樹收斂模式為普通模式(非快速收斂)。
Time since last TC :0 days 0h:24m:40s # 上次發生 TC 的時間(24分40秒前)
Number of TC :27 # 累計 TC 事件次數
Last TC occurred :Ethernet0/0/1 # 最后一次 TC 事件發生的端口
----[Port1(Ethernet0/0/1)][FORWARDING]---- # 端口工作狀態為轉發Port Protocol :EnabledPort Role :Root Port # 端口角色為根端口Port Priority :128 # 端口優先級Port Cost(Dot1T ) :Config=auto / Active=200000 # 端口開銷Designated Bridge/Port :0.4c1f-cca5-07c7 / 128.1 # 指派橋/端口的地址/接口Port Edged :Config=default / Active=disabled # 邊緣端口(默認即未配置)Point-to-point :Config=auto / Active=true # 鏈路類型自動檢測為 點對點(P2P)Transit Limit :147 packets/hello-time # 每個Hello時間內允許傳輸的BPDU包數量上限為147Protection Type :None # 未啟用任何保護功能Port STP Mode :RSTP # 端口運行模式為RSTPPort Protocol Type :Config=auto / Active=dot1s # 端口協議類型IEEE 802.1sBPDU Encapsulation :Config=stp / Active=stp # BPDU 封裝格式為標準的 STP 格式PortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 0 # 端口的時間參數與全局一致TC or TCN send :3TC or TCN received :4BPDU Sent :5 TCN: 0, Config: 0, RST: 5, MST: 0BPDU Received :702 TCN: 0, Config: 0, RST: 702, MST: 0
----[Port2(Ethernet0/0/2)][DISCARDING]---- # 端口工作狀態為丟棄Port Protocol :EnabledPort Role :Alternate Port # 端口角色為備用端口Port Priority :128Port Cost(Dot1T ) :Config=auto / Active=200000Designated Bridge/Port :0.4c1f-cca5-07c7 / 128.2Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=trueTransit Limit :147 packets/hello-timeProtection Type :NonePort STP Mode :RSTP Port Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 0TC or TCN send :0TC or TCN received :3BPDU Sent :2 TCN: 0, Config: 0, RST: 2, MST: 0BPDU Received :700 TCN: 0, Config: 0, RST: 700, MST: 0
----[Port3(Ethernet0/0/3)][FORWARDING]---- # 端口工作狀態為轉發Port Protocol :EnabledPort Role :Designated Port # 端口角色為指派端口,即要負責業務數據轉發Port Priority :128Port Cost(Dot1T ) :Config=auto / Active=200000Designated Bridge/Port :4096.4c1f-cc4b-051e / 128.3Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=trueTransit Limit :147 packets/hello-timeProtection Type :NonePort STP Mode :RSTP Port Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send :3TC or TCN received :0BPDU Sent :700 TCN: 0, Config: 0, RST: 700, MST: 0BPDU Received :0 TCN: 0, Config: 0, RST: 0, MST: 0
----[Port4(Ethernet0/0/4)][FORWARDING]---- # 端口工作狀態為轉發Port Protocol :EnabledPort Role :Designated Port # 端口角色為指派端口Port Priority :128Port Cost(Dot1T ) :Config=auto / Active=200000Designated Bridge/Port :4096.4c1f-cc4b-051e / 128.4Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=trueTransit Limit :147 packets/hello-timeProtection Type :NonePort STP Mode :RSTP Port Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send :7TC or TCN received :2BPDU Sent :706 TCN: 0, Config: 0, RST: 706, MST: 0BPDU Received :4 TCN: 0, Config: 0, RST: 4, MST: 0
(2)關閉任意交換機上的任意端口,觀察是否能通過備份鏈路到達其他所有交換機。
在4.2.4節的基礎上,將S3的Eth0/0/3端口關閉以便模擬故障,然后觀察并繪制出實際的網絡拓撲結構。
[S3]interface Ethernet0/0/3
[S3-Ethernet0/0/3]shutdown
[S3-Ethernet0/0/3]quit
[S1]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ROOT FORWARDING NONE0 Ethernet0/0/2 ALTE DISCARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S2]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/2 DESI FORWARDING NONE0 Ethernet0/0/3 DESI FORWARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S3]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/4 ROOT FORWARDING NONE
[S4]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ALTE DISCARDING NONE0 Ethernet0/0/3 ALTE DISCARDING NONE0 Ethernet0/0/4 ROOT FORWARDING NONE
根據上述四個設備接口的STP狀態,可得到如下圖所示的拓撲結構。
從一個設備出發,到任意其它設備仍均有路徑可達。
4.4 參考配置
4.4.1 S1的參考配置
[S1]display current-configuration
#
sysname S1
#
undo info-center enable
#
stp mode rstp
stp instance 0 root secondary
#
……此處省略默認的輸出……
4.4.2 S2的參考配置?
[S2]display current-configuration
#
sysname S2
#
undo info-center enable
#
stp mode rstp
stp instance 0 root primary
#
……此處省略默認的輸出……
4.4.3 S3的參考配置
[S3]display current-configuration
#
sysname S3
#
undo info-center enable
#
stp mode rstp
#
……此處省略默認輸出……
#
interface Ethernet0/0/5stp edged-port enable
#
interface Ethernet0/0/6stp edged-port enable
……此處省略后續相同或類似輸出……
4.4.4 S4的參考配置
[S4]display current-configuration
#
sysname S4
#
undo info-center enable
#
stp mode rstp
……此處省略默認輸出……
4.5?思考題
S1與 S2 之間的兩條鏈路能否同時處于轉發狀態?為什么?
答案:不能,因為 S1 和S2之間的鏈路就構成了環路,所以必須有一條鏈路被阻塞。
4.6 參考文獻
HCIA-Datacom實驗指導手冊V1.0