stp原理学习杂记


1、STP作用

  • .对链路进行备份
  • .防止环路

环路的危害;会引发广播风暴、设备mac地址表紊乱、以及mac地址漂移等问题

2、STP基本概念

2.1、桥ID

每台交换机都拥有一个唯一的桥ID,一共8byte,16bit的优先级+48bit的桥mac地址。

2.2、根桥

Stp的一系列计算均以根桥为参考点,stp工作后第一件事就是选举根桥,在一个交换网络中,根桥只有一个。

网络中最小桥ID的交换机为根桥,比较时,首先比较的是优先级,如果优先级相等才比较mac。

华为默认桥优先级为32768,取值范围0~61440,必须为4096倍数。

2.3、开销(cost)与根路径开销(RPC)

每个激活stp的接口都维护一个cost,接口cost主要用于计算rpc,也就是到达根的开销。接口缺省cost除了与速率、工作模式有关还与交换机使用的stp cost计算方式有关。

华为支持的计算方式:

  • .dot1d-1998:IEEE802.1D-1998标准方法
  • .dot1t:IEEE802.1t标准方法
  • .legacy:华为私有计算方法

修改命令:stp pathcost-standard xxx

如需要修改,需要保证交换网络中所有stp设备使用一致的计算方法。

开销越小越优。

2.4、接口ID

运行stp的交换机使用接口id标识每个接口,用于特定场景下选举指定接口,长度16bit,4bit优先级+12bit接口编号,s5700默认为128。

修改命令:接口模式下 stp port priority xxx

取值范围0~240,必须为16的倍数。

3、Stp基本操作过程

3.1、在交换网络中选举一个根桥

桥id最小的交换机将成为根桥,一个交换网络只有一个根桥。

Stp正常工作依赖于该协议使用的报文(BPDU)正常交互,携带stp计算的关键数据

根桥地位具有抢占性,如stp完成收敛后,接入一台比现有根桥桥id小的交换机,那么该交换机将成为该交换网络的新根桥,stp将重新收敛、重新计算网络拓扑,可能引发网络震荡。

3.2、每个非根桥上选举一个根接口RP

非根桥:在一个交换网络中,除了根桥,其余交换机都是非根桥。

根接口:非根桥上所有接口收到最优BPDU的接口,一个非根桥只会选举一个。

在stp完成收敛后,根桥会周期性的向网络中发送BPDU,而非根桥会周期性的在自己的根接口RP收到BPDU并沿着stp树向下游转发。

3.3、选举指定接口DP

Stp在每条链路中选举一个指定接口,这个接口是该链路到达根桥的最优接口,DP还负责向该链路发送BPDU。

选举过程:对于非根桥而言,其所有接口收到最优的BPDU接口将成为RP,随后该非根桥使用接收的最优BPDU为本设备其他接口各计算一个BPDU,然后使用该BPDU与相应接口维护的BPDU进行比较,如果前者更优,该接口为DP,所保存的BPDU也会被替换,使用替代后的BPDU从该DP接口转发给下游交换机;如果后者更优,那么该接口成为非指定接口AP。

3.4、阻塞非指定接口AP

经过stp计算后,某个接口既不是RP也不是DP,那么他就是非指定接口AP,该接口将被STP阻塞,如此环路就被打破了。

不会转发和接收业务流量,不会发送BPDU,但是会侦听BPDU感知拓扑变更情况。

4、Stp报文

Stp的BPDU有两种类型:配置BPDU及TNC BPDU

BDPU载荷被直接封装在以太网数据帧中,数据帧的目的mac地址是组播mac地址:0180-c200-0000

4.1、配置BPDU

配置BPDU是stp进行拓扑计算的关键。

在交换网络初始化过程中,每台交换机都从自己激活stp的接口向外发送配置BPDU。

在stp收敛完成后,只有根桥才会周期性的发送配置BPDU,缺省以2s为周期,修改命令:stp timer hello

非根桥则会在自己的RP端口接收到上游发来的配置BPDU,并立即被触发而产生自己的配置BPDU,然后从自己的DP发送出去。

配置BPDU报文格式

字节数字段描述
2协议IDStp而言,该字段总为0
1协议版本IDStp而言,该字段总为0
1BPDU类型值为0x00表示为配置BPDU;值为0x80为TCN BPDU
1标志flagStp而言,该字段8bit用于网络拓扑变化标志,stp只使用了该字段的最高和最低两个比特位,最低位是TC(拓扑变更标志),最高位是TCA(拓扑变更确认标志)
8根桥ID根桥的桥ID
4根路径开销根路径开销
8网桥ID发送本BPDU的交换机桥ID
2接口ID发送本BPDU的接口ID
2消息寿命message age本BPDU的寿命,在根桥发送的BPDU中为0,此后BPDU每经过一个交换机该字段加1
2最大寿命max ageBPDU最大存活时间,老化时间,默认20s
2Hello时间hello timeBPDU的发送时间间隔,默认2s
2转发延迟forward delay接口在侦听和学习状态停留的时间,默认15s

