网络:STP技术

​​​​​​

1. 产生背景

  1. 冗余和备份的组网会产生环路。
  2. 非冗余和备份的组网会导致单点故障。
  3. STP:

        既能破除环路,又能解决单点故障。

        STP协议的诞生:生成树协议。

2. 作用

  1. 消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
  2. 链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络联通。
  3. STP开启命令:stp enable
  4. STP关闭命令:stp disable
  5. STP技术当中涉及到的BPDU报文
    1. STP的正常工作依赖于BPDU报文的泛洪(Bridge Protocol Data Unit,网桥协议数据单元),是一个组播报文。
    2. BID中报文的优先级默认是32768,即2的15次方。BID中包含优先级和MAC。
  6. STP使用命令
    1. 配置stp优先级:stp priority 0-61440] #默认是32768,步长是4096,即只能配置4096的倍数。
    2. 查看stp简要信息:display stp brief。
    3. 指定生成树协议类型(STP/RSTP/MSTP):stp mode stp/rstp/mstp #默认是MSTP。
      1. STP:收敛比较慢。
      2. RSTP:收敛比STP快。
      3. MSTP:在RSTP的基础上,增加了一些功能。
    4. 指定交换机为根桥:stp root primary #这台交换机的优先级为0
    5. 指定交换机为次根桥:stp root secondary #这台交换机的优先级为4096
    6. 启用生成树:stp enable

3. BPDU报文格式

  1. 报文说明
字节说明
Protocol Identifier2总是0
Protocol Version Identifier1总是0
BPDU Type1

当前BPDU类型:

  • 0x00:配置BPDU
  • 0x80:TCN BPDU
Flags1

网络拓扑变化标志:

  • 最低位=TC(Topology Change,拓扑变化)标志。
  • 最高位=TCA(Topology Change Acknowledgment,拓扑变化确认)标志。
Root Identifier8当前根桥的BID。
Root Path Cost4本端口累计到根桥的开销。
Bridge Identifier8本交换设备的BID。
Port Identifier2发送该BPDU的端口ID。
Message Age2

该BPDU的消息年龄。

如果配置BPDU是根桥发出的,则Message Age为0。否则,Message Age是从根桥发送到当前桥接收到BPDU的总时间,包括传输延时等。实际实现中,配置BPDU报文经过一个桥,Message Age增加1。 

Max Age2消息老化年龄。
Hello Time2发送两个相邻BPDU的时间间隔。
Forword Delay2控制Listening和Learning状态的持续时间。

        2. BPDU的重要参数

字段描述
根的BID根交换机的BID
到根的路径开销设备到底root交换机的开销(入口开销之和)
发送设备的BID发生设备的BID
发送设备的PID

发送设备的PID

        Bridge ID

                桥ID(Bridge ID)是交换机的STP标示符,一共8个字节。由2个字节的优先级和6个字节的MAC地址构成。

优先级MAC地址

                                                2字节                     6字节

  • 桥优先级缺省为32768,可以手工修改。
  • MAC地址为交换机的背板MAC。
  • 网络中Bridge ID最小的交换机将成为根桥。     
  • 配置优先级的时候,优先级只能配置为4096的倍数(只能配置为0、4096、8192、12288等)
  • 现网中优先级都是一样,会比较设备的MAC地址,越小越优先。
    • stp root primary #这条命令等同于stp priority 0,作用是把该设备设置为根桥(ROOT)。
    • stp root secondary #这条命令等同于 stp priority 4096,作用是把该设备设置为备根桥(ROOT)。
  • 路径开销
    • 路径开销与端口的带宽成反比。
    • 华为设备支持的路由开销计算标准:802.1d-1998、802.1t及legacy,其中legacy是华为私有标准,华为交换机默认选择802.1t标准。
带宽802.1t802.1d
10Mbps2000000100
100Mbps20000019
1000Mbps200004
10000Mbps20002

        根桥发送出来的BPDU中,cost = 0,STP认为从根发送数据是没有开销的。

        端口ID

        端口ID(2字节)= 端口优先级(1字节)+端口编号(1字节)

                                                                   PORT ID

优先级端口编号

缺省优先级是128,范围是0~255,越小越优先。

在接口下执行该命令:stp port priority 128 #接口优先级是16的倍数。

4. STP选举过程

  1. 每个交换网络选举一个根桥(Root Bridge)

        根据每台设备的优先级和MAC地址进行比较,越小越优先。

      2. 每个非根桥上选举一个根端口(Root Port)

        RP端口是到达ROOT设备最优路径的一个端口。RP端口是非根设备上有且仅有一个,是根设备到达非根设备的最优路径。在每条链路上选择指定端口DP。

      3. 每个链路选举一个指定端口(Designated Port)

        DP端口是用来发送BPDU报文的。

      4. 阻塞非指定端口(Non Designated Port)

        在STP里面对应的是AP端口(阻塞端口)。

