【STP】STP(802.1D)端口状态及拓扑变更

一、STP端口状态

1 写在前面的话:

由于网络设备存在固有的滞后,所以交换网络中也存在数据传播延迟。基于上述原因,拓扑变更就可能发生在交换网络中的不同时间和不同的网段。如果2层接口直接从生成树的Blocking切换到Forwading,就可能会出现暂时的数据环路或者暂时的大量数据泛洪。为了缓解这种问题,在开始转发数据帧之前,端口应当等待新的拓扑信息传播到整个交换网络中。

2 STP计时器

STP有三个非常重要的计时器:
  • Hello Timer                    根网桥周期性发送配置BPDU的时间间隔,缺省为2s
  • Forward Delay Timer     转发延迟计时器,从Listening到Learning状态,或者从Learning转换到Forwarding状态所需要的等待的时间,缺省为15s。
  • Max Age Timer              最大生存时间。在丢弃BPDU之前,网桥用来存储BPDU的时间,缺省为20s。如果一个被阻塞的接口(非指定端口)在收到一个BPDU后,20s的时间内再没有收到BPDU了,则开始进入Listening状态。
网络中的生成树拓扑依附于根网桥的计时器,根桥将BPDU中的计时器传递给所有交换机。对于802.1D的STP而言,端口从Blocking到Forwarding通常要30-50s(30s是15+15,也就是两个转发延迟时间,50s即20+15+15)。

3 STP 定义的端口状态如下:
 【STP】STP(802.1D)端口状态及拓扑变更
关于为什么要定义这么多的端口状态,其实很好理解,拿Learning来说,为什么不让端口一旦被选举为指定端口后立即进入转发状态呢?设想一下,端口激活后,在它上面是没有学习到任何的MAC地址表项的,如果没有Learning状态的话,端口直接进入转发状态,就有可能引发短暂的数据泛洪。

4 STP端口状态转换过程
 【STP】STP(802.1D)端口状态及拓扑变更



二、STP拓扑变更

1 STP拓扑变更概述

当网络拓扑发生变化的时候,最先意识到变化的交换机会从根端口发送TCN BPDU(BPDU报文中TYPE字段=0x80),也就是朝着根桥的方向发送TCN BPDU,这个消息会一跳一跳地传递到根交换机。上联的交换机在收到了该交换机发送上来的TCN BPDU后,除了向它自己的上一级交换机继续发送TCN BPDU外,还需回送一个TCA BPDU(FLAG字段中TCA位为1的配置BPDU)的确认信息给该交换机。当根桥接收到TCN后意识到了拓扑变化,遂向所有网桥发送TC BPDU(FLAG字段中TC位为1的配置BPDU)。
交换机们收到根桥发出来的TC BPDU后,会将自己的MAC地址表的老化时间由缺省的300s减少为15s(转发延迟计时器的时间),根桥发送的这个TC置位一直会持续35s(20+15)。

在发生以下时间时,交换机发送TCN:
  • 对于处于转发和监听状态的接口,过渡到Block状态(链路故障的情况)
  • 端口进入转发状态,并且网桥已经拥有指定端口
  • 非根桥在它的指定端口收到TCN

2 TCN BPDU

TCN BPDU包含3个字段,它与配置BPDU除了type字段之外的前3个字段完全相同。

3 拓扑变更过程 范例
 
 【STP】STP(802.1D)端口状态及拓扑变更

【STP】STP(802.1D)端口状态及拓扑变更

【STP】STP(802.1D)端口状态及拓扑变更


  1. 1SwitchA挂掉;
  2. SwitchB最先检测到拓扑变化,于是产生TCN BPDU并从自己的根端口发送出去(因为根端口是朝着根桥的方向),B将连续发送TCN BPDU直到上游的指定交换机C发送TCN ACK进行确认;
  3. SwitchB收到这个TCN BPDU,回送一个TC ACK位置位的配置BPDU进行确认,同时向自己的根端口转发这个TCN BPDU;
  4. Root收到这个TCN BPDU,回送一个TC ACK位置位的配置BPDU给C;
  5. Root修改自己的配置BPDU,以此来通告整个交换网络关于拓扑变更的情况。 Root在配置BPDU中设置一段时间的拓扑变更(将配置BPDU中FLAG字段的TC位设置为1),这段时间等于Forward Delay Time + Max Age,默认35s。这个配置BPDU消息会泛洪到整个交换网络;
  6. 当交换机收到Root发出的这个TC置位的配置BPDU,它们使用转发延迟计时器(默认15s)来更新其MAC地址表中的条目。也就是说条目的寿命由原来的300s的默认值变成15s,这样能保证MAC地址条目更快速的刷新。交换机将持续这个过程,直到不再从Root收到TC BPDU消息为止。

我们会发现当拓扑变更的时候,就会产生TCN,然而有些情况下TCN的过渡泛洪可能会对网络才成不必要的影响,通过在接入层交换机上、连接PC终端设备的接口设置为portfast可以在一定程度上优化网络,防止由于PC的开关机导致的接入交换机端口updown而产生过多的TCN。

4 BPDU Flags
 
【STP】STP(802.1D)端口状态及拓扑变更




红茶三杯

网络工程 | 项目管理 | 技术培训
学习 沉淀 成长 分享
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值