「实例」华为:深入理解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原理与配置


分享到:


相關文章: