ERPS基本概念
ERPS是一个用于以太网链路层破除环路的协议。它以ERPS环为基本单位,包含若干个节点,通过阻塞RPL Owner端口,并控制其他普通端口,使得端口的状态在Forwarding和Discarding之间切换,达到消除环路的目的。同时我们利用控制VLAN、数据VLAN和保护实例等机制,以更好地实现ERPS的功能。
如图12-1所示,为了提高链路可靠性,SwitchA~SwitchD组成双归链路,接入上级网络。这样的接入方式在整个网络中将引入新的环路。为了消除网络中的冗余环路,有效地保证链路连通性,需要启动破除环路机制。
我们可以在如图12-1所示的网络中部署ERPS协议,下面结合该图介绍ERPS协议的基本概念:
ERPS环
ERPS环,就是由一组配置了相同的控制VLAN且互连的二层交换设备构成,是ERPS协议的基本单位。
ERPS环分为主环和子环。缺省情况下,ERPS环都是主环。主环是封闭的环,子环是非封闭的环,需要通过命令进行配置。如图12-2所示,SwitchA~SwitchD组成的ERPS环是主环,SwitchC~SwitchF组成的环是子环。
子环的配置只有ERPSv2版本支持,v1版本不支持。
节点
加入ERPS环的二层交换设备称之为节点。每个节点不能多于两个端口加入同一个ERPS环。图12-2中的SwitchA~SwitchD便为ERPS主环的节点。
端口角色
RPL owner端口
一个ERPS环只有一个RPL owner端口,由用户配置决定,通过阻塞RPL owner端口转发用户流量来防止ERPS环中产生环路。
当RPL owner端口所在设备收到故障报文得知ERPS环上其他节点或链路故障时,会自动放开RPL owner端口,此端口恢复流量的接收和发送,保证流量不会中断。
RPL owner端口所在的链路即为环保护链路RPL(Ring Protection Link)。
RPL neighbour端口
RPL neighbour端口指的是与RPL owner端口直接相连的端口。
正常情况下,RPL owner端口和RPL neighbour端口都会被阻塞,以防止环路产生。
当ERPS环出现故障时,RPL owner端口和RPL neighbour端口都会被放开。
引入RPL neighbour端口角色可以减少RPL neighbour端口所在设备刷新FDB表项的次数。
普通端口
在ERPS环中,除RPL owner端口和RPL neighbour端口以外的端口都是普通端口。
普通端口负责监测自己直连的ERPS协议的链路状态,并把链路状态的变化消息及时通知其他端口。
端口状态
Forwarding:在Forwarding状态下,端口既转发用户流量又接收/发送ERPS协议报文。
Discarding:在Discarding状态下,端口仅能发送和接收ERPS协议报文。
控制VLAN
在ERPS环中,控制VLAN用来传递ERPS协议报文。
每个ERPS环必须配置控制VLAN。当端口加入已经配置控制VLAN的ERPS环后,端口将自动加入控制VLAN。
不同ERPS环不能使用相同ID的控制VLAN。
数据VLAN
与控制VLAN相对,数据VLAN用来传递数据报文。
保护实例
对于运行ERPS协议的二层设备,传递ERPS协议报文和数据报文的VLAN必须映射到保护实例中,这样ERPS协议才会按照其阻塞原则对这些报文进行转发或阻塞。否则,VLAN报文可能会在成环的网络中产生广播风暴导致网络不可用。
定时器
Guard Timer
链路故障或节点故障所涉及到的设备在故障恢复或执行清除操作后,向其他设备发送NR RAPS报文,并同时启动Guard Timer定时器,在该定时器超时前不处理NR RAPS报文,目的是防止收到过期的NR RAPS报文。如果定时器超时后还能收到其他端口发送的NR RAPS报文,则本端口的转发状态变为Forwarding状态。
WTR Timer
RPL owner端口由于其他设备或链路故障而被放开后,当故障恢复时,有的端口可能还未由Down状态变为Up状态。为了防止立即阻塞RPL owner端口而引起网络震荡,当RPL owner端口收到某端口的NR RAPS报文后,会启动WTR Timer定时器。如果在定时器未超时前收到其他端口的SF RAPS报文,则关闭WTR Timer定时器。如果在WTR Timer定时器超时前始终没有收到其他端口的SF RAPS报文,则当WTR Timer定时器超时后,阻塞RPL owner端口,发送NRRB RAPS报文。其他端口在收到该报文后,再将自己端口的转发状态设置为Forwarding状态。
Holdoff Timer
对于运行ERPS的二层网络,保护倒换的顺序可能会有不同的要求,例如:多层业务的应用中,服务器出现故障后,用户可能会希望能有一段时间恢复服务器的故障,而客户端感知不到,即不会立即进行保护倒换。可设置合适的Holdoff Timer定时器,当发生故障时,故障并不会立即上报ERPS,而只有当Holdoff Timer定时器超时后,如果故障仍未能恢复才会上报。
WTB Timer
当清除端口的手工切换状态(强制切换或手工切换)时,启用WTB Timer定时器,因为ERPS环内可能存在多个手工切换阻塞节点,只有当定时器超时后,清除操作才起作用,这样可以防止立即阻塞RPL owner端口而引起阻塞点震荡。
WTB Timer定时器不支持配置,该定时器的值为Guard Timer定时器的值加5s,缺省值为7s。
回切/非回切模式
当ERPS链路恢复正常后,可以通过设置ERPS的回切/非回切模式来决定是否重新阻塞RPL owner端口。
- 在回切模式下,如果故障链路恢复,等待WTR时间后,会重新阻塞RPL owner端口。阻塞链路会重新切回到RPL上。
- 在非回切模式下,如果故障链路恢复,不启动WTR Timer定时器,而且阻塞链路还保持在原来的故障链路上,不会重新切回到RPL上。
缺省情况下,ERPS环处于回切模式。
ERPSv1版本只支持回切模式,ERPSv2版本两种模式都支持。
阻塞点切换方式
- 强制切换:配置了强制切换的端口会马上被阻塞,不管环上其他链路是否存在故障等情况。
- 手工切换:如果环的状态为Idle或Pending时,配置手工切换的端口就会阻塞,否则不阻塞。
- 清除本地配置的手工切换和强制切换功能。
- 当ERPS环处于回切模式时,在WTB Timer定时器或WTR Timer定时器超时之前,手工触发回切动作。
- 当ERPS环处于非回切模式时,手工触发回切动作。
阻塞点手工切换是ERPSv2版本的功能,在ERPSv1版本不支持。
子环RAPS报文传输方式
ERPSv2版本除了支持单环组网,还支持相交环等多环组网方式。在相交环组网中,子环RAPS报文传输方式目前仅支持非虚通道NVC(Non-Virtual-Channel)方式。
非虚通道方式:子环的RAPS协议报文会在相交节点上终结,子环的阻塞端口仅阻塞数据流量,不阻塞子环的RAPS协议报文。
如图12-3所示,一个主环分别和两个子环相交,左边和右边的子环RAPS报文传输方式均为非虚通道方式。
如图12-4所示,链路b和链路d分别属于主环1和主环2,只有链路a和链路c属于子环,链路a和链路c是独立的两条链路,无法感知到对方的链路变化,所以此时需要采用虚通道来传输RAPS报文。