更新时间:2024-11-11
1 概述
快速以太环网保护协议是一类特殊的链路层协议,专门用于构建环状的以太网拓扑。以太环网保护协议在环网拓扑完整的情况下阻塞一条链路,防止出现数据环路形成广播风暴。在出现链路中断的情况下,协议迅速恢复之前阻断的链路,使环网各节点之间恢复通信。
快速环网保护协议通过控制交换机MAC地址表的老化,来保证拓扑变化时数据报文可以被发送到正确的链路。一般情况下,MAC地址在地址表中的老化时间是300秒。环网保护协议可以控制交换机MAC地址表在极短的时间内老化。
环网保护协议和生成树协议都用于链路层拓扑控制。生成树协议适用于各种复杂的网络,它使用逐跳的方法传播网络拓扑的变化。环网保护协议专用于环状的拓扑,并使用扩散法传播拓扑变化信息。因此,在环状网络中,环网保护协议的收敛性能优于生成树协议。在网络状况良好的情况下,环网保护协议恢复网络通信的时间可以小于50毫秒。
说明:
环网保护协议支持将一台交换机配置为多个物理环网的节点,以形成相切环。环网保护协议不支持具有公共链路的相交环。
2 ERPS相关概念
图1:ERPS以太环网示例
2.1环网等级
ERPS支持多环或者层次化传送网拓扑结构,如图1所示。主环是一个完整的单环,而子环是通过2个互联节点(interconnection-node)接入到主环(或子环)中,如图1中,红线部分组成的就是主环,包括节点S1、链路S1-S2、节点S2、链路S2-S4、节点S4、链路S4-S3、节点S3、链路S3-S1;蓝线部分是子环,包括节点S3、链路S3-S5、节点S5、链路S5-S6、节点S6、链路S6-S4、节点S4,但不包括链路S4-S3。
2.2环网结点角色
构成环网的每台交换机都是一个环网节点。环网节点角色分为四种:RPL保护节点、RPL邻居节点、互联节点(interconnection-node)以及普通节点(Node)。每一个单环上选定一条物理链路作为RPL保护链路,与这条链路直连的两台交换机一台作为RPL保护节点,另外一台作为RPL邻居节点,剩余的其它交换机都作为普通节点。而互联节点(interconnection-node)是子环接入到主环(或子环)中的2个交点节点。
如图1所示,在主环中,S1是RPL保护节点,S3是RPL邻居节点,而S2和S4是普通节点;在子环中,S6是RPL保护节点,S5是RPL邻居节点,并且通过互联节点(interconnection-node)S3和S4接入到主环中。
ERPS协议的节点类型主要由端口角色来确定,但互联节点(interconnection-node)的节点类型需要在配置时先确定下来,缺省情况下,节点不是互联节点(interconnection-node)。
环网节点的功能基本相同:检测本地环网端口的状态,并在链路失效时发出通知。不同的是,RPL保护节点和RPL邻居节点正常情况下阻塞RPL链路,而普通节点不会,互联节点(interconnection-node)只有一个环网端口连向子环,并且该节点也必定是另外一个主环(或子环)上的节点。
2.3环网端口角色
ERPS协议要求每个节点有两个端口连接着环网,每个端口都称为环网端口(Ring Port)。此外,在每个单环上,还存在一个环网端口作为环网保护链路(RPL)。而对于互联节点(interconnection-node),虽然只有环网端口连向子环,但其还有一个虚拟端口来探测2个互联节点(interconnection-node)之间的连通性,这个在后面会讲到。
正常情况下,环网上除RPL链路之外的所有环网端口都处于转发状态,RPL保护节点和RPL邻居节点的RPL端口被阻塞以避免环路。在出现环网链路失效的情况下,RPL保护节点和RPL邻居节点解除对RPL端口的阻塞,以恢复网络通信。
在一台交换机上,每个环网节点实例中最多只能配置一个RPL端口。
说明:
ERPS协议支持将聚合端口配置为环网端口。
2.4ERPS与CFM
在ERPS端口配置MEP,来监测环网链路。环网端口通过down mep来监控其所在环网链路的状态;互联节点接入子环的环网端口同时还要配置up mep来监控主环上的连通性,如图2所示。

