企業網絡拓撲MSTP功能實例(二)

  • 2020 年 11 月 17 日
  • 筆記

組網圖形

MSTP簡介

  • 以太網交換網絡中為了進行鏈路備份,提高網絡可靠性,通常會使用冗餘鏈路。但是使用冗餘鏈路會在交換網絡上產生環路,引發廣播風暴以及MAC地址表不穩定等故障現象,從而導致用戶通信質量較差,甚至通信中斷。為解決交換網絡中的環路問題,提出了生成樹協議STP(Spanning Tree Protocol)。STP(Spanning Tree Protocol)是用來解決網絡中環路問題的協議。運行該協議的設備通過彼此交互信息而發現網絡中的環路,並對某些端口進行阻塞以消除環路。
  • 與眾多協議的發展過程一樣,生成樹協議也是隨着網絡的發展而不斷更新的,從最初的IEEE 802.1D中定義的STP到IEEE 802.1W中定義的快速生成樹協議RSTP(Rapid Spanning Tree Protocol),再到最新的IEEE 802.1S中定義的多生成樹協議MSTP(Multiple Spanning Tree Protocol)。
  • 生成樹協議中,MSTP兼容RSTP、STP,RSTP兼容STP。三種生成樹協議的比較如表1所示。
表1 三種生成樹協議的比較

生成樹協議

特點

應用場景

STP

  • 形成一棵無環路的樹,解決廣播風暴並實現冗餘備份。

  • 收斂速度較慢。

無需區分用戶或業務流量,所有VLAN共享一棵生成樹。

RSTP(詳情見實例)

  • 形成一棵無環路的樹,解決廣播風暴並實現冗餘備份。
  • 收斂速度快。

MSTP

  • 形成多棵無環路的樹,解決廣播風暴並實現冗餘備份。
  • 收斂速度快。
  • 多棵生成樹在VLAN間實現負載均衡,不同VLAN的流量按照不同的路徑轉發。

需要區分用戶或業務流量,並實現負載分擔。不同的VLAN通過不同的生成樹轉發流量,每棵生成樹之間相互獨立。

組網需求

  • 在一個複雜的網絡中,由於冗餘備份的需要,網絡規劃者一般都傾向於在設備之間部署多條物理鏈路,其中一條作為主用鏈路,其他作為備份鏈路。這樣就難免會形成環路,若網絡中存在環路,可能會引起廣播風暴和MAC表項被破壞。為此,可以在網絡中部署MSTP協議預防環路。MSTP可阻塞二層網絡中的冗餘鏈路,將網絡修剪成樹狀,達到消除環路的目的。
  • 如圖1所示,SwitchA、SwitchB、SwitchC和SwitchD都運行MSTP。為實現VLAN2~VLAN10和VLAN11~VLAN20的流量負載分擔,MSTP引入了多實例。MSTP可設置VLAN映射表,把VLAN和生成樹實例相關聯。

配置思路

  • 在處於環形網絡中的交換設備上配置MSTP基本功能。
  • 配置保護功能,實現對設備或鏈路的保護。例如:在各實例的根橋設備指定端口配置根保護功能。
  • 配置設備的二層轉發功能。
說明: 
設備配置根保護功能後,如果根橋和備份根橋之間的鏈路down了,則配置根保護的端口狀態會因為根保護功能生效直接變成discarding狀態。 為了提高可靠性,建議根橋和備份根橋之間的鏈路綁定Eth
-Trunk。

操作步驟

  • 配置MSTP基本功能

  a.配置SwitchA、SwitchB、SwitchC和SwitchD到域名為RG1的域內,創建實例MSTI1和實例MSTI2

  # 配置實例1的根橋SwitchA的MST域。

1 <HUAWEI> system-view
2 [HUAWEI] sysname SwitchA
3 [SwitchA] stp region-configuration
4 [SwitchA-mst-region] region-name RG1 //配置域名為RG1。
5 [SwitchA-mst-region] instance 1 vlan 2 to 10 //將VLAN 2至VLAN 10映射到實例1上。
6 [SwitchA-mst-region] instance 2 vlan 11 to 20 //將VLAN 11至VLAN 20映射到實例2上。
7 [SwitchA-mst-region] active region-configuration //激活MST域的配置。
8 [SwitchA-mst-region] quit

  # 配置實例2的根橋SwitchB的MST域。

1 <HUAWEI> system-view
2 [HUAWEI] sysname SwitchB
3 [SwitchB] stp region-configuration
4 [SwitchB-mst-region] region-name RG1 //配置域名為RG1。
5 [SwitchB-mst-region] instance 1 vlan 2 to 10 //將VLAN 2至VLAN 10映射到實例1上。
6 [SwitchB-mst-region] instance 2 vlan 11 to 20 //將VLAN 11至VLAN 20映射到實例2上。
7 [SwitchB-mst-region] active region-configuration //激活MST域的配置。
8 [SwitchB-mst-region] quit

  # 配置接入交換機SwitchC的MST域。

