华为数通 STP、RSTP、MSTP(生成树协议)

为什么需要STP

为了提高网络可靠性,交换网络中通常使用冗余链路。但是冗余链路会给交换网络带来环路风险,并导致广播风暴以及多帧复制,MAC地址不稳定等问题,STP生成树协议可以在提高可靠性的通知又能避免环路带来的各种问题。
STP一般厂商都默认开启,但因为STP收敛慢,无法做负载均衡,所以一般上使用堆叠将多台设备组合成理论上一台设备和链路聚合做到单点链路,避免环路问题。

华为数通 STP、RSTP、MSTP(生成树协议)
如果没有STP,在这种环境下会出现MAC震荡的现象,一个ARP报文会在广播域内重复复制转发,导致ARP表项MAC地址对应的接口一会儿在2一会儿在3类似。
华为数通 STP、RSTP、MSTP(生成树协议)
STP的工作原理就是依靠阻塞端口实现消除环路,还可以做到在活动链路发生故障时,通过恢复阻塞的端口实现连通性,直到故障链路重新上线。

STP的选举机制 流程

  1. 选择根网桥
    • 在所有交换机中选举出一台作为根网桥(root bridge);
      • 选举规则:
        • Bridge-ID小的优先。Bridge-ID(桥ID,BID),用来标识交换机身份。格式:优先级+mac地址,优先级默认是32768,4096倍数。比如:32768.aabb-ccdd-eeff
  2. 选择根端口
    • 每台非根网桥(交换机)选举出一个根端口(root port);
      • 选举规则:
        • 到达根网桥开销小的优先;
        • 对端交换机BID小的优先;端口ID小的优先。 开销(cost),代表路径耗费的代价和成本,带宽越大,开销越小。
        • 在非根桥上选举出离根桥最近的根端口,看去根桥的cost开销,越小越优先,先比开销如果开销一样,比对端BID(也就是交换机ID),再比对端最后本端PID(也就是接口ID)同样越小越优先。
  3. 选择指定端口
    • 每个网段选举出一个指定端口(Designated port)。
      • 选举规则:
        • 到达根网桥开销小的优先;
        • 根桥的端口都是指定端口,以为到达自身根桥的cost都是0
        • 本交换机BID小的优先;端口ID小的优先。 开销(cost),代表路径耗费的代价和成本,带宽越大,开销越小。
  4. 阻塞其它端口
    • 剩下没有角色的端口就是备用端口(Blocked port)
      • 备用端口是因为每两秒一直收到来自根桥的BPDU,端口判断收到的BPDU比我们的端口更优先,所以一直保持20S的阻塞状态,如果20S后没有收到BPDU或者没有比自己更优的BPDU那么它就会经过两个15S进入转发状态。


STP端口状态

华为数通 STP、RSTP、MSTP(生成树协议)
华为数通 STP、RSTP、MSTP(生成树协议)
在现如今的华为交换机中看不到五个状态了,只有现在的三个状态,discarding包含了之前的三个状态,但是实际上还是listening到learning 的15s,learning到forwarding的15s也就是30s
  • disable:禁用状态,被关闭的端口
  • blocking:阻塞状态:接受BPDU,但不发送BPDU,不学习mac地址,不转发数据
  • listening:监听状态,接受BPDU并发送BPDU,不学习mac地址,不转发数据,持续15秒——开始STP选举工作
  • learning:学习状态,接受BPDU并发送BPDU,学习mac地址,不转发数据,持续15秒
  • forwarding:转发状态,接受BPDU并发送BPDU,学习mac地址,转发数据。


STP计时器

  • hello time,2秒,配置BPDU的发送周期;
  • max age,20秒,判断链路故障的时间,10个hello time周期;
  • forwarding delay,15秒,状态切换延迟。(STP初始化流程中的两个15秒,总计30秒)


BPDU – 桥协议数据单元

使用组播:01-80-c2-00-00-00

华为数通 STP、RSTP、MSTP(生成树协议)
max age超时或者端口变更为转发状态时,向根桥发送TCN BPDU报文,途径的上游交换机发送TCA抑制TCN报文,并转发TCN报文直到根桥;
根桥收到TCN后向所有端口发送携带TC置位的configuration BPDU,交换机收到TC置位的配置BPDU后将MAC地址表老化时间缩短为15秒;
在链路故障导致端口角色切换后,MAC地址表默认老化时间为300S,为了更快的更新MAC地址表所以就有了STP的拓扑变更机制加速MAC地址表老化时间。

华为数通 STP、RSTP、MSTP(生成树协议)
华为数通 STP、RSTP、MSTP(生成树协议)


STP配置

华为数通 STP、RSTP、MSTP(生成树协议)
通过命令指定主备根桥的话最好使用第三条命令,自动修改优先级而不是修改bid值
stp cost * 这条命令会影响下游交换机的cost的合,指定阻塞或者指定端口需要注意。
stp port priority * 在cost和bid一致的情况下想要修改阻塞或根端口下使用。


STP的不足

华为数通 STP、RSTP、MSTP(生成树协议)
STP更加是不安全,攻击者只需要更优先根桥,就能抢占。
所以有了RSTPMSTP

作者:Zleoco,如若转载,请注明出处:https://www.zleoco.com/?p=1788

发表回复

您的电子邮箱地址不会被公开。