HCIP-RSTP
端口角色
- 根端口(RP):
非根桥收到最优的BPDU配置信息的端口为根端口,(到根桥开销最小的端口),根桥没有根端口。
- 指定端口(DP):
两非根交换机之间连接的两个端口必有一个为指定端口,比较两个非根交换机的根端口到达根桥的链路开销,开销低的交换机的端口就是指定端口,开销一样比较桥ID。发送BPDU的口;根桥上所有端口都是指定端口。
- 替代端口(AP):
收到其他网桥更优的bpdu,然后进入阻塞状态的口,是根端口的备份端口,指定从桥到根的另一套条路。
- 备份端口(bp):
收到本地的更好的bpdu的口,是指定端口的备份端口,指定从根到桥的另一套条路。
端口状态:
learing状态可丢弃(当双方协议都为RSTP可以丢弃,当一方为STP一方为RSTP会保存)
RSTP只有俩个状态:Forwarding,Discarding
配置BPDU – RST BPDU
配置BPDU
(1)拓扑稳定后,配置BPDU报文的发送方式
STP:拓扑稳定后,根桥按照Hello Time规定的时间间隔发送配置BPDU。其他非根桥设备在收到上游设备发送过来的配置BPDU后,才会触发发出配置BPDU,此方式使得STP计算复杂且缓慢。
RSTP:在拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,非根桥设备仍然按照Hello Time规定的时间间隔发送配置BPDU,该行为完全由每台设备自主进行。
(2)更短的BPDU超时时间
STP:BPDU超时时间20S
RSTP:超时时间6S(三个Hello Time时间)没有收到上游设备发送过来的配置BPDU,那么该设备认为与此邻居之间的协商失败。
(3)处理次优BPDU
STP:STP协议只有指定端口会立即处理次优BPDU。
RSTP:当一个端口收到上游的指定桥发来的RST BPDU报文时,该端口会将自身缓存的RST BPDU与收到的RST BPDU进行比较。(如果端口缓存的RST BPDU优于收到的RST BPDU,那么端口会直接丢弃收到的RST BPDU,立即回应自身缓存的RST BPDU,从而加快收敛速度)\
P/A机制
STP中,该端口至少要等待一个Forward Delay(Learning)时间才会进入到Forwarding状态
1,RSTP通过P/A机制加快了上游端口进入Forwarding状态的速度。
2,在RSTP中,当一个端口被选举成为指定端口之后,会先进入Discarding状态,再通过P/A机制快速进入Forwarding状态。
例:
同步状态:收到根桥发来的P位置位后进入同步
意义:防止临时环路(P/A机制在1S内立刻完成容易引发临时环路)
拓扑变更机制
拓扑变更:非边缘端口迁移到Forwarding
1,拓扑变化(链路故障)
2,开启计时器(2倍Hellow time),并清空Mac地址(保证Mac地址有效)
3,发TC置位
4,接受TC置位的端口除外,其他口清空Mac
5,同步2,3(RST BPDU泛洪)
学MAC:从帧的源Mac映射到接口端口
Mac不清空:1,包被丢弃 2,Mac地址错误
Mac不自动刷新,300S老化时间
RSTP保护
BPDU保护:(100%EP,只能接主机)
- 正常情况下,边缘端口不会收到RST BPDU。如果有人伪造RST BPDU恶意攻击交换设备,当边缘端口接收到RST BPDU时,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。
- 交换设备上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,但是边缘端口属性不变,同时通知网管
根保护:
- 启用根保护功能的指定端口收到优先级更高的RST BPDU时,端口将进入Discarding状态,不再转发报文。经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。
- 根保护功能确保了根桥的角色不会因为一些网络问题而改变。
- 根保护:
环路保护:
- 启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在Discarding状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。
- 直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。
防TC-BPDU攻击:
- 启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理TC BPDU报文的次数可配置。
- 如果在单位时间内,交换设备在收到TC BPDU报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。
- 对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项,从而达到保护设备的目的
配置命令:
Stp mode rstp //改为rstp模式
Display stp brief //查看端口状态
Stp priority o //改优先级为0(主根)
Stp root primary //改为主根
Stp root secondary //改为备根
Stp priority 4096 //改优先级为4096(备根)
Port link-type access //设置端口链路类型为access
Stp edged-port default //配置EP,接口下配置只有接口生效,全局下所有端口生效
Stp edged-port disable //在接口下配置,用于关掉全局下配置下变为EP的接口
Stp bpdu-protection //BPDU保护(EP收到BPDU立刻shutdown)
Restart //用于打开BPDU保护下导致关闭的接口
Stp root-protection //保护根不变(如果新接入的SW会成为新的根那么会丢弃接口)
Stp tc-protection threshold x //系统视图配置,限制每一次2S收到的tc数量为x,超过的忽略
Stp loop-protection //开启环路保护