1 <HUAWEI> system-view
2 [HUAWEI] sysname SwitchC
3 [SwitchC] stp region-configuration
4 [SwitchC-mst-region] region-name RG1 //配置域名為RG1。
5 [SwitchC-mst-region] instance 1 vlan 2 to 10 //將VLAN 2至VLAN 10映射到實例1上。
6 [SwitchC-mst-region] instance 2 vlan 11 to 20 //將VLAN 11至VLAN 20映射到實例2上。
7 [SwitchC-mst-region] active region-configuration //激活MST域的配置。
8 [SwitchC-mst-region] quit

  # 配置接入交換機SwitchD的MST域。

1 <HUAWEI> system-view
2 [HUAWEI] sysname SwitchD
3 [SwitchD] stp region-configuration
4 [SwitchD-mst-region] region-name RG1 //配置域名為RG1。
5 [SwitchD-mst-region] instance 1 vlan 2 to 10 //將VLAN 2至VLAN 10映射到實例1上。
6 [SwitchD-mst-region] instance 2 vlan 11 to 20 //將VLAN 11至VLAN 20映射到實例2上。
7 [SwitchD-mst-region] active region-configuration //激活MST域的配置。
8 [SwitchD-mst-region] quit

  b.在域RG1內,配置MSTI1與MSTI2的根橋與備份根橋

  配置MSTI1的根橋與備份根橋

  # 配置SwitchA為MSTI1的根橋。

1 [SwitchA] stp instance 1 root primary

  # 配置SwitchB為MSTI1的備份根橋。

1 [SwitchB] stp instance 1 root secondary

  配置MSTI2的根橋與備份根橋

  # 配置SwitchB為MSTI2的根橋。

1 [SwitchB] stp instance 2 root primary

  # 配置SwitchA為MSTI2的備份根橋。

1 [SwitchA] stp instance 2 root secondary

  c.配置實例MSTI1和MSTI2中將要被阻塞端口的路徑開銷值大於缺省值

說明: 

•端口路徑開銷值取值範圍由路徑開銷計算方法決定,這裡選擇使用華為計算方法為例,配置實例MSTI1和MSTI2中將被阻塞端口的路徑開銷值為20000。

•同一網絡內所有交換設備的端口路徑開銷應使用相同的計算方法。

  # 配置實例1的根橋SwitchA的端口路徑開銷。

1 [SwitchA] stp pathcost-standard legacy

  # 配置實例2的根橋SwitchB的端口路徑開銷。

1 [SwitchB] stp pathcost-standard legacy

  # 配置接入交換機SwitchC的端口路徑開銷,將端口GE0/0/2在實例MSTI2中的路徑開銷值配置為20000。

1 [SwitchC] stp pathcost-standard legacy
2 [SwitchC] interface gigabitethernet 0/0/2
3 [SwitchC-GigabitEthernet0/0/2] stp instance 2 cost 20000
4 [SwitchC-GigabitEthernet0/0/2] quit

  # 配置接入交換機SwitchD的端口路徑開銷,將端口GE0/0/2在實例MSTI1中的路徑開銷值配置為20000。

1 [SwitchD] stp pathcost-standard legacy
2 [SwitchD] interface gigabitethernet 0/0/2
3 [SwitchD-GigabitEthernet0/0/2] stp instance 1 cost 20000
4 [SwitchD-GigabitEthernet0/0/2] quit

  d.使能MSTP,實現破除環路

  設備全局使能MSTP

  # 在SwitchA/B/C/D上啟動MSTP。

1 [SwitchA] stp enable
2 
3 [SwitchB] stp enable
4 
5 [SwitchC] stp enable
6 
7 [SwitchD] stp enable

  將與終端相連的端口設置為邊緣端口並使能端口的BPDU報文過濾功能

  # 配置SwitchC端口GE0/0/1設置為邊緣端口並使能端口的BPDU報文過濾功能。

1 [SwitchC] interface gigabitethernet 0/0/1
2 [SwitchC-GigabitEthernet0/0/1] stp edged-port enable
3 [SwitchC-GigabitEthernet0/0/1] stp bpdu-filter enable
4 [SwitchC-GigabitEthernet0/0/1] quit

  # 配置SwitchD端口GE0/0/1設置為邊緣端口並使能端口的BPDU報文過濾功能。