图2:互联节点的虚拟端口配置在Up MEP端口上
在图2中,所有的ERPS环网端口都配置down mep,通过down mep来监测环网链路,例如环网链路A-C,就分别由节点A和节点C的一个环网端口配置了down mep后来进行监控,链路发生故障或者从故障中恢复,都向ERPS控制模块发送相应的通知;同时,down mep也负责接收和发送R-APS报文。up mep只配置在互联节点接入子环的环网端口上,以此来监控主环的连通性,当互联节点之间的主环通路不通或者恢复通信的时候,都向ERPS控制模块发送相应的通知。此外,互联节点接入子环的环网端口不单要配置up mep,因为它也是环网端口,所以它同时也要配置down mep。
说明:
互联节点接入子环的环网端口所配置的up mep用来监控主环的连通性,此时就相当于监控主环链路的虚拟端口。
2.5 使用R-APS虚拟通道的环网互联模式
对于子环来说,互联节点是来连接子环和其余网络的节点,比如图1中就连接了主环。互联节点的up mep端口监测主环的连通性,将此称为R-APS虚拟通道。通过R-APS虚拟通道,两个互联节点能够通过其余网络来进行R-APS的通信。
子环通过R-APS虚拟通道向网络发送(和从网络中接受)R-APS信息,同时R-APS信息可被作为数据流在网络中进行传输。当然,R-APS信息要与普通数据流区分开来,因此,对不同的ERPS环网,使用不同的control vlan来承载R-APS信息。
当然也有网络状态是互联节点在连接子环和其余网络时,不使用R-APS通道的,其R-APS通道的状态都是转发态的。
2.6R-APS传输 VLAN
R-APS报文在R-APS通道中进行传输,因此,要专门为R-APS通道设立一个VLAN。不同的节点设立不同的VLAN,但对某一个节点来说,其余节点设立VLAN均可当作普通数据流传输的VLAN。
在配置R-APS的VLAN时,若该VLAN未创建,ERPS系统会自动为其创建该VLAN。
ERPS环网端口在R-APS 通道的状态与普通数据流的状态一致,但是不使用R-APS虚拟通道的子环除外,因为在这个子环上互联节点的R-APS通道是中止的,因此不使用R-APS虚拟通道的子环上的节点,其R-APS通道的状态都是转发态的。
说明:
ERPS端口所在的MEP端口的VLAN要与R-APS传输VLAN一致。
2.7返回模式
在某些环网中,正常情况下数据流传输的链路通道的网络资源会比较好一些,而RPL所在的通道只是用来备份,因此在倒换清除时,采用返回模式,把数据流返回到网络资源比较好的通道。而有些环网,对于网络资源的要求没那么高,不需要倒换恢复后马上返回到原来的链路通道,因此采用非返回模式,还可以减少返回倒换次数。
在返回模式操作中,当一个倒换被清除时,数据流会恢复到原来的通道上,阻塞RPL。在清除故障的情况下,数据流的返回需要在WTR定时器超时后,用来避免间歇性故障情况下出现的保护倒换;而在清除手动倒换或者强制倒换命令情况下,需要等待WTB定时器。而在非返回模式操作中,当一个倒换被清除时,只要RPL通道没故障,数据流仍然会在RPL通道上。
说明:
WTR定时器和WTB定时器只在返回模式中生效。
2.8nimble模式
因erps依赖于CFM模块,而CFM的配置较复杂,容易出错,并且由于依赖于CFM,erps的收发包处理周期较长,导致影响倒换的速度。为了简化配置和加速倒换,开发了新的nimble模式,在nimble模式下,只需要配置erps相关的命令,无需配置cfm。环网端口也不需要依赖于down mep和up mep。
说明:
为向后兼容,保留了原有配置方式和模式,默认是原有配置模式,只有配置了nimble mode之后nimble模式才生效
3ERPS报文类型
ERPS协议使用的报文类型如表2.1所示。
表4.1 ERPS环网保护协议报文类型
报文类型
|
说明
|
Forced Switch(FS)
|
环网节点(包括RPL节点)进行强制倒换命令之后通知其它节点。
|
Signal Fail(SF)
|
环网节点(包括RPL节点)检测到本地链路失效之后通知其它节点。
|
Manual Switch(MS)
|
环网节点(包括RPL节点)进行手动倒换命令之后通知其它节点。
|
No Request(NR)
|
环网节点检测到本地所有环网链路恢复之后通知其它节点。
|
No Request, RPL Blocked
(NR-RB)
|
环网保护节点通知其它节点环网保护倒换恢复。
|
4 ERPS环网保护机制
4.1稳定状态
在稳定状态下,环网保护节点阻塞RPL端口,并以一个可配置的周期持续发送NR-RB协议报文。
所有收到NR-RB报文的普通节点皆设置本地环网端口为转发状态。稳定状态下普通节点不发送协议报文。
可以通过send-time节点配置命令修改保护节点发送NR-RB报文的周期。
4.2本地链路失效处理
一个环网节点检测到本地链路失效之后,首先立刻解除本地未失效端口的阻塞状态(包括RPL端口或者尚未进入转发状态的普通环网端口),然后开始发送SF协议报文并进行本地MAC地址表老化。
其它所有收到SF报文的节点,首先停止本地的报文发送,然后解除本地未失效端口的阻塞状态,并进行地址表老化。
链路失效节点以配置的send-time为周期持续发送SF报文,在此过程中,若有另外一个节点的端口从失效状态恢复,该节点会在收到SF报文之后将恢复端口设置为转发状态。
4.3本地链路恢复处理
环网节点检测到本地环网端口从失效状态恢复时,会保持端口的阻塞状态,并开始持续发送NR报文。
在发送NR报文的过程中,若节点收到其它节点的SF报文,说明网络中存在其它失效链路,本地节点会停止NR报文的发送,并将恢复的端口设置为转发状态。
若本地节点未收到新的SF报文,在环网保护节点(RPL所在节点)收到NR报文之后,会启动倒换恢复定时器,待定时器超时之后,RPL节点重新阻塞RPL端口,发送NR-RB报文,然后进行地址表老化,网络通信恢复到最初的稳定状态。
4.4保护倒换——链路恢复
环网节点检测到本地环网端口从失效状态恢复时,会保持端口的阻塞状态,并开始持续发送NR报文。
在发送NR报文的过程中,若节点收到其它节点的SF报文,说明网络中存在其它失效链路,本地节点会停止NR报文的发送,并将恢复的端口设置为转发状态。
若本地节点未收到新的SF报文,在环网保护节点(RPL所在节点)收到NR报文之后,进行链路恢复。但是在链路恢复时,返回模式和非返回模式的行为和功能是不一致的。
4.4.1返回模式
在返回模式中,环网链路会进行恢复。RPL节点收到NR报文后,会启动倒换恢复定时器,待定时器超时之后,RPL节点重新阻塞RPL端口,发送NR-RB报文,然后进行地址表老化,网络通信恢复到最初的稳定状态。
4.4.2非返回模式
在非返回模式中,环网链路不会进行自动恢复。RPL节点收到NR报文后不做任何应答,环网其余节点收到NR报文后也不做任何动作。只有当RPL节点接收到Clear命令时,RPL节点将RPL链路阻塞,并且持续向两个环网端口发送NR RB报文,然后Flush FDB。故障节点收到NR RB报文,解除端口的阻塞状态。环网节点在收到NR RB报文后都执行FDB Flush。
4.5 保护倒换——手动倒换
正常的环网状态中,环网节点接收到一个手动倒换命令后,阻塞数据流通道和R-APS通道(阻塞一个数据流通道和R-APS通道的端口),打开其他环网端口,并且持续向两个环网端口发送MS报文,然后Flush FDB。其余环网节点收到MS报文后,打开通过RPL的数据流通道和R-APS通道。发送MS报文的环网节点在收到MS报文后,停止发送MS报文。环网节点在收到MS报文后都执行FDB Flush。
上述动作完成了一次手动倒换的操作,为了倒换正常进行,有几点要注意:
(1)当环网中已经存在一个手动倒换命令,往后的手动倒换命令都是无效的。接收到新的倒换命令的节点要拒绝新的倒换命令,并进行通知,手动倒换被拒绝了。
(2)本地已经产生手动倒换命令的节点,如果接收到不同节点ID的MS报文,这个节点应该要清除本地的手动倒换命令,并且发送NR报文。同时,节点要保持阻塞先前手动倒换命令所阻塞的环网端口。
(3)本地已经产生手动倒换命令的节点,如果接收到更高优先级的本地请求或者报文,这个节点应该要清除手动倒换请求,并且执行更高优先级的请求。
进行手动倒换命令的节点,在接收Clear命令后,清除手动倒换命令。节点要保持阻塞先前手动倒换命令所阻塞的环网端口,并持续向两个环网端口发送NR报文。而接下来的链路恢复,返回模式和非返回模式的行为和功能是不一致的。
4.5.1返回模式
在返回模式中,环网链路会进行恢复。RPL节点收到NR报文后,启动WTB定时器。WTB定时器超时后,RPL节点将RPL链路阻塞,发送NR RB报文,然后Flush FDB。其余环网节点在收到NR RB报文后,解除所有非RPL链路的阻塞状态,然后Flush FDB。
4.5.2非返回模式
在非返回模式中,环网链路不会进行自动恢复。RPL节点收到NR报文后不做任何应答,环网其余节点收到NR报文后也不做任何动作。只有当RPL节点接收到Clear命令时,RPL节点将RPL链路阻塞,并且持续向两个环网端口发送NR RB报文,然后Flush FDB。其余环网节点在收到NR RB报文后,解除所有非RPL链路的阻塞状态,然后Flush FDB。
4.6 保护倒换——强制倒换
正常的环网状态中,环网节点接收到一个强制倒换命令后,阻塞数据流通道和R-APS通道(阻塞一个数据流通道和R-APS通道的端口),打开其他环网端口,并且持续向两个环网端口发送FS报文,然后Flush FDB。其余环网节点收到FS报文后,打开通过RPL的数据流通道和R-APS通道。发送FS报文的环网节点在收到FS报文后,停止发送FS报文。环网节点在收到FS报文后都执行FDB Flush。
上述动作完成了一次强制倒换的操作,为了倒换正常进行,有一点要注意:
当环网中已经存在一个强制倒换命令,往后的强制倒换请求都也是接受的,除非该节点先前已经接受一个强制倒换请求了。同时,接收到新的倒换命令的节点要重新进行强制倒换的操作,阻塞端口,发送FS报文等。当然,多次强制倒换命令的执行,会对环网进行分割,因此应该适当的避免这种不良的情况。
进行强制倒换命令的节点,在接收Clear命令后,清除强制倒换命令。节点要保持阻塞先前强制倒换命令所阻塞的环网端口,并持续向两个环网端口发送NR报文。而接下来的链路恢复,返回模式和非返回模式的行为和功能是不一致的。
4.6.1返回模式
在返回模式中,环网链路会进行恢复。RPL节点收到NR报文后,启动WTB定时器。WTB定时器超时后,RPL节点将RPL链路阻塞,发送NR RB报文,然后Flush FDB。其余环网节点在收到NR RB报文后,解除所有非RPL链路的阻塞状态,然后Flush FDB。
4.6.2非返回模式
在非返回模式中,环网链路不会进行自动恢复。RPL节点收到NR报文后不做任何应答,环网其余节点收到NR报文后也不做任何动作。只有当RPL节点接收到Clear命令时,RPL节点将RPL链路阻塞,并且持续向两个环网端口发送NR RB报文,然后Flush FDB。其余环网节点在收到NR RB报文后,解除所有非RPL链路的阻塞状态,然后Flush FDB。
4.7倒换恢复处理
环网保护节点(RPL Owner)通过定时器WTR(Wait-to-Restore Timer)和定时器WTB(Wait-to-Block Timer)实现环网倒换恢复。WTR定时器和WTB定时器用于避免环网上频繁出现保护切换。
WTR定时器只在返回模式中生效,在非返回模式中,当环网从保护状态下故障恢复后,不进行环网恢复,因此也不需要开启WTR定时器。而在返回模式中,RPL所在节点收到其它节点的NR消息之后,启动WTR定时器,定时器超时之前,RPL所在节点保持RPL端口的转发状态,并且不发送环网恢复通知。若RPL所在节点又收到SF消息,说明环网尚未完全恢复,此时节点停止WTR定时器。WTR定时器超时后,RPL所在节点才会重新阻塞RPL端口。
WTB定时器只在返回模式中生效,在清除强制倒换和手动倒换命令时使用。当清除多次强制倒换命令时,WTB定时器要确保单个的强制倒换命令不会使得RPL进行重复阻塞。当清除一个手动倒换命令时,WTB定时器要防止RPL节点在恢复过程中收到一个过时的远端MS请求而引起的闭合环。
WTB定时器必须要确保有足够的时间来接收远端FS、SF和MS报文,因此定义WTB定时器的时间要比Guard定时器长5秒,这个时间足够一个发送报告的环网节点发送2个R-APS报文并且让整个环网确认各个情况。
5 ERPS配置
6 ERPS配置须知
在配置ERPS环网保护协议之前,请阅读以下注意事项:
(1)ERPS端口一定是承载在CFM的MEP端口上,要为ERPS端口配置MEP信息与MEP端口匹配,成功后ERPS端口才能正常启用。
• 需要配置所有环网端口的缺省VLAN(或control vlan)一致,以确保ERPS报文正常转发。
• 同时使用ERPS与EAPS两种协议的情况下,ERPS环网端口的缺省VLAN和控制VLAN不可与EAPS的控制VLAN相同。EAPS控制VLAN中不可转发ERPS协议报文。
• 一个端口不可同时作为ERPS和EAPS协议的环网端口。
• ERPS协议支持将物理端口或聚合端口配置为环网端口。但已配置链路聚合、802.1X认证或端口安全的物理端口不可配置为ERPS环网端口。
• 关于nimble模式:为向后兼容,保留了原有配置方式和模式,默认是原有配置模式,只有配置了nimble mode之后nimble模式才生效
7 ERPS配置任务
(1)配置nimble模式
• 配置环网节点
• 配置环网端口
• 查看环网保护协议状态
7.1配置nimble模式
在全局配置模式下,按照下面的步骤将交换机配置为ERPS的nimble模式。
命令
|
目的
|
Switch_config# erps nimble-mode
|
配置ERPS nimble模式
|
7.2 配置环网节点
在全局配置模式下,按照下面的步骤将交换机配置为ERPS节点。
命令
|
目的
|
Switch_config# erps id
|
配置ERPS环网节点实例并进入节点配置模式。
id:环网实例号,范围0-7。
|
Switch_config_ring# control-vlan value
|
必选。配置本地节点的控制VLAN。no control vlan,删除本地节点的控制VLAN。节点正常运行后不得更改。
value:范围1-4094。缺省为no control-vlan。
|
Switch_config_ring# interconnection-node
|
必选。配置本地节点为互联节点。no interconnection-node,配置本地节点不为互联节点。节点正常运行后不得更改。
缺省为本地节点不为互联节点。
|
Switch_config_ring# raps-virtual-channel
|
必选。配置本地节点使用R-APS虚拟通道。no raps-virtual-channel,配置本地节点不使用R-APS虚拟通道。节点正常运行后不得更改。
缺省为本地节点使用R-APS虚拟通道。
|
Switch_config_ring# revertive-mode
|
必选。配置本地节点的返回模式为返回模式。no revertive-mode,配置本地节点的返回模式为非返回模式。节点正常运行后不得更改。
缺省为本地节点为返回模式。
|
Switch_config_ring# version value
|
配置本地节点的version。
value:缺省1,范围0-2。
|
Switch_config_ring# wtr-time value
|
配置倒换恢复定时器WTR超时时间。
value:定时器超时时间,缺省20秒,范围10-720秒。
|
Switch_config_ring# guard-time value
|
配置Guard定时器超时时间。
在一个端口从失效状态恢复时,Guard定时器在一小段时间内禁止处理收到的协议报文,以避免因收到过期报文产生错误的协议动作。
value:单位10毫秒,缺省50,范围10-2000。
|
Switch_config_ring# send-time value
|
配置协议报文发送周期。
value:报文发送周期,缺省5秒,范围1-10。
|
Switch_config_ring# exit
|
退出节点配置模式并启动节点。
|
|
|
说明:
(1)使用no erps id命令删除环网节点配置以及节点端口配置。
(2)interconnection-node、raps-virtual-channel、revertive-mode这3条命令虽然是必选命令项,但其都有缺省配置,因此创建本地节点时,若无需对这3项的缺省值进行修改,则可以省略这些命令。
7.3 配置环网端口
按照下面的步骤,将交换机端口配置为环网端口。
命令
|
目的
|
Switch_config# interface interface-type interface-number
|
进入端口配置模式。
intf-name:端口名称。
|
Switch_config_intf# erps id ring-port
|
将端口配置为指定节点的普通环网端口。
id:环网实例号。
|
Switch_config_intf# erps id rpl
|
将端口配置为指定节点的环网保护链路。在自动发现使能的情况下,该命令的作用等同于将优先级值修改为0。
id:环网实例号。
|
Switch_config_intf# erps id neighbour
|
将端口配置为指定节点的RPL邻居端口,同时该端口必须与RPL端口相连接并且必须配置成RPL邻居端口。
id:环网实例号。
|
Switch_config_intf# exit
|
退出端口配置模式。
|
说明:
(1)通过no erps id rpl端口配置命令,将RPL端口修改为普通环网端口。
(2)通过no erps id ring-port(neighbour)端口配置命令,删除普通环网端口(RPL neighbour端口)或RPL端口配置。
(3)在环网节点未全局配置的情况下,erps id ring-port(neighbour)和rpl命令将同时创建环网节点。
(4)up mep只能在interconnection-node节点中进行配置,并且interconnection-node只能配置1个环网端口。
7.4 环网控制命令
在监控模式下,使用下面的命令对环网状态进行控制。
命令
|
目的
|
erps id ForcedSwitch interface interface-type interface-number
|
对节点进行强制倒换,倒换到端口interface-type interface-number。
id:环网实例号。
|
erps id ManualSwitch interface interface-type interface-number
|
对节点进行手动倒换,倒换到端口interface-type interface-number。
id:环网实例号。
|
erps id Clear
|
清除节点的倒换命令。
id:环网实例号。
|
7.5查看环网保护协议状态
使用下面的命令查看环网保护协议状态。
命令
|
目的
|
show erps id
|
查看环网保护协议和环网端口的摘要信息。
id:环网实例号。
|
show erps id detail
|
查看环网保护协议和端口的详细信息。
|
show erps interface interface-type interface-number
|
查看环网端口的状态信息。
|
8 ERPS配置示例
8.1配置示例1-ERPS nimble模式配置
8.1.1配置交换机S1:
!
link scan fast 10
!
port-protected 1
!
!
!
!
ethernet cfm ENABLE
!
!
!
no spanning-tree
spanning-tree bpdu-terminal
!
erps nimble-mode
erps 1
control-vlan 20
exit
!
vlan 1-4094
!
interface GigaEthernet0/2
switchport enhanced-link
switchport mode dot1q-tunnel-uplink
ethernet cfm ENABLE
erps 1 ring-port
erps 1 cfm-disable
!
interface GigaEthernet0/3
switchport enhanced-link
switchport mode dot1q-tunnel-uplink
ethernet cfm ENABLE
erps 1 rpl
erps 1 cfm-disable
!
8.1.2配置交换机S2:
link scan fast 10
!
port-protected 1
!
!
!
!
ethernet cfm ENABLE
!
!
!
no spanning-tree
spanning-tree bpdu-terminal
!
erps nimble-mode
erps 1
control-vlan 20
exit
!
!
!
vlan 1,10,20,30,40,100
!
!
interface GigaEthernet0/2
switchport enhanced-link
switchport mode dot1q-tunnel-uplink
ethernet cfm ENABLE
erps 1 ring-port
erps 1 cfm-disable
!
interface GigaEthernet0/4
switchport enhanced-link
switchport mode dot1q-tunnel-uplink
ethernet cfm ENABLE
erps 1 ring-port
erps 1 cfm-disable
!
8.1.3配置交换机S3:
!
link scan fast 10
!
port-protected 1
!
!
!
!
ethernet cfm ENABLE
!
!
!
no spanning-tree
spanning-tree bpdu-terminal
!
erps nimble-mode
erps 1
control-vlan 20
exit
!
!
vlan 1,10,20,40,100
!
interface GigaEthernet0/3
switchport mode dot1q-tunnel-uplink
ethernet cfm ENABLE
erps 1 neighbour
erps 1 cfm-disable
!
interface GigaEthernet0/4
switchport mode dot1q-tunnel-uplink
ethernet cfm ENABLE
erps 1 ring-port
erps 1 cfm-disable
!