希望以更简单的大家都能理解的方式了解网络
这里排版比较乱,可以参考我的有道笔记(点我跳转的有道笔记)这里有时间会整理一下的
!!!!不是卖课的!!!!
有道笔记不需登录、即点即看
—————————————————正文————————————————————
相对STP,RSTP在原有的基础上进行了一些优化
1. 端口角色
将阻塞接口细分为:Alternate port(AP),Backup port(BP)
Alternate port(AP):他是由于学习到了其他网桥发送的BPDU而阻塞的接口,作为根端口的备份端口,它提供了一条到达根桥的可切换路径
Backup port(BP):他是由于学习到自己的BPDU(自环)报文而阻塞的端口,他作为指定端口的备份
2. 端口状态
将5中端口状态优化为3种
STP角色 | RSRP角色 | 端口在拓扑中的角色 |
---|---|---|
Disabled | Discarding | AP、BP |
Blocking | Discarding | AP、BP |
Listening | Discarding | AP、BP |
Learning | Learning | DP、RP |
Forwarding | Forwarding | DP、RP |
Discarding:不转发用户流量也不学习MAC地址
Learning:不转发流量但学习mac地址
Forwarding:转发用户流量也学习mac地址
3. Flag位
RSTP的配置BPDU充分利用了STP报文中的fag字段,明确了端口角色
除了保证和STP格式基本一致之外,RSTP作了如下变化:
Type字段:配置BPDU类型不再是0而是2,所以运行STP的设备收到RSTP的配置BPDU时会丢弃。
Flag字段:使用了原来保留的中间6位,这样改变的配置BPDU叫做RST BPDU。
RSTP的报文格式:
报文内容对比:
↑stp,可以看到type值为0,代表他是stp的报文,flags位只用到了bite0和bite7
↑rstp,可以看到type值为1,代表他是rstp的报文,flags位全部都被使用了
4. BPDU的处理
(1)每台设备都能主动发出BPDU
在拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,非根桥设备仍然按照Hello Time规定的时间间隔发送配置BPDU,该行为完全由每台设备自主进行
(2)更短的超时时间
端口在超时时间内没有收到上有的BPDU,则认为协议失败
正常:hello time * 3 = 6s (hello默认2s)
华为:hello time * 3 * timer factor= 18s (timer factor时间因子默认3s)
(3)处理次优BPDU
STP种接受到次优BPDU直接丢弃
在RSTP中,如果一个设备收到次优BPDU,不仅会丢弃,然后会直接回复发送设备自身缓存的BPDU,从而加快收敛
5. 快速收敛机制
(1)根端口快速切换
由于存在AP接口,当网络中的RP接口出现问题,最优的AP接口将直接切换为RP,直接进入Forwading状态,不用等待30s-50s的收敛
(2)边缘端口
可以将连接终端的接口配置为边缘端口
边缘端口不参与RSTP计算,会直接进入forwarding状态
但是一旦边缘端口说到BPDU就会丧失边缘端口属性,可能会引起网络震荡,针对此种问题可以开启BPDU保护
(3)Proposal/Agreement 机制
(详细机制查看【P/A机制详解】)
简称P/A机制
通过此机制能够加快上游端口进入forwarding的速度
6. 拓扑变更机制(TC报文)
拓扑变更的判定:一个非边缘端口状态变为forwarding
TC报文:一个普通的BPDU报文flag中TC位置1,则称其为TC报文
下图对比STP与RSTP机制的不同
由于STP中只有根桥能够向下主动发送BPDU所以要层层向上汇报,变得非常繁琐
在RSTP中所有交换机都能主动发发出BPDU,能够快速泛洪整个网络
7. 保护功能
(1)BPDU保护
正常情况下,边缘端口不会收到RST BPDU。如果有人伪造RST BPDU恶意攻击交换设备,当边缘端口接收到RST BPDU时,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。交换设备上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down但是边缘端口属性不变,同时通知网管系统。
[接口下] STP edged-port enable \\设置为边缘端口
[] stp bpdu-protection \\开启bpdu保护
接口进入error-down可以使用下面两种方法重新启用
[接口下] undo shutdown \\进入接口手动启动
[] error-down auto-recovery cause bpdu-protection interval [秒数] \\当因为bpdu保护引起的error-down将接口禁用一定秒数
(2)根保护
启动根保护功能的交换机,他的端口只能保持为指定端口
一旦启用根保护功能的指定端口收到优先级更高的RST BPDU时,指定端口将进入Discarding状态,不再转发报文。经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。
如此可以保护根桥不被其他交换机抢夺根桥身份
[指定接口下] stp root-protection \\开启该接口的根保护功能
问题:
什么接口需要开启根保护功能?
根桥的DP接口、接终端的DP接口
(3)环路防护
虽然stp能够堵塞接口破除环路,但是当出现单向链路故障,可能会引起环路
在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在Discarding状态,不转发报文,从而不会在网络中形成环路。
直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。
当RP口收不到BPDU且开启环路保护后,会变为DP进入Discarding状态 ,AP切换为RP状态为Forwarding
当AP口收不到BPDU且开启环路保护后,会变为DP进入Discarding状态,RP依旧为RP状态为Forwarding
[DP\AP下] stp loop-protection \\开启环路保护功能
(4)防TC攻击保护
为防止恶意用户频繁向交换机发送TC置位的BPDU报文,导致交换机频繁删除mac地址表,给设备造成巨大负担
对此可以可以启用防TC攻击保护,来设置交换机单位时间内最多处理TC报文的次数
如果在单位时间内,交换设备在收到TC BPDU报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。
对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项,从而达到保护设备的目的。
stp tc-protection threshold [次数] \\设置单位时间处理次数(默认1)