RPC :Root Path Cost

        STP中的开销是入向开销之和,而OSPF是出接口开销之和。开销是由根到非根设备等开销之和。

        网络稳定后,只有根设备有权限发送BPDU。

5. 根桥的选举

        每个交换网络选举一个根交换机(Root Bridge),网络中Bridge ID最小的交换机被选举为根桥,也就是设备的优先级,越小越优先。在一个交换网络里面,只有一个ROOT设备,另外设备是非ROOT设备。

6. 只有ROOT交换机才能发送BPDU,非根交换机会进行转发BPDU。

        1. 每一台交换机启动STP后,都认为自己是根桥。

        2. 所有的端口都是DP(指定端口)。

        3. 相互发送BPDU后,会比较优先级和MAC地址。

        4. 优先级越小越优先,MAC地址越小越优先。

7. 根端口的选举

        1. RP端口在非根交换机上选举。

        2. 非根交换机上有且只有一个RP端口。

        3. RP端口是到达ROOT交换机的最优路径。

        选举规则:

        1. 该端口到达ROOT交换机的开销(入口开销之和)推荐这种方式选举RP端口。

        2. 发送设备的BID。

        3. 对端设备的PID。

        4. 比较自身的PID。

8. 指定端口的选举

        1. 每个网段选举一个指定端口(Designated Port)。

        2. ROOT交换机的端口几乎都为DP端口。

        3. DP端口的作用是用来发送BPDU。

        选举规则:

        1. 该端口到达ROOT交换机的开销(入口开销之和)(一般不建议修改这一条)。

        2. 发送设备的BID(一般不建议修改这一条)。

        3. 对端设备的PID。

        4. 自身的PID。

9. 阻塞AP端口的选举

        1. 

        网络收敛后

                1. 只有指定端口和根端口可以转发数据。

                2. 其他端口为预备端口,被阻塞,不能转发数据,不能发送BPDU,但可以接收BPDU,只能从所连网段的指定交换机接收到BPDU报文,并以此来监视链路的状态。

        注意:AP端口是一个逻辑的阻塞端口。这个端口可以接收BPDU报文,但是不能发送BPDU报文,也不能转发用户流量。

10. 总结

        

端口角色描述
Root Port端口所在交换机上离根最近的端口,处于转发状态。
Designated Port指定端口向非根交换机转发配置BPDU的端口,处于转发状态。
Alternate Port 预备端口

预不向所连网段转发任何数据,处于阻塞状态。

STP中对应Block,RSTP中对应Discarding。

11. STP的状态迁移过程

        1. 端口初始化或者使能。

        2. 端口被选为根端口或指定端口。

        3. 端口不再是根端口或指定端口。

        4. Forward Delay计时器超时。

        5. 端口禁用或链路失效。

        Disable状态 —— Blocking状态 -—— Listening侦听状态 —— Learning 状态 —— Forwarding状态

        Forwarding:转发状态。端口既可转发用户流量,又可转发BPDU报文。

        Learning:学习状态。端口可根据接收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。

        Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。

12. DP接口从开始阻塞状态到转发BPDU,需要30s。

        Listening到Learning状态,需要15s。

        Learning到Forwarding状态,需要15s。

        AP接口一直不会转发BPDU,会一直处于Blocking状态。

        DP和RP接口最终都是转发状态。

13. STP当中的计时器

        hello计算器:默认值2s,用来发送BPDU的时间间隔。

        max age 时间:默认20s,设备在20s内没有收到BPDU,会重新进行选举。

        FW DLY(转发延迟):默认值15s,用来解决临时环路。

14. 根桥故障

  1. 非根桥会在BPDU老化之后开始根桥的重新选举。主root宕机后会由备root设备取代,待主root设备恢复后,主root会抢占原备root设备。

15. ROOT设备故障

        非ROOT设备的重新收敛,需要50s。

16. 直连链路故障

        SWB检测到直连链路物理故障后,会将预备端口转换为根端口。

        SWB的预备端口会在30s后恢复到转发状态。

        端口角色变化是秒变。但状态变化,需要30s。

17. 非直连链路故障

        非直连链路故障后,SWC的预备端口恢复到转发状态大约需要50s。

        原因是原AP端口收到的BPDU比较优,当非直连链路故障的时候,AP端口收到的BPDU就不优了,因此需要等待20s。

18. 拓扑改变导致MAC地址表错误

        MAC地址表项的默认老化时间是300s。在这段时间内,SWB无法将数据从G/0/0/2端口转发给主机B。

TCN:拓扑改变报文。

19. STP的缺点:

        网络的收敛比较慢,需要30~50秒的收敛时间。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值