回顾STP:
回顾STP的工作工程:
1、选举根桥:有且只有一个
比较设备BID,以小为优
2、每一台非根交换机上选举一个根端口,有且只有一个
1、比较端口的根路径开销,以小为优
2、比较对端的桥ID,以小为优
3、比较对端的端口ID
4、比较本端的端口ID
3、在每一条链路上选举一个指定端口
1、比较设备的RPC,以小为优
2、比较发送端的BID,以小为优
3、比较本端的PID,以小为由
4、阻塞非根非指定端口
STP的端口状态迁移:
disabled:禁用状态,未使能
blocking:阻塞状态,可以接收和存储最优BPDU
listening:侦听状态,可以接收,可以发送,可以处理最优BPDU
learning:学习状态,可以学习用户的MAC地址表项
forwarding:转发状态,只有此状态可以转发用户数
RSTP对STP的改进:
1、增加端口角色区分:
新增端口BP口(备份端口)
现有端口角色:
RP:根端口,选举产生
DP:指定端口,选举产生
AP:替代端口,由于接收到更优的BPDU导致端口被阻塞
BP:备份端口,由于接收到自己发送的BPDU导致端口被阻塞
2、改进端口状态
将disable、blocking、listening状态合为一个discarding状态
现有状态:
Discarding:不能学习MAC地址、不能转发用户数据,但是可以处理BPDU
learning:不能转发用户数据,但是可以学习MAC地址
forwarding:一条龙
3、对配置BPDU的改进:改进后称之为RST BPDU
1、将BPDU type字段置位为0x02
2、将BPDU中的flag字段充分使用
在STP 的BPDU中只用了最高比特(bit 7)和最低比特(bit 0)
在RSTP中BPDU用上所有字段
Bit 7 :置位表示该BPDU为 RST TCA BPDU报文
Bit 6:置位表示为P/A机制中的同意
Bit 5:置位表示该端口的状态为forwarding
Bit 4:置位表示该端口的状态为learning
Bit 3和bit 2同时用于表示端口角色:
为00时:可以用于兼容STP协议
为01时:表示该端口角色为AP或者BP口
为10时:表示该端口角色为RP口
为11时:表示该端口角色为DP口
Bit 1:置位时表示为P/A机制中的提议
Bit 0:置位时表示该BPDU为RST TC BPDU
4、配置BPDU的处理
1、在拓扑稳定的情况下,所有的非根交换机可以通过计算得出自己的RST BPDU并且朝所有的DP口进行发送,并且不需要接收到根桥发送的BPDU即可自行处理
2、BPDU的老化时间由原来的20S变为现在的6S,也就是6S内未收到根桥发送的BPDU则认为根桥故障,认为自己是根桥,发送自己的BPDU
3、次优BPDU的处理,如果交换与根桥互联链路发生故障,导致不能接收到根桥发送的最优BPDU,老化时间结束后,会发送自己的BPDU,对端接口角色为AP或者BP时,原STP需要等待BPDU的老化时间才能进行回应,RSTP的AP和BP端口状态为discarding,可以直接进行回应BPDU,所以会将端口存储的最优BPDU(根桥BPDU)发送给对端,告知对端网络中存在更优的网桥
5、快速收敛机制:
1、代替端口和备份端口(端口故障或者链路故障快速收敛)
当设备的RP口或RP的链路出现故障,则由设备上最大优先级的AP口作为RP口,将端口角色直接转变为RP口
当网络中的一个DP口或DP的链路出现故障,则由该网络中优先级最大的BP口成为DP口,将端口角色直接转变为DP口
2、边缘端口机制
将交换机的端口设置为边缘端口(E),此时端口不需要参与RSTP计算,能够将端口状态直接从discarding状态跳转到forwarding状态
此时的边缘端口不允许接收到BPDU报文,否则将丧失边缘端口属性,参与RSTP的计算
边缘端口的本质是DP(指定端口)
配置命令:
[Huawei-GigabitEthernet0/0/2]stp edged-port enable
3、P/A机制
1、当交换机端口角色确定后,根桥端口为DP口,非根桥端口角色为RP口,此时非交换机会关闭除根端口以外的所有端口,等待根桥发送的P置位RST BPDU
2、当非根交换的RP口收到根桥发送的P置位RST BPDU后,会将RP口转变为forwarding状态,同时回应一个A置位的RST BPDU,当根桥的DP口收到A置位的RST BPDU报文后,将状态转变为forwarding状态,此时根桥与非根交换机的P/A协商结束
3、非根交换机通过DP口继续朝下游设备进行P/A协商。以此保障网络中需要转发用户数据的端口快速进入到forwarding状态
注:增强型P/A机制
根桥的DP口直接发送P和A同时置位的RST BPDU报文,同时直接将端口状态迁移到forwarding状态,非根交换机收到后将状态迁移为forwarding状态,同时回应A置位RST BPDU 报文,后续继续采用此操作,以此保证比普通P/A机制更快进入到forwarding状态
6、拓扑变更机制
检测条件:当一个非边缘端口(AP/BP)进入到转发状态
1、当交换机感知到拓扑发生变化后,会朝所有除边缘端口以外的活跃端口发送TC置位的RST BPDU报文,同时将自己除边缘端口以外学习到的MAC地址表项进行清空
2、当交换收到TC置位的RST BPDU报文后,会将收到TC RST BPDU报文的端口学习到的MAC地址及边缘端口学习到的MAC地址进行保留,其他全部清空,同时朝其他所有的除边缘端口外的活跃链路发送TC置位的RST PBDU报文
3、当全网泛洪RST BPUD后,拓扑变更完成,MAC地址表项刷新
7、保护机制
1、BPDU保护(边缘端口保护)
边缘端收到BPDU报文后,会丢边缘端口属性,为了反正属性丢失,在系统开启BPDU保护功能,开启后,如果边缘端口收到RST BPDU报文,则将端口置于error-down,并且通知管理员,后续通过管理员手动进行开启端口
配置命令:[Huawei]stp bpdu-protection //全局视图下开启BPDU保护功能
2、根保护
由于RSTP中root角色允许被抢占,所以当设备收到比原根桥更优的BPDU时,会发生角色迁移,导致网络变更,为反正此情况发生,在DP口开启根保护,当DP口收到比原根桥更优的BPDU时,会将端口关闭,等待大约两个forwarding delay时间没有收到更优的BPDU,将端口自动进行开启,如果开启后仍然能够收到更优的BPDU,则再次将端口进行关闭,重复动作。
配置命令:[Huawei-GigabitEthernet0/0/1]stp root-protection
3、环路保护
为单向故障,启用AP口,导致单向环路的产生,在接口配置环路保护,当出现RP口故障时,将RP口的状态变为discarding状态,同时保持AP口的端口状态
配置命令:[Huawei-GigabitEthernet0/0/1]stp loop-protection
4、防TC-BPDU保护
由于交换机收到TC-BPDU后,会将大部分MAC地址表项进行清空,当存在设备发送大量的TC-BPDU后,会导致用户数据无法正常转发,为防止此情况发生,在设备上开启防TC-BPDU保护,可以设置单位时间内只处理TC-BPDU的次数,例如将单位时间设备为1分钟,处理1次BPDU报文,当一分钟内收到多次TC-BPDU报文后,会进行存储,只有单位时间过后,才会进行统一处理。
配置命令:
[Huawei]stp tc-protection threshold 200 //设置单位时间内处理的TC-BPDU的次数
[Huawei]stp tc-protection interval 100 //设置单位时间
RSTP的工作过程:
1、所有交换机初次都认为自己是根桥设备,所有的端口都是DP口,发送自己的RTS BPDU报文
2、比较BID选举根桥设备,并且通过选举规则快速确定端口角色
3、从根桥的DP口开启进行P/A协商,非根交换机在于根桥进行P/A协商时,会关闭除RP口外的所有端口
4、非根交换机在与根桥P/A完成后,会将除阻塞端口外的所有端口进行开启
5、同时非根交换机朝DP口的下游进行P/A协商,流程与上述类似,直至全网的所有根端口与指定端口都进入转发状态。