STP协议的原理与配置

STP协议的原理与配置

1. STP原理

1.1、环路引起的问题

在以太网中,二层网络的环路会带来广播风暴,MAC地址表震荡,重复数据帧等问题,为解决交换网络中的环路问题,提出了STP。

1.2、STP工作原理

STP的主要作用:
消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。

STP通过阻塞端口来消除环路,并能够实现链路备份的目的。

1.3 STP操作

STP中定义了三种端口角色:指定端口(Designated Port),根端口()和预备端口(Alternate Port)。

1. 选举一个根桥

STP中根桥的选举依据的是桥ID,STP中的每个交换机都会有一个桥ID(Bridge ID) 。桥ID由16位的桥优先级(Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0~65535,默认值为32768。优先级最高的设备(桥ID最小)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。

交换机启动后就自动开始进行生成树收敛计算。默认情况下,所有交换机启动时都认为自己是根桥,自己的所有端口都为指定端口,这样BPDU报文就可以通过所有端口转发。对端交换机收到BPDU报文后,会比较BPDU中的根桥ID和自己的桥ID。如果收到的BPDU报文中的桥ID优先级低,接收交换机会继续通告自己的配置BPDU报文给邻居交换机。如果收到的BPDU报文中的桥ID优先级高,则交换机会修改自己的BPDU报文的根桥ID字段,宣告新的根桥。

2. 每个非根交换机选举一个根端口

  • 非根交换机在选举根端口时分别依据该端口的根路径开销、对端BID(Bridge ID)、对端PID(Port ID)和本端PID

交换机的每个端口都有一个端口开销(Port Cost)参数,此参数表示该端口发送数据时的开销值,即出端口的开销。STP认为从一个端口接收数据是没有开销的。端口的开销和端口的带宽有关,带宽越高,开销越小。从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有出端口的端口开销总和,即根路径开销RPC(Root Path Cost)。非根桥根据根路径开销来确定到达根桥的最短路径,并生成无环树状网络。根桥的根路径开销是0。
一般情况下,企业网络中会存在多厂商的交换设备,华为X7系列交换机支持多种STP的路径开销计算标准,提供最大程度的兼容性。缺省情况下,华为X7系列交换机使用IEEE 802.1t标准来计算路径开销。
运行STP交换机的每个端口都有一个端口ID,端口ID由端口优先级和端口号构成。端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍。缺省情况下,端口优先级是128。端口ID(port ID)可以用来确定端口角色。
每个非根桥都要选举一个根端口。根端口是距离根桥最近的端口,这个最近的衡量标准是靠累计根路径开销来判定的,即累计根路径开销最小的端口就是根端口。端口收到一个BPDU报文后,抽取该BPDU报文中累计根路径开销字段的值,加上该端口本身的路径开销即为累计根路径开销。如果有两个或两个以上的端口计算得到的累计根路径开销相同,那么选择收到发送者BID最小的那个端口作为根端口。

3. 每个网段选举一个指定端口

  • 非根交换机在选举指定端口时分别依据根路径开销、BID、PID。
  • 未被选举为根端口或指定端口的端口为预备端口,将会被阻塞。

在网段上抑制其他端口(无论是自己的还是其他设备的)发送BPDU报文的端口,就是该网段的指定端口。每个网段都应该有一个指定端口,根桥的所有端口都是指定端口(除非根桥在物理上存在环路)。
指定端口的选举也是首先比较累计根路径开销,累计根路径开销最小的端口就是指定端口。如果累计根路径开销相同,则比较端口所在交换机的桥ID,所在桥ID最小的端口被选举为指定端口。如果通过累计根路径开销和所在桥ID选举不出来,则比较端口ID,端口ID最小的被选举为指定端口。
网络收敛后,只有指定端口和根端口可以转发数据。其他端口为预备端口,被阻塞,不能转发数据,只能够从所连网段的指定交换机接收到BPDU报文,并以此来监视链路的状态。

4. 阻塞非根、非指定端口

端口状态转换

  1. 端口初始化或使能;
  2. 端口被选为根端口或指定端口。
  3. 端口不再是根端口或指定端口。
  4. forward delay计时器超时。
  5. 端口禁用或链路失效。

运行STP协议的设备上端口状态有5种:
1、Forwarding:转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。
2、Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。
3、Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。
4、Blocking(discarding):阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。
5、Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。

2.STP的配置

我们需要知道,在交换机开始运行的时候,传输的是BPDU(网桥协议数据单元)来生成执行生成树协议的,所以有时候开启设备并不能迅速联网。
开启stp

image.png

1.配置为stp模式

stp mode stp
stp_2.png

2.配置A为根桥

[A]stp root primary

3.配置B为备份根桥

[B]stp root secondary

4.配置A,B,D端口路径开销算法为华为计算方法

stp pathcost-standard learcy

5.配置C端口G 0/0/1的开销值为20000

[C]stp pathcost-standard learcy
[C]interface GigabitEthernet 0/0/1
[C-GigabitEthernet0/0/1]stp cost 20000
[C-GigabitEthernet0/0/1]quit

6.配置交换机C和D的G 0/0/2为边缘端口并启用端口的BPDU报文过滤功能

interface G 0/0/2
stp edged-port enable
stp bpdu-filter enable

7.设备A,B,C,D全局启用stp

stp enable

8.检查配置结果

display stp brief
stp_3.png