4.2、TCN BPDU

只有上表的协议ID、协议版本ID、BPDU类型3个字段。

用于在网络拓扑发生变化时向根桥通知变化的发生。

当拓扑发生变化时,远离变更点的交换机无法感知变化,此时它们的mac地址表还是老旧的,会导致数据转发可能出现问题。拓扑发生变化会使用TCN BPDU,以及两种特殊配置BPDU。

  • .TCN BPDU

用于网络拓扑变化时向根桥通知变化,从发现拓扑变化的交换机传递到根桥,从RP接口发送TCN BPDU,会一跳一跳向上游传递直到根桥。

  • .标志字段中TCA比特位被置为1的配置BPDU

当一台交换机收到下游发送来的TCN BPDU时,会使用标志字段TCA比特位置为1的配置BPDU(拓扑变更确认)回应对方并向上游发送TCN BPDU。

  • .标志字段中TC比特位被置为1的配置BPDU

根桥收到TCN BPDU后,意识到拓扑的变化,会将该变化通知全网,它将标志字段的TC比特位置为1的配置BPDU向网络中泛洪。

网络中交换机收到该配置BPDU后,会立即将其mac地址表的老化时间从原有值调整到一个较小的值(等于转发延迟时间),使mac地址表尽快刷新。
1.png

5、Stp时间参数

受几个时间参数影响,一个STP接口从阻塞状态到转发状态至少花费30~50s

5.1、Hello time(hello时间)

运行stp交换机发送配置BPDU的时间间隔,默认2s,如需修改,必须在根桥上修改。

5.2、Forward delay(转发延迟)

运行stp的接口从侦听状态进入学习状态,或从学习状态进入转发状态的时间延迟,默认15s。

为了避免stp收敛过程中网络中可能出现临时环路或数据帧泛洪现象,定义了侦听和学习两个状态,并且接口从阻塞到转发必须经过这两个状态,所以一个阻塞端口被选举为RP或DP后,进入转发状态至少需要30s。

5.3、Max age(最大生存时间)

BPDU最大生存时间,也称为老化时间,默认20s。

非根桥RP端口为例,该接口保存着来自上游的最优BPDU,这个BPDU有一个最大生存时间,如果在这个时间之前再次收到上游的BPDU,该时间重置,如果超时没有收到,则该接口保存的BPDU老化,该设备将在接口上重新选择最优BPDU,也就是重新选举RP。

6、BPDU比较原则

在计算拓扑过程中,一个非常重要的内容就是配置BPDU的比较。

Stp按如下顺序选择最优配置BPDU:

  • .最小的根桥ID
  • .最小的RPC
  • .最小的网桥ID
  • .最小的接口ID

第一条用于根桥选举,其余用于选举RP和DP。

7、BPDU的交换与拓扑计算

初始状况下,交换网络中都认为自己是根桥,这些设备开始运行后从自己激活了STP的接口发送配置BPDU。

  • .由于都认为自己是根桥,因此在它们各自发送的配置BPDU中,根桥ID字段都是写自己的桥ID,而RPC字段写0,网桥ID字段写该BPDU发送者桥ID,接口ID字段填写发送该BPDU的接口的接口ID。
    2.png
  • .收到对方发送的配置BPDU后开始进行BPDU比较,如图,sw1的BPDU优,SW1认定自己是根桥,并继续周期性从自己接口发送BPDU。
  • .接下来sw2开始RP选举,由于sw2在ge0/0/3及ge0/0/4接收的BPDU都比本地BPDU优,因此它使用对方的BPDU更新自己本地的BPDU,然后sw2比较哦自己所有接口的BPDU,拥有最优BPDU的接口为RP。
    3.png
  • .RP选举出来后,使用RP接口保存的最优BPDU为其他接口计算BPDU。然后与该接口接收到的BPDU比较,优就为DP,相反为非指定端口。

计算规则:

在根桥ID字段写入最优BPDU中的根桥ID

在RPC字段中写入最优RPC与RP的cost之和

在网桥ID字段写入本设备的桥ID

接口ID字段写入该接口的ID
4.png

  • .阻塞非指定端口

8、Stp接口状态

状态描述
禁用disable不能收发BPDU,也不能收发业务数据,例如接口down
阻塞blocking被stp阻塞,不能发送BPDU,但是会持续侦听BPDU,不进行业务数据收发,也不进行mac学习
侦听listening当接口处于该状态时,表明stp初步认定该接口为RP或DP,但任然处于stp计算过程中,此状态可以收发BPDU,但不能收发业务数据,不进行mac学习
学习learning会侦听业务数据但不会转发,会进行mac地址学习
转发forwarding正常收发业务数据,进行BPDU处理,接口角色必须是RP或DP才能达到该状态

5.png

声明:朱木木的个人博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - stp原理学习杂记


Carpe Diem and Do what I like