STP
原理概述
STP是用來避免數據鏈路層出現邏輯環路的協議,運行STP協議的設備通過交互信息發現環路,並通過阻塞特定端口,最終將網絡結構修剪成無環路的樹形結構。在網絡出現故障的時候,STP能快速發現鏈路故障,並儘快找出另外一條路徑進行數據傳輸。
交換機上運行的STP通過BPDU信息的交互,選舉根交換機,然後每臺非根交換機選擇用來與根交換機通信的根端口,之後每個網段選擇用來轉發數據至根交換機的指定端口,最後剩餘端口則被阻塞。
拓撲:
基本配置
S1到S4都將默認的MSTP更改爲STP
stp enable
stp mode stp
30秒後查看s1的生成樹狀態
查看詳細狀態
display stp
查看摘要信息
[s1]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 ROOT FORWARDING NONE
0 Ethernet0/0/2 ALTE DISCARDING NONE
[s2]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 DESI FORWARDING NONE
0 Ethernet0/0/2 DESI FORWARDING NONE
0 Ethernet0/0/3 DESI FORWARDING NONE
[s3]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 DESI FORWARDING NONE
0 Ethernet0/0/2 DESI FORWARDING NONE
0 Ethernet0/0/3 ROOT FORWARDING NONE
0 Ethernet0/0/10 DESI FORWARDING NONE
0 Ethernet0/0/11 DESI FORWARDING NONE
[s4]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 ALTE DISCARDING NONE
0 Ethernet0/0/2 ROOT FORWARDING NONE
由以上可知
S1的Ethernet0/0/1爲根端口,轉發狀態;Ethernet0/0/2爲替代端口,丟棄狀態
S2的所有端口都是指定端口,轉發狀態;可以判斷S2爲根交換機
S3的Ethernet0/0/3爲根端口,其餘端口爲指定端口;都是轉發狀態
S4的Ethernet0/0/2爲根端口,轉發狀態;Ethernet0/0/1爲替代端口,丟棄狀態
查看s2根交換機的stp詳細信息
[s2]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-cc29-7f53
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-cc29-7f53 / 0
CIST RegRoot/IRPC :32768.4c1f-cc29-7f53 / 0
CIST RootPortId :0.0
BPDU-Protection :Disabled
TC or TCN received :18
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 0h:4m:29s
Number of TC :19
Last TC occurred :Ethernet0/0/3
Ps:CIST Root/ERPC 與 CIST Bridge相同,說明s2爲根交換機;32768.4c1f-cc29-7f53中32768爲交換機默認的優先級,後面的爲交換機MAC地址
STP運算過程
比較每臺交換機的ID選舉根交換機,交換機ID由交換機優先級和MAC地址組成
1、比較交換機優先級,數值最低的爲根交換機
2、優先級一致,則比較MAC地址,數值最低的爲根交換機。
手動配置根交換機
修改交換機優先級
設置根交換機優先級爲0,備份根交換機優先級爲4096
[s1]stp priority 0
[s2]stp priority 4096
或者
[s1]undo stp priority
[s1]stp root primary
[s2]undo stp priority
[s2]stp root secondary
查看s1s2的狀態信息
[s1]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :0 .4c1f-cce4-0451
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-cce4-0451 / 0
CIST RegRoot/IRPC :0 .4c1f-cce4-0451 / 0
[s2]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :4096 .4c1f-cc29-7f53
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-cce4-0451 / 200000
CIST RegRoot/IRPC :4096 .4c1f-cc29-7f53 / 0
由以上可知
CIST Root/ERPC:根交換機s1優先級爲0,mac爲4c1f-cce4-0451
CIST RegRoot/IRPC:備份根交換機s2優先級爲4096,mac爲4c1f-cc29-7f53
非根交換機上選舉根端口
1、每個端口到達根交換機的根路徑開銷,路徑開銷最小的端口爲根端口
2、如果根路徑開銷值相同,則比較每個端口所在鏈路上行交換機ID值
3、如果上行交換機ID相同,則比較每個端口所在鏈路上行端口ID值
手動配置端口開銷值
查看s4交換機根端口以及開銷值
[s4]dis stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 ALTE DISCARDING NONE
0 Ethernet0/0/2 ROOT FORWARDING NONE
[s4]dis stp
----[Port1(Ethernet0/0/1)][DISCARDING]----
Port Protocol :Enabled
Port Role :Alternate Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
----[Port2(Ethernet0/0/2)][FORWARDING]----
Port Protocol :Enabled
Port Role :Root Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
兩個端口的active(實際使用的開銷值)都爲200000,設置根端口的開銷值小於200000,即可
配置s4上根端口開銷值
[s4]interface Eth0/0/1
[s4-Ethernet0/0/1]stp cost 2000
再次查看s4交換機根端口
[s4]dis stp
----[Port1(Ethernet0/0/1)][FORWARDING]----
Port Protocol :Enabled
Port Role :Root Port
Port Priority :128
Port Cost(Dot1T ) :Config=2000 / Active=2000
----[Port2(Ethernet0/0/2)][DISCARDING]----
Port Protocol :Enabled
Port Role :Alternate Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
目前根端口爲Ethernet0/0/1口,開銷值爲2000
每個網段選舉指定端口
1、比較兩個端口發送與接收BPDU中的根路徑開銷,小的成爲指定端口
2、如果相同,比較端口發送與接收BPDU中的網橋ID,小的成爲指定端口
3、如果相同,比較網橋MAC地址,小的成爲指定端口
Ps:修改端口開銷值來選舉指定端口,修改方法同選舉根端口
配置STP定時器
普通的stp不能實現快速的拓撲收斂,但定時器通過配置合適的系統參數,可以使stp實現最快的拓撲收斂。
定時器有三種:
hello time定時器,BPDU多久發送一次hello,默認2秒
max age定時器,BPDU的最大老化時間,默認20秒
forword delay定時器,轉發延遲時間;接口從Discarding狀態,經過 過渡狀態,最終到Forwording狀態所用時間,默認15秒
交換機自動根據網絡直徑計算出hello time,max age和forword delay三個時間參數的最優值,默認網絡直徑爲7
示例:
配置STP定時器,並配置s1爲根交換機,s2爲備份根交換機
[s1]stp mode stp
[s1]stp root primary
[s2]stp mode stp
[s2]stp root secondary
[s3]stp mode stp
[s4]stp mode stp
查看各定時器默認值
[s1]display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :0 .4c1f-cc9a-76a3
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Config Times:標識當前設備配置的計時器
Active Times:標識正在生效的計時器
在根交換機設置FwDly時間爲2000cs,默認是1500cs,cs是百分之一秒
stp timerforward-delay 2000
一般不建議直接修改這三個計時器的數值,而是配置網絡直徑讓交換機自行計算
在根交換機配置網絡直徑爲3
stp bridge-diameter 3
再次查看計時器信息
<s1>display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :0 .4c1f-cc9a-76a3
Config Times :Hello 2s MaxAge 12s FwDly 9s MaxHop 20
Active Times :Hello 2s MaxAge 12s FwDly 9s MaxHop 20
RSTP
RSTP(快速生成樹協議)基於STP協議,在STP協議的端口狀態和端口角色進行了細緻區分,使收斂速度有很大提升。
RSTP與STP的比較
RSTP的快速收斂機制
• Proposal/Agreement機制
• 根端口快速切換機制
• 邊緣端口的引入
示例:
在s1到s4交換機配置RSTP
[s1]stp mode rstp
配置s1爲根交換機,s2爲備份根交換機
[s1]stp root primary
[s2]stp root secondary
配置s3的Ethernet0/0/1,s4的Ethernet0/0/1爲邊緣端口
[s3-Ethernet0/0/1]stp edged-port enable
[s4-Ethernet0/0/1]stp edged-port enable
MSTP
RSTP實現了網絡拓撲的快速收斂,但還是存在缺陷,即局域網內所有VLAN貢獻一顆生成樹,鏈路被阻塞後將不承載任何流量,造成帶寬浪費,因此無法在VLAN間實現數據流量的負載均衡,還可能造成部分VLAN報文無法轉發。
MSTP把一個交換網絡劃分成多個域,每個域內形成多棵生成樹,生成樹之間彼此獨立。每個域叫做一個MST域,每棵生成樹叫做一個多生成樹實例MSTI;實例內可以包含多個VLAN,通過VLAN映射表,把VLAN和MSTI聯繫起來;一個MSTI可以對應多個VLAN,一個VLAN只能對應一個MSTI。
示例:
基礎配置
以s1爲例
配置vlan 10 20,配置連接pc的端口爲access,配置連接交換機的端口爲trunk
[s1]vlan batch 10 20
[s1-Ethernet0/0/1]port link-type trunk
[s1-Ethernet0/0/1]port trunk allow-pass vlan 10 20
[s1-Ethernet0/0/2]port link-type trunk
[s1-Ethernet0/0/2]port trunk allow-pass vlan 10 20
[s1-Ethernet0/0/3]port link-type access
[s1-Ethernet0/0/3]port default vlan 10
在s1,s2,s3上配置MSTP多實例
進入MSTP域視圖
[s1]stp region-configuration
配置MSTP域域名
[s1-mst-region]region-name huawei
配置MSTP的修訂級別爲1
[s1-mst-region]revision-level 1
指定vlan10映射到MSTI1,指定vlan20映射到MSTI2
[s1-mst-region]instance 1 vlan 10
[s1-mst-region]instance 2 vlan 20
激活MST域配置
[s1-mst-region]active region-configuration
Notes:在同一MST域中,必須具有相同域名,修訂級別以及VLAN到MSTI的映射關係
查看當前生效的MST域配置
<s1>dis stp region-configuration
Oper configuration
Format selector :0
Region name :huawei
Revision level :1
Instance VLANs Mapped
0 1 to 9, 11 to 19, 21 to 4094
1 10
2 20
在s1,s2,s3查看三個實例中的生成樹狀態和統計的摘要信息
[s1]dis stp instance 0 brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 ROOT FORWARDING NONE
0 Ethernet0/0/2 ALTE DISCARDING NONE
0 Ethernet0/0/3 DESI FORWARDING NONE
[s1]dis stp instance 1 brief
MSTID Port Role STP State Protection
1 Ethernet0/0/1 ROOT FORWARDING NONE
1 Ethernet0/0/2 ALTE DISCARDING NONE
1 Ethernet0/0/3 DESI FORWARDING NONE
[s1]dis stp instance 2 brief
MSTID Port Role STP State Protection
2 Ethernet0/0/1 ROOT FORWARDING NONE
2 Ethernet0/0/2 ALTE DISCARDING NONE
可以看到s1交換機的Ethernet0/0/2端口在實例1和實例2中都是處於DISCARDING狀態,要實現這條鏈路被利用,配置s1交換機在實例2中爲根交換機
[s1]stp instance 2 priority 0
再次查看生成樹狀態和統計的摘要信息
[s1]dis stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 ROOT FORWARDING NONE
0 Ethernet0/0/2 ALTE DISCARDING NONE
0 Ethernet0/0/3 DESI FORWARDING NONE
1 Ethernet0/0/1 ROOT FORWARDING NONE
1 Ethernet0/0/2 ALTE DISCARDING NONE
1 Ethernet0/0/3 DESI FORWARDING NONE
2 Ethernet0/0/1 DESI FORWARDING NONE
2 Ethernet0/0/2 DESI FORWARDING NONE
可以看到,Ethernet0/0/2在實例2中爲指定端口,狀態爲FORWARDING了,達到了流量分擔的目的,有效的利用了網絡資源,使s1的兩條上行鏈路可以互相備份
學習自華爲技術認證 HCNA網絡技術實驗指南