华三交换机ERPS环网配置详解。
需求简介
现有4台华三US328S交换机,软件版本为H3C Comware Software, Version 7.1.070, Release 8312P03。
原拓扑为星型拓扑,即主交换机(sw1)分出3条线至各交换机做上行,任意一条链路损坏后子交换机及其业务离线,现做环网改造,采用环形拓扑:


一些基础概念
参考文档:11-可靠性配置指导-新华三集团-H3C
ERPS定时器
ERPS定时器分为以下四种:
- Hold-off定时器:该定时器在端口检测到链路故障时启动,延迟故障上报的速度。当链路出现故障后,等待Hold-off超时后,如果故障依然存在,再上报。从而给服务层提供修复链路的机会,避免不必要的故障上报。该定时器的时长会影响链路故障上报的速度,影响故障发生时链路的倒换性能。
- Guard定时器:该定时器在端口检测到链路恢复时启动,用于防止网上转发延时导致的原R-APS消息残留对网络造成不必要的震荡。在此定时器超时前,接口不再处理所有R-APS报文。该定时器对多点故障时的链路恢复性能有影响。
- WTR定时器:回切模式下,该定时器在Owner节点在Protection状态收到NR报文时启动,用于防止环网上存在间歇性故障链路导致网络频繁震荡。在此定时器超时前,RPL保持转发,故障恢复点维持临时阻塞,期间,如果Owner节点收到SF报文,说明环网中还存在故障链路,该定时器直接关闭,RPL仍然保持转发。否则,该定时器超时后,Owner节点阻塞RPL端口,发送(NR, RB)报文通知故障恢复节点,放开临时阻塞的端口,同时刷新MAC地址表项。
- WTB定时器:回切模式下,该定时器在Owner节点在MS或者FS状态收到NR报文时启动,用于防止环网上的RPL端口由于网络震荡而反复被阻塞、放开。在此定时器超时前,RPL保持转发,故障节点发送NR报文。期间,如果Owner节点再次收到SF报文,说明环网中还存在故障链路,该定时器直接关闭,RPL仍然保持转发。否则,该定时器超时后,Owner节点阻塞RPL,发送(NR, RB)报文通知临时阻塞点放开,同时刷新MAC地址表项。
ERPS的六种状态
ERPS定义了以下六种状态:
- Init状态:环端口不完整时(非互联节点的端口数量小于2或互联节点的端口数量小于1),处于Init状态。
- Idle状态:环初始化过后进入到稳定状态,当Owner节点进入Idle状态后,其它节点随之进入Idle状态。其中,Owner节点和Neighbor节点的RPL端口为阻塞状态,即RPL不通;Owner节点定时发送(NR, RB)报文。
- Protection状态:当环网某段链路出现故障,环路经过保护倒换,最终稳定到的状态。Owner节点和Neighbor节点的RPL端口放开,即RPL放开,保证整个环网仍然是通的。当链路中某个节点进入Protection状态后,其它节点随之进入Protection状态。
- MS状态:MS状态下可以手动倒换流量转发路径。当对链路中某个节点进行MS操作后,其它节点随之进入MS状态。
- FS状态:FS状态下可以强制倒换流量转发路径。当对链路中某个节点进行FS操作后,其它节点随之进入FS状态。
- Pending状态:Pending状态是一个不稳定的状态,是各状态在进行跳转时的一个过渡状态。
环路正常时,处于Idle状态;链路发生故障后,处于Proctection状态。
环网配置
提前规划
- 流量走向
在华三的ERPS中,规定了Port0和Port1作为节点连接其他节点的两端,这两种接口在逻辑上是对等的,但要按顺时针或逆时针方向顺次连接。
一般来说为了运维方便,大多采用顺时针连接,即 Port0 总是连接物理环路中逆时针方向的邻居,Port1 总是连接顺时针方向的邻居。
类比来说:想象四个人手拉手围成一个圈。每个人都有左手和右手。在 ERPS 的世界里,左手就是 Port0,右手就是 Port1。 - 控制VLAN
用于传递ERPS协议报文。控制VLAN必须为设备上尚未创建的VLAN,且既不能用于业务流量,也不能配置vlanif地址。
交换机配置
按照上方拓扑图进行物理链路连接,连接到交换机进行cli配置,以下配置均在sys系统视图下操作:
- 全局开启ERPS,在所有节点上执行:
1
2erps enable
erps tcn-propagation - 创建ERPS环,在所有节点上执行:
1
erps ring 1
- 配置用于ERPS的端口,在所有节点上执行:由于STP和ERPS会产生冲突,因此需要对ERPS成员口禁用STP,且只有Trunk类型的端口才可配置成ERPS环成员端口。
1
2
3
4
5
6
7
8
9
10int GigabitEthernet 1/0/21
port link-type trunk
port trunk permit vlan all
no stp enable
quit
int GigabitEthernet 1/0/22
port link-type trunk
port trunk permit vlan all
no stp enable
quit
我这里直接允许了所有vlan通过,如果需要只允许部分vlan通过,切记还额外需要允许控制vlan通过。 - 配置Port0和Port1,在所有节点上执行:
1
2
3
4erps ring 1
port0 interface GigabitEthernet 1/0/21
port1 interface GigabitEthernet 1/0/22
quit - 配置控制VLAN和保护VLAN,在所有节点上执行:保护VLAN为实际的业务VLAN,建议直接使用
1
2
3
4
5
6erps ring 1
instance 1
control-vlan 1000
protected-vlan reference-instance 0 to 4094
quit
quit0 to 4094,防止后面配置时忘记配置ERPS还是会导致环路。 - 配置节点角色
我这里sw1是Owner,同一个环上配置节点角色过程中不能同时出现两个Owner节点,否则不能保证配置完成后Owner节点功能正常。
在sw1上执行:即指定sw1为Owner,Port1为默认阻塞端口(备份接口)。其余节点默认就是Normal节点,正常情况下无需配置。1
2
3erps ring 1
instance 1
node-role owner rpl port1 - 在所有节点上激活ERPS:
1
2
3erps ring 1
instance 1
instance enable
配置完成后,在交换机内应能看到当前ERPS的状态:
1 | <sw1>dis erps detail ring 1 |
配置定时器
在 ERPS 协议中,从 Pending 状态恢复到 Idle 状态所需的时间,主要取决于 WTR Timer(等待恢复定时器) 的设置。在华三(H3C)交换机的默认配置下,WTR Timer 是 5 分钟。这意味着:当链路恢复后,环网会进入 Pending 状态并开始倒计时,只有在链路持续稳定 5 分钟后,Owner 节点才会重新阻塞 RPL 端口,整个环网才会回到 Idle 状态。
生产环境建议保持默认设置5mins,保证整网稳定性;测试时可以修改缩短,在所有节点上执行:
1 | erps ring 1 |
测试
构建如下拓扑:

此时从PC1持续Ping网关,观察到流量正常:

断开sw3的其中一条链路(Port1),观察到有瞬间丢包,但旋即恢复正常:

同时交换机侧观察到链路丢失,进入Protection状态:

恢复sw3的物理链路,观察到交换机从Protection状态切换为Pending状态:

五分钟后观察到恢复Idle状态,实验结束。


