「實例」華為:深入理解STP原理與配置

在生產環境中,我們經常會用到STP協議,深入理解STP協議對日後的工作和排錯也是很有幫助的,今天來回顧一下STP原理和如何配置STP。


簡介

生成樹協議和其他協議一樣,是隨著網絡的不斷髮展而不斷更新換代的。最初被廣泛應用的是IEEE802.1D-1998 STP(Spanning Tree Protocol,生成樹協議),隨後以它為基礎產生了IEEE 802.1w RSTP(Rapid Spanning Tree Protocol,快速生成樹協議)和IEEE 802.1s MSTP(Multiple Spanning Tree Protocol,多生成樹協議)

三種生成樹協議特點比較:

STP:

  1. 形成一棵無環路的樹,解決廣播風暴並實現冗餘備份。
  2. 收斂速度較慢。
  3. 無需區分用戶或業務流量,所有VLAN共享一棵生成樹。

RSTP:

  1. 形成一棵無環路的樹,解決廣播風暴並實現冗餘備份。
  2. 收斂速度快。
  3. 無需區分用戶或業務流量,所有VLAN共享一棵生成樹。

MSTP:

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


STP原理

協商原則

STP協議是根據4個維度進行選舉協商的,設備之間通過發送BPDU報文,經過4個維度的比較,最終會阻塞綜合能力最差的端口。

選舉維度(橋ID,累計根路徑開銷,發送設備BID,發送端口PID)

「實例」華為:深入理解STP原理與配置

角色和狀態

經過4個維度的比較,最終會協商出端口的角色和狀態,確定報文流量的轉發路徑。STP角色的定義,如下圖所示。

「實例」華為:深入理解STP原理與配置

根橋:就是橋ID最小的設備。橋ID是由16位的橋優先級與橋MAC地址構成。BID橋優先級佔據高16位,其餘的低48位是MAC地址。華為交換機默認橋優先級都是32768。所以在不修改橋優先級時,MAC地址最小的設備就是根橋。

指定端口:就是負責轉發BPDU報文的端口。根橋上的端口都是指定端口。該端口可以正常轉發流量。

根端口:就是去往根橋路徑開銷最小的端口。該端口可以正常轉發流量。

阻塞端口:就是禁止轉發流量的端口。

從上面的官方定義,可以看出:STP協商完成後,端口要麼被阻塞,要麼正常轉發報文。其實在STP進行協商的過程中,是有一些中間狀態的。

「實例」華為:深入理解STP原理與配置


報文格式

STP協議報文是通過BPDU報文封裝的,目的MAC是組播MAC:01-80-C2-00-00-00,封裝格式是IEEE 802.3。

「實例」華為:深入理解STP原理與配置

BPDU報文的分類

配置BPDU報文:根據Flags標記位,分為3類

  • 第一類配置BPDU報文: Flags的TCA和TC位都置為0的配置BPDU報文
  • 第二類配置BPDU報文: Flags的TCA和TC位都置為1的配置BPDU報文
  • 第三類配置BPDU報文:Flags的TCA位置為0,TC位置為1的配置BPDU報文

TCN BPDU報文:BPDU Type為0x80的BPDU報文,叫做TCN BPDU報文


BPDU報文的處理流程

「實例」華為:深入理解STP原理與配置


BPDU報文格式

第一類配置BPDU報文: Flags的TCA和TC位都置為0的配置BPDU報文

該報文用於STP狀態的協商和維持。具體報文格式如下:

「實例」華為:深入理解STP原理與配置

第二類配置BPDU報文: Flags的TCA和TC位都置為1的配置BPDU報文

該報文用於通知下游設備停止發送TCN BPDU報文。具體報文格式如下:

「實例」華為:深入理解STP原理與配置

第二類配置BPDU報文: Flags的TCA位置為0,TC位置為1的配置BPDU報文

該報文用於通知下游設備刪除MAC地址表項。具體報文格式如下:

「實例」華為:深入理解STP原理與配置

TCN BPDU報文:BPDU Type為0x80的BPDU報文,叫做TCN BPDU報文,用於通知上游設備網絡拓撲變更。具體報文格式如下:

「實例」華為:深入理解STP原理與配置

配置舉例

配置思路

採用如下的思路配置STP:

  1. 配置模式是STP模式。
  2. 配置SwitchA為根橋,SwitchB為備份根橋。
  3. 統一使用默認路徑開銷。華為交換機默認的路徑開銷計算標準使用的是標準的dot1t。GE接口默認路徑開銷是20000,而Ethernet接口默認路徑開銷是200000。注意:eNSP模擬器中,STP的路徑開銷默認是1。
  4. SwitchC和SwitchD的GE0/0/3端口去使能STP協議。
  5. SwitchA、SwitchB、SwitchC和SwitchD使能STP協議。

操作步驟

配置模式為STP模式。

<code><huawei> system-view[HUAWEI] sysname SwitchA[SwitchA] stp mode stp<huawei> system-view[HUAWEI] sysname SwitchB[SwitchB] stp mode stp<huawei> system-view[HUAWEI] sysname SwitchC[SwitchC] stp mode stp<huawei> system-view[HUAWEI] sysname SwitchD[SwitchD] stp mode stp/<huawei>/<huawei>/<huawei>/<huawei>/<code>

配置SwitchA為根橋,SwitchB為備份根橋。

[SwitchA] stp root primary //也可以使用命令stp priority 0 配置優先級為0,和stp root primary的作用是一樣的。

[SwitchB] stp root secondary //也可以使用命令stp priority 4096 配置優先級為4096,和stp root secondary的作用是一樣的。

去使能SwitchB和SwitchC設備GE0/0/3端口的STP功能。

[SwitchC] interface gigabitethernet0/0/3

<code>[SwitchC-GigabitEthernet0/0/3] stp disable[SwitchC-GigabitEthernet0/0/3] quit[SwitchD] interface gigabitethernet 0/0/3[SwitchD-GigabitEthernet0/0/3] stp disable[SwitchD-GigabitEthernet0/0/3] quit/<code>

全局使能STP功能。

<code>[SwitchA] stp enable[SwitchB] stp enable[SwitchC] stp enable[SwitchD] stp enabl/<code>

驗證配置結果

查看STP簡要信息,通過STP簡要信息可以快速的看出端口的角色和狀態。

「實例」華為:深入理解STP原理與配置


分享到:


相關文章: