RSTP: Rapid Spanning Tree Protocol (802.1w)
一、问题: Why RSTP 可以快速切换?
1、端口角色增加: 两种到五种
从 STP 的两种角色:
DP:Designated Port
RP:Root Port
====================
增加到了五种角色:
AP:Alternative Port,用于替代 RP 的端口
BP:Backup Port,用于备份 DP 的端口
判断 AP、BP 的关键是保存在端口中的最优 BPDU 是从哪里来的,if 来源于对方,此端口为AP;if 来源于自己,此端口为BP。以前STP的阻塞端口现在分成两个预先选举好的角色,一个 BP、一个AP,BP 相当于是 DP 的备份,A P相当于是 RP 的备份端口,这样预先选举好的角色端口,就免去了 15s 的等待时间,快速收敛
EP:Edge Port,边缘端口,仅用于终端接口,平时只转发数据,EP 收发 BPDU
a、EP 跳过 Listening 和 Learing ,直接进入 Forwarding 状态,down --> up ,秒切
b、EP 如果收到 对方的 BPDU,则端口转变为正常 STP 端口,Discarding --> Learning --> Forwarding
c、EP 端口不会被同步(阻塞)
d、EP 不会触发 TC、转发 TC、不会受 TC 影响
2、STP 端口状态减少, 由五种精简到 RSTP 的三种:
┌───────────┬──────────┐
│ STP │ RSTP │
├───────────┼──────────┤
│ Disable │ │
│ Blocking │ Discarding │
│ Listing │ │
├───────────┼──────────┤
│ Learning │ Learning │
├───────────┼──────────┤
│ Forwarding │ Forwarding │
└───────────┴──────────┘
* 端口之间最本质的区别在于端口的角色,而不在于端口状态
3、BPDU发送方式变化:
1)STP:
只有根桥能产生 Config BPDU,其他非根交换机转发 config bpdu
STP 默认层数7层:7*2s转发时间 + 3*2s Hello时间=20s 接口BPDU 老化时间
2)RSTP:
RSTP/MSTP 专用 BPDU:Rapid/Multiple BPDU,不再存在Config BPDU
每个交换机都可以发专用 BPDU,这样就没有7*2s转发时间,仅剩下 3*2s 的 hold 时间(思科的),华为再乘以、时间因子,用 stp time-factor 配置,默认为3,就是18s(为了避免网络震荡,稳定一些)
4、增加了 rstp flag
bit0: TC:Topology Change Flag 拓扑变更标志
bit1: Proposal, P=1 表示能否成为你的DP
bit2、bit3:端口角色:
0 0:unknown
0 1:ap/bp
1 0:rp
1 1:dp
bit4、bit5:端口状态
Forwarding Learning
1 1 Forwarding
0 1 Learning
0 0 Discarding
bit6: Aggrement 同意成为自己的DP, 和bit1 一起, 表示 P/A 机制
bit7:TCA:Topology Change Acknowledgment Flag 拓扑变更公告
5、增加了 Link Type 链路类型:
p2p:点对点
Non p2p:非点对点
当链路类型为p2p时,A=1,可以快速切换,秒切
当链路类型为non p2p时,A=0,正常切换(30s)
1)默认:根据双工
全双工,接口类型为p2p
半双工,接口类型为non p2p
2)手工指定:stp point-to-point auto | force-false | false-true #强制为默认 | 非点对点 | 点对点
6、快速切换机制:
1)连接终端的接口:EP快速:秒切
2)直连链路切换:
RP down,同交换机的 AP 立刻切换为 RP,发 BPDU,秒切
3)非直连链路切换:P/A 机制,
当RP发生变化,为了防临时环,会引发同步机制:非EP端口,进入DP Discarding)
过程:1、RP down,引发同步机制,DP进入 DP Discarding,进行 P/A 机制,向对端发 P=1、A=1的 BPDU 包;
2、if 对端离根桥更近,存的 RP 的 BPDU 更优,AP 收到包,发现是次级 BPDU,也进行 P/A 机制,回复 P=1、A=1 的包;
3、收到包的交换机收到更优的 BPDU 包,同意秒切,由 DP Discarding 变为 RP Fording,发 P=0、A=1 的包
4、对端收到包,从 DP Discarding 变为 DP Forwarding
if 需要切回来(根桥先发):
1、如果 DP 连 RP 线路恢复,根桥原来断开的 DP Discarding 端口进行 P/A,发 P=1、A=1的包;
2、对端端口状态变为 RP Forwarding,RP变化触发同步机制;
3、同交换机的 DP Forwarding 变为 DP Discarding,并回复给连接根桥的 RP 口 P=0、A=1 的包,根桥端口变为 DP Forwarding
4、同交换机的 DP 向对端进行 P/A 机制,发 P=1、A=1 的包,由于比对端的DP优,对端变为AP Discarding,并不回应包
5、同交换机等待30s切换到DP Forwarding状态
总结:
DP---->RP,秒切
DP---->AP,等待30s
TC:Topology Change 拓朴变更:拓扑变更后,由于MAC地址老化时间长(5minutes),导致流量转发出现问题
解决方案:TCM:Topology Change Mechanism 拓扑变更机制
TCA:TC Flag 的 0 位
7、STP/RSTP的触发条件不同:
STP 的触发条件:T 点接口发生变更后(Up 或者 Down),下游设备的RP端口会不断向上游设备发送TCN BPDU报文(TC置位1,第7个bit)
上游设备收后,把TCA位置1,发给下游设备,告知已经收到,同时复制一份TCN BPDU向根桥方向发送,直到根桥收到TCN BPDU 报文
根桥把Flag中的TC和TCA同时置1后发送,TC置1是为了通知下游设备直接删除桥MAC地址表项,TCA置1是为了通知下游已收到,停发TCN BPDU
RSTP的触发条件:
一个非EP端口迁移到Forwarding状态
一旦检测到拓扑变化,将启动一个TC While Timer计时器(Hello Time的两倍),在这时间内,清空所有端口上的MAC表项。同时由所有的非EP端口发送RST BPDU,其中TC置位,其他收到的,重复操作,操作时间均为TC While Timer计时器时间内(病毒式泛洪式扩散)
二、MSTP(802.1s)华为 stp 默认模式:
region:行政区域:
1、name 域名
2、revision-level 修订号
3、vlan 映射表(Instance 和 Vlan 的映射 关系)
以上3个一致,则为同一区域(单域),实现:
1、防环
2、冗余
3、快速切换
4、最优
5、负载
条件实现:
1、所有交换机都具有相同instance,且vlan映射一致
2、所有交换机instance name相同
3、所有交换机修订号一样
总根:--instance 0 root ----ist root
ist root---总根 ----\
>单域中,ist和msti0重合
ist root---ist域根--/
域根可以有多个:MSTIxx
三、MSTP配置示例:
1、配置思路:
a、交换机环境配置:每个交换机开启vlan batch 10 20,配置 vlanif 10 接口为 1.1.1.x/24,vlanif 20 接口为2.2.2.x/24; 交换机默认 stp 开启, 默认模式为 mstp , 这里省略配置
b、交换机1、2、3、4 开启域配置, 配置 stp 实例, instance 1 绑定 vlan 10, instance 2 绑定 vlan 20, 并激活域配置
stp region-configuration
region-name A
instance 1 vlan 10
instance 2 vlan 20
active region-configuration
c、配置 sw1 为 instance 1 的根桥,sw2 为 instance 2 的根桥
stp instance 1 root primary
stp instance 2 root lsecondary
d、配置 sw3 的 2 口为 instance 2 的阻塞端口,sw4 的 2 口 为 instance 2 的阻塞端口(配置端口开销值为更大,如 20000)
stp pathcost-standard leagcy
int G0/0/2
stp instance 2 cost 20000
e、在 sw3 和 sw4 上的 DP 端口配置根保护
多域:vlan不一致的场景下,可以做多域
总根域:所有交换机,RootID最小的,0最小
域根:到达总根域最优的边界交换机,以累加外部cost来计算
Master Bridge 主桥:Instance 0 的域根就是主桥
主桥以Instance 0来计算,域根以各个Instance x来计算
vlan x 划入 Instance n 以后,域内走域根(个性化选路),域间走主桥
过程:先根据外部cost选总根CST,然后域根被选出,然后各个域里再选择IST
多域的优点:
隔离
保护
1、EP保护:用于连接终端,一旦收到bpdu就失去EP功能,进入error-down状态,防止进入拓扑选举,全局或者端口下配置:
1)bpdu-protection:bpdu保护
stp bpdu-protection
自动恢复:
error-down auto-recovery cause bpdu-production interval x(秒)
dis error-down recovery
过滤:
1、bpdu-filter:bpdu过滤
针对ep端口,一旦配置过滤,不收发bpdu(慎用,防止有环路)
全局或者端口下配置
2、Root Protection 根保护,仅配置在 DP 上,防止失去根桥失去root bridge地位:
int G0/0/1
stp root-protection
在 DP 接口上配置,一旦收到更优的 bpdu,进入 Discarding 状态,两个 Forward Delay 后,if 未再收到,再重新进入 Forwarding 状态
3、loop-protection 环路保护:防止因拥塞的原因而进入根桥重新选举,从而形成的环路
配置在非 DP 端口,AP和BP上配置环路保护