1 [SwitchD] interface gigabitethernet 0/0/1
2 [SwitchD-GigabitEthernet0/0/1] stp edged-port enable
3 [SwitchD-GigabitEthernet0/0/1] stp bpdu-filter enable
4 [SwitchD-GigabitEthernet0/0/1] quit
  • 配置保護功能,如在各實例的根橋設備的指定端口配置根保護功能

  # 在實例1根橋SwitchA端口GE0/0/1上啟動根保護。

1 [SwitchA] interface gigabitethernet 0/0/1
2 [SwitchA-GigabitEthernet0/0/1] stp root-protection
3 [SwitchA-GigabitEthernet0/0/1] quit

  # 在實例2根橋SwitchB端口GE0/0/1上啟動根保護。

1 [SwitchB] interface gigabitethernet 0/0/1
2 [SwitchB-GigabitEthernet0/0/1] stp root-protection
3 [SwitchB-GigabitEthernet0/0/1] quit
  • 配置處於環網中的設備的二層轉發功能

  在交換設備SwitchA、SwitchB、SwitchC和SwitchD上創建VLAN2~20

1 [SwitchA] vlan batch 2 to 20
2 
3 [SwitchB] vlan batch 2 to 20
4 
5 [SwitchC] vlan batch 2 to 20
6 
7 [SwitchD] vlan batch 2 to 20

  將交換設備上接入環路中的端口加入VLAN

  # 將實例1的根橋SwitchA端口GE0/0/1加入VLAN。

1 [SwitchA] interface gigabitethernet 0/0/1
2 [SwitchA-GigabitEthernet0/0/1] port link-type trunk
3 [SwitchA-GigabitEthernet0/0/1] port trunk allow-pass vlan 2 to 20
4 [SwitchA-GigabitEthernet0/0/1] quit

  # 將實例1的根橋SwitchA端口Eth-Trunk1加入VLAN。

1 [SwitchA] interface Eth-Trunk 1
2 [SwitchA-Eth-Trunk1] trunkport gigabitethernet 0/0/2
3 [SwitchA-Eth-Trunk1] trunkport gigabitethernet 0/0/3
4 [SwitchA-Eth-Trunk1] port link-type trunk
5 [SwitchA-Eth-Trunk1] port trunk allow-pass vlan 2 to 20
6 [SwitchA-Eth-Trunk1] quit

  # 將實例2的根橋SwitchB端口GE0/0/1加入VLAN。

1 [SwitchB] interface gigabitethernet 0/0/1
2 [SwitchB-GigabitEthernet0/0/1] port link-type trunk
3 [SwitchB-GigabitEthernet0/0/1] port trunk allow-pass vlan 2 to 20
4 [SwitchB-GigabitEthernet0/0/1] quit

  # 將實例2的根橋SwitchB端口Eth-Trunk1加入VLAN。

1 [SwitchB] interface Eth-Trunk 1
2 [SwitchB-Eth-Trunk1] trunkport gigabitethernet 0/0/2
3 [SwitchB-Eth-Trunk1] trunkport gigabitethernet 0/0/3
4 [SwitchB-Eth-Trunk1] port link-type trunk
5 [SwitchB-Eth-Trunk1] port trunk allow-pass vlan 2 to 20
6 [SwitchB-Eth-Trunk1] quit

  # 將接入交換機SwitchC端口GE0/0/1加入VLAN。

1 [SwitchC] interface gigabitethernet 0/0/1
2 [SwitchC-GigabitEthernet0/0/1] port link-type access
3 [SwitchC-GigabitEthernet0/0/1] port default vlan 2
4 [SwitchC-GigabitEthernet0/0/1] quit

  # 將接入交換機SwitchC端口GE0/0/2加入VLAN。

1 [SwitchC] interface gigabitethernet 0/0/2
2 [SwitchC-GigabitEthernet0/0/2] port link-type trunk
3 [SwitchC-GigabitEthernet0/0/2] port trunk allow-pass vlan 2 to 20
4 [SwitchC-GigabitEthernet0/0/2] quit

  # 將接入交換機SwitchC端口GE0/0/3加入VLAN。

1 [SwitchC] interface gigabitethernet 0/0/3
2 [SwitchC-GigabitEthernet0/0/3] port link-type trunk
3 [SwitchC-GigabitEthernet0/0/3] port trunk allow-pass vlan 2 to 20
4 [SwitchC-GigabitEthernet0/0/3] quit

  # 將接入交換機SwitchD端口GE0/0/1加入VLAN。

1 [SwitchD] interface gigabitethernet 0/0/1
2 [SwitchD-GigabitEthernet0/0/1] port link-type access
3 [SwitchD-GigabitEthernet0/0/1] port default vlan 11
4 [SwitchD-GigabitEthernet0/0/1] quit

  # 將接入交換機SwitchD端口GE0/0/2加入VLAN。

