RSTP简介
RSTP概述:
快速生成树协议RSTP(Rapid Spanning Tree Protocol)在STP基础上实现了快速收敛,并增加了边缘端口的概念及保护功能。
RSTP的端口角色:
RSTP在STP基础上新增加了2种端口角色:、Backup端口和边缘端口。通过端口角色的增补,简化了生成树协议的理解及部署。
- Backup端口:由于学习到自己发送的配置BPDU报文而阻塞的端口,指定端口的备份,提供了另外一条从根节点到叶节点的备份通路。
- 边缘端口:如果端口位于整个交换区域边缘,不与任何交换设备连接,这种端口叫做边缘端口。边缘端口一般与用户终端设备直接连接。
边缘端口的特点:
- 边缘端口会节省30S的延时,端口UP后会立即进入转发状态。
- 边缘端口的UP/DOWN不会触发拓扑改变。
- 边缘端口收的TC置为的配置BPDU报文不会将MAC地址的老化时间设置为15s。
- 边缘端口如果收到配置的BPDU报文会马上变为一个普通端‘’口,进行STP的收敛
- 边缘端口也会发送配置BPDU报文。
- PA协商不会阻塞边缘端口。
RSTP的端口状态:
RSTP的端口状态在STP的基础上进行了改进。由原来的五种缩减为三种。
端口状态 | 说明 |
---|---|
Forwarding(转发) | 在这种状态下,端口既转发用户流量又处理BPDU报文。 |
Learning(学习) | 这是一种过渡状态。在Learning下,交换设备会根据收到的用户流量,构建MAC地址表,但不转发用户流量,所以叫做学习状态。Learning状态的端口处理BPDU报文,不转发用户流量 |
Discarding(丢弃) | Discarding状态的端口只接收BPDU报文。 |
RSTP报文格式:
在BPDU的格式上,除了保证和STP格式基本一致之外,RSTP作了一些小的变化。一个是在Type字段,配置BPDU类型不再是0而是2,版本号也变成了2。所以运行STP的交换机收到该类BPDU时会丢弃。
另一个变化是在Flag字段,把原来保留的中间6位使用起来。这样改变了的配置BPDU叫做RST BPDU。
RSTP Flag字段格式:
Bit7:TCA
Bit6:Agreement
Bit5:Forwarding
Bit4:Learning
Bit3和Bit2:端口角色
00:未知
01:根端口
10:Alternate / Backup
11:指定端口
Bit1:Proposal
Bit0:TC
RSTP相对于STP的改进
针对问题一:P/A机制
P/A机制(1)
P/A机制(2)
P/A机制(3)
针对问题二:根端口快速切换机制(直连检测:上行链路加速)
针对问题三:次等BPDU处理机制(骨干加速)
针对问题四:边缘端口引入(端口加速:连接PC的接口)
针对问题五:拓扑变更机制的优化
拓扑变化处理(1)
拓扑变化处理(2)
拓扑变化处理(3)
拓扑变化处理(4)
边缘端口的断开和恢复不会触发拓扑变更
RSTP保护功能
保护功能 | 场景 | 配置影响 |
---|---|---|
BPDU(Bridge Protocol Data Unit)保护 | 边缘端口在收到BPDU以后端口状态将变为非边缘端口,此时就会造成生成树的重新计算,如果攻击者伪造配置消息恶意攻击交换设备,就会引起网络震荡。 | 交换设备上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,但是边缘端口属性不变,同时通知网管系统。被error-down的边缘端口只能由网络管理员手动恢复。如果用户需要被error-down的边缘端口可自动恢复,可通过配置使能端口自动恢复功能,并可设置延迟时间。 |
防TC-BPDU报文攻击保护 | 交换设备在接收到拓扑变化报文后,会执行MAC地址表项和ARP表项的删除操作,如果频繁操作则会对CPU的冲击很大。 | 启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理拓扑变化报文的次数可配置。如果在单位时间内,交换设备在收到拓扑变化报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。对于其他超出阈值的拓扑变化报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项和ARP表项,从而达到保护设备的目的 |
Root保护 | 由于维护人员的错误配置或网络中的恶意攻击,根桥收到优先级更高的BPDU,会失去根桥的地位,重新进行生成树的计算,并且由于拓扑结构的变化,可能造成高速流量迁移到低速链路上,引起网络拥塞 | 对于启用Root保护功能的指定端口,其端口角色只能保持为指定端口。一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。 |
环路保护 | 当出现链路拥塞或者单向链路故障,根端口和Alternate端口会老化。根端口老化,会导致系统重新选择根端口(而这有可能是错误的),Alternate端口老化,将迁移到Forwarding状态,这样会产生环路。 | 在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在阻塞状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。 |
stp root-protection
//需要在所有的指定端口开启根保护,如果开启后的端口收到比根桥更优的BPDU报文,端口状态会变为Discarding状态。 如果连续MAX age的时间内从该端口都没有收到更优的BPDU报文,端口会自动恢复为Forwarding状态。。 防止根被抢占。
stp loop-protection
//用于RP和AP端口。接收BPDU报文的端口。防止单向链路故障造成的环路。
TC-protection
//设置TC报文的响应次数。如果接收TC的数量大于阀值范围内得TC次数,超出部分只执行1次。
BPDU-protection
//配置BPDU保护
RSTP的配置
stp enable //全局开启STP
stp mode rstp //配置STP模式为RSTP
stp root primary //配置交换机为根网桥
stp bpdu-protection //全局开启BPDU防护,配合边缘端口一起使用
stp edged-port enable //配置端口为边缘端口