STP知识点总总结

一、STP概述
STP是一个用于局域网中消除环路的协议。

没有生成树协议会引起:1、广播风暴导致网络不可用;2、 MAC地址表震荡导致MAC地址表被破坏

生成树模型:1、单生成树实例模型;2、多生成树实例模型;3、基于VLAN生成树实例模型。

1、单实例模型:SST(Singles STP),交换机上所有vlan只能使用相同的一个拓扑,华为单实例模型只有STP和RSTP模式
2、多实例模型:MST(Multiple STP),可以自定义实例的数量,可手工指定哪些vlan使用哪些实例。华为默认生成树协议为MSTP。
3、基于vlan实例模型:VBST(vlan-based STP),每个vlan都拥有各自的生成树实例,实例与拓扑之间独立不相关。(此生成树只在特定交换机平台支持,不建议使用)

二、STP基本概念
概念:BID、端口ID、端口成本、端口角色、端口状态

2.1、网桥ID(Bridge ID)
理论上:由16位桥优先级和48位桥MAC地址构成。
实际上:高16位桥优先级中,仅高4位用于优先级,低12位用户扩展(systemID)。
STP中,BID最小值被选为根桥。

2.2、端口ID(Port ID)
PID可能影响指定端口的选举。PID最小值被选为指定端口。
理论上:Port ID长度为2字节,1字节为端口优先级,1字节为端口号
实际上:优先级仅占高4位,低12位为端口号
默认端口优先级为128,即1000,修改优先级可影响端口PID,进而影响指定端口的选举。
华为命令 stp port priority。

2.3、端口成本
每个端口都有端口成本
端口成本计算方法命令 :stp pathcost-standard{ dot1d-1998 | dot1t | legacy } 默认为dot1t
路径开销值命令 :stp cost
路径开销是生成树协议用于选择链路的参考值,端口成本值的取值范围由路径开销计算方法决定。
路径成本:当前交换机到根交换机的路径上所有RP端口的端口成本之和,最小值端口是RP端口。
2.4、端口角色
根端口/Root port
指定端口/Designated port
替代端口/Alternate port
备份端口/Backup port
BPDU包含:{根桥ID、到根桥的成本、邻居交换机BID(收时为邻居、发时为自己)、邻居交换机PID},最小值最优
注意:刚启动时交换机认为自己时根交换机,此时BPDU的根桥ID和邻居交换机BID都为自己的ID
(1)RP端口
最终状态:转发状态
交换机收到最优BPDU的端口为根端口,也是到根桥最近的端口。
1、非根交换机有且只有一个RP端口,根交换机没有RP端口
2、RP端口所在网段的上游对应端口一定是DP端口
3、交换机先确定RP端口,再确定其他角色端口
4、STP模式下,RP端口迁移到转发状态需等待2个forward-delay
(2)DP端口
最终状态:转发状态
网段内通告BPDU的端口为指定端口,拥有指定端口的交换机是该网段的指定交换机。
1、每个网段有且只有一个DP端口,
2、STP模式下,DP端口迁移到转发状态需等待2个forward-delay
(3)AP端口和BP端口
最终状态:丢弃状态
IEEE802.1D-1998中为BP端口(阻塞端口BlockingPort)
IEEE802.1D-2004和802.1w中,阻塞端口细分为AP端口和BP端口,华为不再有阻塞端口概念
AP端口是RP端口的备份端口
BP端口是DP端口的备份端口
在STP和RSTP模式下,AP、BP、RP端口靠持续接收BPDU来保持端口角色,如果收不到BPDU,端口会在超时后发生角色变化。
BP端口(Backup Port)是指当一个接口收到来自自身网桥另一个接口发送的更优BPDU,此端口选为备份端口。

2.5、端口状态
IEEE802.1D-1998标准中定义了5种端口状态Forwarding、 Learning、 Listening、 Blocking、 Disable
IEEEE802.1D-2004和802.1w标准中定义了3中端口状态Forwarding、 Learning、 Discarding

STP模式下,DP和RP在迁移到 forwarding状态过程中,先保持15s的discarding 状态,再保持15s的learning状态(IEEE802.1D-1998中先保持15s的listening状态,再保持15s的learning状态),AP和BP端口一直处于discarding状态。
2.6、计时器
STP和RSTP 中用到了Hello、Forward Delay 和 Max Age 这3个计时器,它们会影响端口状态迁移和收敛时间,可在全局下修改
举例:
stp timer hello 30 (3秒)
stp timer forward-delay 2000 (20秒)
stp temer max-age 3000 (30秒)
默认为 2s 15s 20s
注意:调整计时器一定要在“根交换机”上配置,其他交换机使用根交换机的计时器工作,根交换机通过BPDU把时间通告到全网。
华为交换机STP/RSTP实现中,若收到次的BPDU,端口户立即处理并计算新的端口角色。若接收不到BPDU,端口角色也会在至少3个hello 间隔后重新计算,整个过程MAX Age不再参与。

三、STP报文类型
STP有2种报文结构:
一种是配置BPDU(Configuration BPDU)
一种是拓扑变化通知BPDU(TCN BPDU)