1 [SwitchD] interface gigabitethernet 0/0/2
2 [SwitchD-GigabitEthernet0/0/2] port link-type trunk
3 [SwitchD-GigabitEthernet0/0/2] port trunk allow-pass vlan 2 to 20
4 [SwitchD-GigabitEthernet0/0/2] quit

  # 將接入交換機SwitchD端口GE0/0/3加入VLAN。

1 [SwitchD] interface gigabitethernet 0/0/3
2 [SwitchD-GigabitEthernet0/0/3] port link-type trunk
3 [SwitchD-GigabitEthernet0/0/3] port trunk allow-pass vlan 2 to 20
4 [SwitchD-GigabitEthernet0/0/3] quit
  • 驗證配置結果
說明: 

本配置舉例以實例1和實例2為例,因此不用關注實例0中端口的狀態。

  # 在實例1的根橋SwitchA上執行display stp brief命令,查看端口狀態和端口的保護類型,結果如下:

1 [SwitchA] display stp brief
2  MSTID  Port                        Role  STP State       Protection
3    0    GigabitEthernet0/0/1        DESI  FORWARDING      ROOT
4    0    Eth-Trunk1                  DESI  FORWARDING      NONE
5    1    GigabitEthernet0/0/1        DESI  FORWARDING      ROOT
6    1    Eth-Trunk1                  DESI  FORWARDING      NONE
7    2    GigabitEthernet0/0/1        DESI  FORWARDING      ROOT
8    2    Eth-Trunk1                  ROOT  FORWARDING      NONE

  在MSTI1中,由於SwitchA是根橋,SwitchA的端口Eth-Trunk1和GE0/0/1成為指定端口。在MSTI2中,SwitchA的端口GE0/0/1成為指定端口,端口Eth-Trunk1成為根端口。

  # 在實例2的根橋SwitchB上執行display stp brief命令,結果如下:

1 [SwitchB] display stp brief
2  MSTID  Port                        Role  STP State       Protection
3    0    GigabitEthernet0/0/1        DESI  FORWARDING      ROOT
4    0    Eth-Trunk1                  ROOT  FORWARDING      NONE
5    1    GigabitEthernet0/0/1        DESI  FORWARDING      ROOT
6    1    Eth-Trunk1                  ROOT  FORWARDING      NONE
7    2    GigabitEthernet0/0/1        DESI  FORWARDING      ROOT
8    2    Eth-Trunk1                  DESI  FORWARDING      NONE

  在MSTI2中,由於SwitchB是根橋,端口GE0/0/1和Eth-Trunk1在MSTI2中成為指定端口。在MSTI1中,SwitchB的端口GE0/0/1成為指定端口,端口Eth-Trunk1成為根端口。

  # 在接入交換機SwitchC上執行display stp interface brief命令,結果如下:

1 [SwitchC] display stp interface gigabitethernet 0/0/3 brief
2  MSTID  Port                        Role  STP State       Protection
3    0    GigabitEthernet0/0/3        ROOT  FORWARDING      NONE
4    1    GigabitEthernet0/0/3        ROOT  FORWARDING      NONE
5    2    GigabitEthernet0/0/3        ROOT  FORWARDING      NONE
1 [SwitchC] display stp interface gigabitethernet 0/0/2 brief
2  MSTID  Port                        Role  STP State       Protection
3    0    GigabitEthernet0/0/2        DESI  FORWARDING      NONE
4    1    GigabitEthernet0/0/2        DESI  FORWARDING      NONE
5    2    GigabitEthernet0/0/2        ALTE  DISCARDING      NONE

  SwitchC的端口GE0/0/3在MSTI1和MSTI2中為根端口。SwitchC的另一個端口GE0/0/2,在MSTI2中被阻塞,在MSTI1中被計算為指定端口。

  # 在接入交換機SwitchD上執行display stp interface brief命令,結果如下:

1 [SwitchD] display stp interface gigabitethernet 0/0/3 brief
2  MSTID  Port                        Role  STP State       Protection
3    0    GigabitEthernet0/0/3        ROOT  FORWARDING      NONE
4    1    GigabitEthernet0/0/3        ROOT  FORWARDING      NONE
5    2    GigabitEthernet0/0/3        ROOT  FORWARDING      NONE
1 [SwitchD] display stp interface gigabitethernet 0/0/2 brief
2  MSTID  Port                        Role  STP State       Protection
3    0    GigabitEthernet0/0/2        ALTE  DISCARDING      NONE
4    1    GigabitEthernet0/0/2        ALTE  DISCARDING      NONE
5    2    GigabitEthernet0/0/2        DESI  FORWARDING      NONE

  SwitchD的端口GE0/0/3在MSTI1和MSTI2中為根端口。SwitchD的另一個端口GE0/0/2,在MSTI1中被阻塞,在MSTI2中被計算為指定端口。