STP

STP(IEEE802.1d)

作用

  • 消除2层环路
  • 保证网络高可靠性

BPDU

  • 配置BPDU 完成STP拓扑计算
  • TCN BPDU 拓扑改变时完成收敛

STP算法

  1. 网桥角色
    • 选举根桥
    • 比较桥ID=优先级+MAC地址 优先级默认为32768,范围是0-61440 ,更改优先级必须是4096的倍数
  2. 端口角色
    • 根端口
      • 在哪儿选:在每台非根网桥上选举一个端口
      • 怎么选
        1. 比较端口去往根桥的开销,小的为RP
        2. 比较对端设备的桥ID 小的为RP
        3. 比较端对设备的端口ID 小的为RP
        4. 比较本端设备的端口ID 小的为RP
    • 指定端口
      • 在哪儿选:在每条链路两端选举一个指定端口
      • 怎么选
        1. 比较网桥去往根桥的开销,小的为指定桥,连接指定桥的端口为DP
        2. 比较网桥的桥ID,小的为指定桥,连接指定桥的端口为DP
        3. 比较网桥自身的端口ID,小的为指定桥,连接指定桥的端口为DP
    • 阻塞端口
      • 既不是根端口也不是指定端口的端口是阻塞端口

STP的收敛

  1. STP的端口状态,blocking,listening,learning,forwarding
  2. STP的收敛最快30S,最慢50S 。直接链路故障是30S,间接链路故障是50S
  3. 链路频繁震荡会导致STP的环境失去连通性,因为从blocking到转发需要2个转发延迟

配置

  1. Comware v5默认关闭,v7默认开启,开启生成树默认版本是MSTP
  2. 人工干预STP根桥的位置
  3. 通过dis stp brief 查看STP的状态现象

TCN BPDU

  1. 网络拓扑发生改变发送TCN BPDU,如果没有TCN BPDU对于下行流量需要30S-50S的最慢收敛时间
  2. 有端口转变为Forwarding状态,且该网桥至少包含一个指定端口
  3. 有端口从Forwarding状态或Learning状态转变为Blocking状态才会发送TCN BPDU
  4. 对于根桥设备收到TCN BPDU通过发送TCA置位BPDU做确认。
  5. 根桥发送TC置位的BPDU通知其他非根桥设备缩短MAC地址表的老化时间为50S
  6. STP flag字段使用了2位:0和第7位。0:TC位;7:TCA位

RSTP(IEEE802.1w)

  1. 相比STP算法一样,只是对收敛速度做了优化
  2. 减少了端口状态
    • discarding
    • learning
    • forwarding
  3. 增加了端口角色
    • alternate 备份根端口 如果根端口DOWN,备份根端口对端的DP是UP状态,则立马进入转发状态。
    • backup 在多点可达环境中备份指定端口
  4. flag字段用到了全8位
    • 0-tc
    • 1-P
    • 2、3-端口角色
    • 4、5-端口状态
    • 6-A
    • 7-TCA
  5. 指定端口的快速收敛
    • 多点可达:备份指定端口
    • 点对点:点对点链路是设备
      • P/A协商
        1. 指定端口向下发送P置位BPDU
        2. 检查接收到P置位BPDU是否为根端口,是,则进行同步。否则不做处理
        3. 同步是阻塞本网桥的指定端口除边缘端口,然后根端口进入转发状态,同时发送A置位BPDU,收到,DP进入转发状态
        4. P/A不依赖任何的定时器,能在新增链路或者链路恢复时实现快速的收敛,点对点链路是设备和主机
    • 边缘端口
      1. 边缘端口是一种快速收敛的机制
      2. 边缘端口是一个指定端口
      3. 边缘端口收到BPDU会失去快速收敛的特性
      4. 边缘端口用于连接主机
      5. 边缘端口下的主机上线不会触发拓扑改变
  6. BPDU的发送不再只有根桥能发,非根桥也能发,发送时间是2S,死亡时间是6S。
  7. 阻塞端口对于次优BPDU能做处理,目的是让发送次优BPDU的设备能进快确定角色进入转发状态
  8. 没有使用TCN BPDU
  9. 拓扑触发条件:非边缘端口状态变成forwarding状态
  10. 处理方式:从所有DP和RP发送TC置位BPDU,清除除收到TC报文端口之外的所有DP和RP的学到的MAC,而不是像STP缩短老化时间
  11. 和STP设备混合使用会失去快速收敛特性,注意是该接口

MSTP(IEEE 802.1s)

  1. STP和RSTP都是单树的,不能实现在2层网络中实现负载分担
  2. MSTP基于实例构建多棵树,能够实现数据的负载分担
  3. MSTP可以构建多个MST域如果要保证网桥在同一个MST的域
    • 域名一致 默认是以交换机的MAC地址做为域名
    • 修订级别 默认是0 没实际含义 可以修改
    • VLAN和实例的映射关系一致
  4. CST、IST、CIST、总根和域根
    • 把域逻辑成网桥,逻辑网桥之间构建的生成树是CST
    • 域内实例0的树指的是IST的树
    • 域内和域间的网桥构建的树是CIST
    • 所有启动生成树网桥中桥ID最小的网桥是总根
    • 域内IST的网桥去往总根开销最小的设备为域根
  5. msti和msti的域根
    • 非实例0的树为msti的树
    • msti树的根桥为msti的域根
    • 不同msti的树一般对应不同的拓扑结构,也可以是相同的。
  6. 总根比较桥id,IST根比较去往总共开销,MSTI域根比较桥id
  7. IST域内可以存在2个或者多个域边界端口,域根指向总根的端口为master端口可以理解为CST的RP,连接其他域的边界端口可以理解为CST的DP
  8. MSTP的计算包括 CST的计算,IST的计算,MSTI的计算,但是在完成收敛的时候是同时进行的
  9. CST计算:把域逻辑成网桥,逻辑网桥的代表是域根,总根所在域的代表为总根。总根所在的域在CST计算时可以理解为根桥,其余为非根桥,算法和标准的算法一样
  10. IST的计算:域根比较的不是桥ID,而是去往总根最近的。算法和STP一样
  11. MSTI计算,域根比较的桥ID小的算法和STP算法一样
  12. H3C设备和其他设备混合使用要保证网桥工作在同一个MST域需要开启摘要侦听。直接复制收到的摘要发给对端设备,不做摘要计算
  13. MSTP收敛和RSTP一样,和RSTP结合使用的时候,如果RSTP是上游设备,MSTP是下游设备,要在MSTP的设备开启不检查A置位的BPDU。因为MSTP要检查P.A同时置位才同步

STP保护

  • BPDU保护:防止从边缘端口发起对网络的攻击,开启后边缘端口收到BPDU关闭端口
  • 根桥保护:为了防止新加入的设备影响根桥的地位,比如新加入的接入设备抢占核心根桥的位置,导致根桥到接入设备。开启后如果接口收到其他更优的BPDU该接口状态设为discarding状态。
  • 环路保护:在网络拥塞,单通的时候避免环路出现
  • TC保护:防止伪造TC对网络可用性造成影响。TC会使设备清除设备学习到的MAC地址。
    ��的MAC地址。

STP
https://www.intx.work/posts/2407805f.html
发布于
2015年8月20日
更新于
2025年6月29日
许可协议