配置BPDU是一种心跳报文,只要端口使能STP,则配置BPDU会被周期通告,
TCN BPDU是在设备检测到网络拓扑发生变化时才发出。

3.1、802.3帧结构
BPDU报文被封装在802.3帧中,目的MAC是组播MAC:0180-C200-0000,Length/Type 字段为其后内容长度(不考虑CRC),后面是LLC头,LLC之后是BPDU报文头。
3.2、配置BPDU
通常所说的BPDU报文多数指配置BPDU
在初始化过程中,每个根交换机都会主动发送配置BPDU。在网络拓扑稳定后,只有根桥主动发送配置BPDU,其他桥在收到上游传来的配置BPDU后,才转发自己的配置BPDU。配置BPDU的长度要35个Byte,包含了 桥ID、路径开销、端口ID等参数。只有当发送者的BID或端口的PID两个字段中至少有一个和本桥接收端口不同,BPDU报文才会被处理,否则丢弃,避免处理和本端口信息一致的BPDU报文。
配置BPDU会在以下3种情况下产生:
1、只要端口使能STP,配置BPDU就会按照Hello Time 定时器规定的时间间隔从指定端口发出。
2、当根端口收到配置BPDU时,根端口所在的设备会向自己的每一个指定端口复制一份配置BPDU。
3、当指定端口收到比自己差的配置BPDU时,立刻触发向下游设备发送自己的BPDU。
四、拓扑收敛计算
1、当交换机RP端口失效,交换机所有端口角色重新计算,并把自己当成根桥,端口初始化为DP/Discarding,开始通告自己的BPDU。
2、当交换机收到次的BPDU后,会比较端口缓存的BPDU:
若比缓存的BPDU好,则端口接收BPDU并重新计算端口角色;
若没有缓存的好,则忽略,端口角色不变,并等待Max-Age超时(默认20s);
3、若链路DP失效后,对端/本端交换机超过Max-Age仍未收到BPDU,则重新计算端口角色。
华为
1、在STP实现中,若交换机有AP端口,则RP端口失效时,最好的AP端口会立即成为RP端口,此时状态为Discarding,不需要重新计算角色,但状态迁移所需时间仍要等待2个forward-delay(30s)
2、交换机对于只存在RP端口,DP端口,无AP端口的交换机,当RP端口断开时交换机把自己当成根交换机并通告自己的BPDU,此时BPDU相对原根交换机为次的BPDU,从DP端口发出,对端若为AP端口则不等待端口缓存的最好BPDU超时,而是立即接收并重新计算端口角色,没有等待Max-Age超时,端口立即计算成为DP端口,但状态由Discarding迁移到Forwarding仍需等待30s。
3、在该网段DP端口失效后,会长时间收不到BPDU,交换机在收不到BPDU至少3个Hello间隔后,端口角色成为DP/Discarding,不再等待Max-Age超时。
华为超时时间计算公式:超时时间=Hello Time×3×Timer Factor
Timer Factor默认为3可设置1-10

五、拓扑变化通知
STP可以在拓扑变化时,通过算法快速计算出新的转发链路,但交换机桥表却没有这么快进行调整,旧MAC和端口指向关系会影响数据正常转发。所以需要拓扑变化通知机制去加快转发桥表更新,减少中断时间。
1、拓扑变化后,下游设备会不间断向上游设备发送TCN BPDU报文。TCN从RP端口发出,间隔2s,不受根交换机Hello间隔的影响。
2、上游设备收到下游设备发来的TCN BPDU后,只有指定端口处理TCN BPDU,其他端口有可能收到但不处理。
3、上游设备会把配置BPDU报文中的Flags的TCA位置1,然后发送给下游设备,充当收到TCN的确认,否则下游设备会一直发送TCN BPDU报文。
4、上游设备重复该过程,把TCN BPDU继续向其他RP端口发送,直到从上游收到TCA置位的配置BPDU.
5、TCN BPDU会一直向上发送,直到送至根桥。
6、根桥收到网络拓扑变化后,会把配置BPDU报文中的Flags的TC置位后发送,TC置位的配置BPDU会泛洪到全网,收到的华为交换机会直接删除桥MAC地址表项。
7、根桥持续发送TC置位的BPDU,时间为forward-delay+max-age,共35s。

华为STP拓扑通知机制区别于传统STP的拓扑变化行为:
1、华为的STP实现中,触发产生拓扑变化通知是当端口(非边缘端口)进入转发状态的时候,而端口down时并不触发拓扑变化通知。
2、当TC置位BPDU被交换机收到后,将交换机的桥表清空。这种方法能及时清除错误MAC表项,但会导致网络产生过多单播泛洪报文。

六、STP设计改进及不足
STP收敛慢30-50秒
华为对STP的优化:
1、使用新端口角色及状态;
2、RP失效,AP立即成为新RP;
3、接收次的BPDU,端口不需要等待max-age,就立即计算端口角色;
4、若收不到BPDU,不再使用max-age来判定链路失效,3个hello间隔后重新收敛,检测网络故障时间变短。
STP不足:
1、STP算法为被动算法,状态迁移依赖定时器,最短需要30s;
2、若拓扑变化频繁,反复清空桥表,会导致过量单播报文泛洪。
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值