「RSTP」- 概念、术语

协议兼容

RSTP 能够兼容 STP:RSTP 可以和STP互操作,但是此时会丧失快速收敛等 RSTP 优势。

当一个网段里既有运行STP的交换设备又有运行RSTP的交换设备,STP交换设备会忽略RSTP的BPDU。运行RSTP的交换设备在某端口上接收到运行STP的交换设备发出的配置BPDU,在两个Hello Time时间之后,便把自己的端口转换到STP工作模式,发送 CFG BPDU,从而实现了互操作。

在华为的数据通信设备上可以配置运行STP的交换设备被撤离网络后,运行RSTP的交换设备可迁移回到RSTP工作模式。

假如 SWC 不支持 RSTP:
1)当 SWA 收到 CFG BPDU 帧时,会等待 2 x Hello Time 时间,以等待 RST BPDU 出现;
2)在超时后,会自动将端口转化为 STP 模式。

同理 SWB、SWC 也是如此。

Proposal & Agremment

STP 依赖于时间进行收敛(等待),而 RSTP 使用 Proposal & Agremment 机制(P/A),将时间缩短到 1s~2s 时间。

如果互联设备无法进行 P/A 握手机制,那么只能采用计时器控制(兼容)。

Prot Roles

在 STP 中,有 Root Port、Designated Port、Blocked Port 三种端口。

在 RSTP 中,除了有 RP、DP 类型外,还增加若干类型:

Alternate Port

解释:从 CFG BPDU 报文发送角度来看,是由于学习到其它网桥发送的 CFG BPDU 报文而阻塞的端口;从用户流量角度来看,Alternate Port 提供从 Designated Bridge 到 Root Bridge 的另条可切换路径,作为 Root Port 的备份端口(原 STP.BlockedPort 也是 DP 的备份,提供到 Root Bridge 的 备份链路)。

当出现 Root Port 故障时,Alternate Port 能够快速切换为 Root Port 角色。

Backup Port

备份端口,Backup Port,

解释:从 CFG BPDU 报文发送角度来看,是由于学习到自己发送的 CFG BPDU报文而阻塞的端口(如果端口收到 BPDU.BID 与当前交换机 BID 不同,则端口成为 AP 状态)。从用户流量角度来看,Backup Port 作为 Designated Port 的备份,提供从根桥到相应链路的备份通路(提供 Root Bridge 与 Non-root Bridge 链路备份)。

当出现 Designated Port 故障时,从 Backup Port 切换到 Designated Port 需要 Hello Time * 3 = 6s 时间;在华为的设备中,需要 Hello Time * 3 * Timer Factor = 18s 时间。另外,如果 Backup Port 不再全双工链路上,则无法进行 P/A 机制,导致端口进入 Forwarding 的时间更久(可强制配置为 P2P 接口)。

备份端口均无法转发用户流量,也无法接收、处理、发送 BPDU;

备份端口的选举:比较 Port ID 大小;

Edge Port

边缘端口,Edge Port,连接主机、终端设备(应该配置成为边缘端口,某些高版本华为交换机会自动判断)

不接收处理 CBPDU 帧;不参与 RSTP 运算;
如果在边缘端口接入交换机,接收到 BPDU 数据帧,此时边缘端口将被禁用;

当拓扑发生变化(故障)时,端口的状态不会发生改变(不会 Discarding 状态)
当 Link UP 时,该端口由 Disable 直接进入 Forwarding 状态,无时延;(如果没有配置边缘端口,由于端口状态转变需要时间,此时终端可能在某段时间内无法访问网络)

Root Protection(根保护)

当新的交换机出现时,如果 BID 更小,则会抢夺成为根交换机,这可能会影响我们的网路规划。

Root Protection 功能,能确保 Root Bridege 的 Designated Port 不会以为网络问题给改变角色。

Root Protection 需要在 DP 上设置:
1)该 DP 收到更优先的 BPUD 帧,网口进入 Discarding 状态,不会响应新交换机 BPDU.Agreement=1 帧;
2)某段时间后(Forward Delay * 2),如果不再收到 BPDU.Agreement=1 帧,将回到 Forwarding 状态;

注意事项:
1)我们通常不会在 Root Bridge 的 DP 上开启 Root Protection 特性,否则该交换机将孤立自己,无法与其他交换机形成生成树。

BPDU Protection(网桥协议数据单元保护)

当 Edge Port 收到 BPUD 后:
1)会变为普通端口,参与 STP 计算,触发 TC 处理;
2)如果连接交换机,能够会抢夺 Root Bridge 角色;
3)可能会临时环路;比如同个交换机的两个接口短接,立即进入 Forwarding(因为是 Edge Port 状态),然后成为普通端口,开始选举端口状态,最后环路消失;

在 Edge Port 上,配置 BPDU Protection 特性,如果接口收到 BPDU 帧,则端口会立即 Shutdown 状态。

Loop Protection(环路保护)

单向链路故障,SW1 发送的报文无法到达 SW3,但 SW3 发送的报文能够到达 SW1;
—- 比如,在光纤通信中,某些是一发一收的双线,当其中一条出现问题时,可能会出现单向环路。

当 3 x Hello Time = 6s 后,没有收到 Root Bridge 的 BPDU 帧,交换机开始转化端口状态,最后变成单向环路。
SW3 的 Alternate Port 切换到 Root Port,进入 Forwarding 状态;而原 Root Port 切换成 Designated Port;

配置 Loop Protection 特性:
1)如果 Root Port 或 Alternate Port 长时间收不到来自上游设备的 BPDU 报文时:此时 Root Port 会进入Discarding状态,Root Port 角色切换为 Designated Port; Alternate Port 则会一直保持在Discarding状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。
2)直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态

防护 TC-BPDU 攻击

启用防 TC-BPDU 报文攻击功能后,在单位时间内,交换设备处理 TC BPDU 报文的次数可配置。

如果在单位时间内,交换设备在收到TC BPDU报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。

对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项,从而达到保护设备的目的。