RRPP技术白皮书08Word格式文档下载.docx
《RRPP技术白皮书08Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《RRPP技术白皮书08Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
4.1.1单环组网20
4.1.2相切环组网21
4.1.3相交环组网21
4.2RRPP与STP混合组网使用22
5结束语23
附录A缩略语23
摘要:
RRPP是一个专门应用于以太网环的链路层协议,可以防止环路上的广播风暴,链路故障时具有快速收敛的特点。
本文介绍了RRPP协议的基本技术和典型应用。
关键词:
RRPP、STP、FDB
1前言
在二层网络中,对于网络可靠性一般采用STP协议,STP协议是由IEEE开发的一种标准的环网保护协议,并得到广泛应用,但实际应用中受到网络大小的限制,收敛时间受网络拓扑影响。
STP一般收敛时间为秒级,网络直径较大时收敛时间更长,采用RSTP/MSTP虽然可以减少收敛时间,但是对于3G/NGN语音等高服务质量要求的业务仍然不能满足要求。
为了缩短收敛时间,消除网络尺寸的影响,RRPP(RapidRingProtectionProtocol)协议应运而生。
RRPP是一个专门应用于以太网环的链路层协议,它在以太网环中能够防止数据环路引起的广播风暴;
当以太网环上一条链路断开时,能迅速启用备份链路以恢复环网上各个节点之间的通信通路。
和STP协议相比,RRPP协议具有拓扑收敛速度快(低于50ms)和收敛时间与环网上节点数无关的特点。
2RRPP基本介绍
2.1RRPP基本概念
2.1.1RRPP域(RRPPDomain)
RRPP域由整数表示的ID来标识,一组配置了相同的域ID和控制VLAN,并且相互联通的交换机群体构成一个RRPP域。
一个RRPP域具有如下的组成要素:
⏹RRPP环
一个RRPP环物理上对应一个环形连接的以太网拓扑,一个RRPP域由彼此相接的多个RRPP环构成,其中有一个为主环,其他环为子环。
当然,一个RRPP域也可以只包含一个RRPP环。
在单环的情况下,既可以把环配制成主环,也可以配置成子环,在应用上具有相同的效果。
RRPP环的角色由用户通过配置决定。
⏹RRPP控制VLAN
每个RRPP域具有两个控制VLAN,分别叫做主控制VLAN和子控制VLAN。
主环的协议报文在主控制VLAN中传播,子环的协议报文在子控制VLAN中传播。
⏹主节点
主节点是RRPP环上的主要决策和控制节点。
每个RRPP环上必须有一个主节点,而且只能有一个。
⏹传输节点
环上除主节点之外的其它节点都可以称为传输节点(边缘节点和辅助边缘节点实际上是特殊的传输节点)。
一个RRPP环上可以有多个传输节点,也可以没有传输节点(事实上这样的组网没有实际意义)。
⏹边缘节点和辅助边缘节点
大家都知道,两个环形相交时一定有两个交点。
同理,子环和主环会有两个交点,这两个交点处的交换机其中一个叫做边缘节点,另外一个叫做辅助边缘节点。
把哪台交换机配置成边缘节点或辅助边缘节点没有特殊要求,只要配置上能区分两个节点就行了。
如图1所示Domain1就是一个RRPP域,所有从S1~S6的交换机属于Domain1。
Domain1的主控制VLAN和子控制VLAN分别为VLAN3和VLAN4,域中包含两个RRPP环,分别为Ring1和Ring2。
主环的主节点为S1,子环的主节点为S6。
S2、S3和S4都是主环的传输节点,S5是子环的传输节点。
子环的边缘节点和辅助边缘节点分别为S3和S2。
图1RRPP组网示意图
2.1.2RRPP环(RRPPRing)
每一个RRPP环物理上对应一个环形连接的以太网拓扑,RRPP环同样由整数表示的ID来标识。
每个RRPP环都是其所在的RRPP域的一个局部单元,实际上RRPP协议在RRPP环上起作用。
RRPP域中的环分为主环和子环,主环和子环通过配置时指定的级别来区分,主环的级别配置为0,子环的级别配置为1。
如图1所示RRPP域Domain1中包含了两个以太网环Ring1和Ring2。
Ring1为主环,级别配置为0;
Ring2为子环,级别配置为1。
2.1.3RRPP控制VLAN
控制VLAN是相对于数据VLAN来说的,在RRPP域中,控制VLAN只用来传递RRPP协议报文。
每个RRPP域配有两个控制VLAN,分别为主控制VLAN和子控制VLAN,配置时只需要指定主控制VLAN,而把比主控制VLAN的ID值大1的VLAN作为子控制VLAN。
主环协议报文在主控制VLAN中传播,子环协议报文在子控制VLAN中传播。
主控制VLAN和子控制VLAN的接口上都不允许配置IP地址。
每个交换机上接入以太网环的端口属于控制VLAN,而且也只有接入以太网环上的端口可以加入控制VLAN。
如图1上每个端口旁边的数字3和4所示,主环的RRPP端口既要属于主控制VLAN,同时也要属于子控制VLAN;
子环的RRPP端口只属于子控制VLAN。
主环被看作是子环的一个逻辑节点,子环的报文通过主环透传;
主环的报文只在主环内部传播,不进入子环。
与控制VLAN相对,数据VLAN用来传输数据报文。
数据VLAN中可以包含RRPP端口,也可以包含非RRPP端口。
2.1.4主节点
以太网环上每一台交换机都称为一个节点,每个RRPP环上必须有一个主节点,而且只能有一个,如图1中的S1是主环的主节点,S6是子环的主节点。
主节点是Polling机制(环网状态主动检测机制)的发起者,也是网络拓扑发生改变后执行操作的决策者。
主节点周期性的从其主端口发送HELLO(健康检测报文)报文,依次经过各传输节点在环上传播。
如果从主节点副端口能够收到自己发送的HELLO报文,说明环网链路完整;
否则如果在规定时间内收不到HELLO报文,就认为环网发生链路故障。
主节点有如下2种状态:
⏹CompleteState(完整状态)
当环网上所有的链路都处于UP状态,主节点可以从副端口收到自己发送的HELLO报文,就说主节点处于Complete状态。
主节点的状态即反映了RRPP环的状态,因此RRPP环也处于Complete状态,此时主节点会阻塞副端口以防止数据报文在环形拓扑上形成广播环路。
⏹FailedState(故障状态)
当环网上有的链路都处于Down状态时,就说主节点处于Complete状态,此时主节点放开副端口以保证环网上各节点通信不被中断。
2.1.5传输节点
RRPP环上除主节点外的所有其它节点都是传输节点,如图1中的S2、S3和S4是主环的传输节点,S5是子环的传输节点。
传输节点负责监测自己的直连RRPP链路的状态,并把链路变化通知主节点,然后由主节点来决策如何处理。
传输节点有如下3种状态:
⏹Link-UpState(UP状态)
传输节点的主端口和副端口都处于UP状态时,就说传输节点处于Link-Up状态。
⏹Link-DownState(Down状态)
传输节点的主端口或副端口处于Down状态时,就说传输节点处于Link-Down状态。
⏹PreforwardingState(临时阻塞状态)
传输节点的主端口或副端口处于阻塞状态时,就说传输节点处于Preforwarding状态。
处于Link-Up状态的传输节点检测到主端口或者副端口发生链路Down时,就从Link-Up迁移到Link-Down状态,并通过发送Link-Down报文通知主节点。
传输节点不从Link-Down状态直接迁移回Link-Up状态。
当处于Link-Down状态的传输节点某端口发生链路Up,并且由此主端口和副端口都恢复成Up状态,传输节点迁移到Preforwarding状态,并阻塞恢复的端口。
传输节点主、副端口都恢复的瞬间,主节点还不能马上知道这一信息,因此其副端口还处于放开状态,如果传输节点立即迁移回Link-Up状态,势必造成数据报文在环网上形成广播环路,因此传输节点从Link-Down先迁移到Preforwarding状态。
当处于Preforwarding状态的传输节点收到主节点发送的COMPLETE-FLUSH-FDB报文时,将迁移到Link-Up状态。
如果COMPLETE-FLUSH-FDB报文在传输过程中不幸丢失,RRPP协议还提供了一种备份机制来恢复临时阻塞的端口并触发状态切换,就是传输节点在规定的时间内收不到COMPLETE-FLUSH-FDB报文,自行迁移到Link-Up状态,并放开临时阻塞端口。
2.1.6边缘节点和辅助边缘节点
两个环形相交时一定有两个交点,同理,子环和主环会有两个交点,这两个交点处的交换机其中一个叫做边缘节点,另外一个叫做辅助边缘节点。
如图1所示,S3为子环的边缘节点,S2为辅助边缘节点。
边缘节点或辅助边缘节点是交换机在子环上的角色,其在主环上的角色为传输节点。
边缘节点和辅助边缘节点都是特殊的传输节点,因此具有与传输节点相同的3种状态,但意义上稍有不同,具体如下:
边缘端口处于UP状态时,就说边缘节点(辅助边缘节点)处于Link-Up状态。
边缘端口处于Down状态时,就说边缘节点(辅助边缘节点)处于Link-Down状态。
边缘端口处于阻塞状态时,就说边缘节点(辅助边缘节点)处于Preforwarding状态。
边缘节点(辅助边缘节点)状态迁移与传输节点基本相同,不同之处在于边缘节点(辅助边缘节点)在端口链路状态变化导致状态迁移时,只管边缘端口的状态(参考上面的边缘节点状态定义)。
边缘节点与辅助边缘节点是检测主环中子环协议报文通道状态机制的两个主体,边缘节点是机制的发起者,由辅助边缘节点判断痛悼状态并报给边缘节点,最后由边缘节点根据通道状态进行决策,应用不同的操作,这一机制在后面的子环协议报文通道状态检测机制中详细介绍。
2.1.7主端口和副端口
主节点和传输节点接入以太网环的两个端口中,一个为主端口,另一个为副端口,端口的角色由用户的配置决定。
主节点的主端口和副端口在功能上是有区别的。
主节点从其主端口发送环路状态探测报文,如果能够从副端口收到该报文,说明本节点所在RRPP环网完整,因此需要阻塞副端口以防止数据环路;
相反如果在规定时间内收不到探测报文,说明环网故障,此时需要放开副端口以保证环上所有节点的正常通信。
传输节点的主端口和副端口在功能上没有区别。
端口的角色同样由用户的配置决定。
特别的,当主环主节点副端口被阻塞时,不仅要禁止数据报文通过,同时要禁止子环的协议报文通过;
放开时则同时放开数据报文和子环协议报文。
也就是说,子环协议报文在主环中视为数据报文处理。
与主环主节点副端口相同,主环传输节点上的RRPP端口(包括主端口和副端口)被阻塞时,要同时阻塞数据报文和子环的协议报文;
放开时二者同时放开。
2.1.8公共端口和边缘端口
边缘节点(辅助边缘节点)接入子环的两个端口中,一个为公共端口,另外一个为边缘端口。
公共端口是边缘节点(辅助边缘节点)上主环和子环公共链路两端的端口,而边缘端口是只接入子环的端口。
概念上并不把公共端口视为子环上的端口,而把它看作是主环的一部分,即使说公共链路是主环上的链路,不是子环上的链路,公共链路的状态变化只报给主环主节点,子环主节点不需要知道。
公共端口和边缘端口的角色由用户的配置决定。
2.2RRPP协议报文
2.2.1RRPP报文类型
表1RRPP协议报文类型列表
报文类型
说明
HEALTH(HELLO)
健康检测报文,由主节点发起,对网络进行环路完整性检测。
LINK-UP
链路UP报文,由发生直连链路状态UP的传输节点、边缘节点或者辅助边缘节点发起,通知主节点环路上有链路恢复。
LINK-DOWN
链路DOWN报文,由发生直连链路状态DOWN的传输节点、边缘节点或者辅助边缘节点发起,通知主节点环路上有链路DOWN,物理环路消失。
COMMON-FLUSH-FDB
刷新FDB报文,由主节点发起,通知传输节点、边缘节点或者辅助边缘节点更新各自MAC地址转发表。
COMPLETE-FLUSH-FDB
环网恢复刷新FDB报文,由主节点发起,通知传输节点、边缘节点或者辅助边缘节点更新各自MAC地址转发表,同时通知传输节点放开临时阻塞端口。
EDGE-HELLO
主环完整性检查报文,由子环的边缘节点发起,同子环的辅助边缘节点接收,子环通过此报文检查其所在域主环的环路完整性。
MAJOR-FAULT
主环故障通知报文,当子环的辅助边缘节点在规定时间内收不到边缘节点发送的EDGE-HELLO报文时发起,向边缘节点报告其所在域主环发生故障。
2.2.2RRPP报文格式
表2RRPP协议报文格式
07
815
1623
2431
3239
4047
DestinationMACAddress(6bytes)
SourceMACAddress(6bytes)
EtherType
PRI
VLANID
FrameLength
DSAP/SSAP
CONTROL
OUI=0x00e02b
0x00bb
0x99
0x0b
RRPPLength
RRPP_VER
RRPPTYPE
DomainID
RingID
0x0000
SYSTEM_MAC_ADDR(6bytes)
HELLO_TIMER
FAIL_TIMER
0x00
LEVEL
HELLO_SEQ
RESERVED(0x000000000000)
DestinationMACAddress:
48bits,协议报文的目的MAC。
SourceMacAddress:
48bits,协议报文的源MAC。
EtherType:
8bits,报文封装类型域,0x8100,表示Tagged封装。
PRI:
4bits,COS(ClassofService)优先级。
VLANID:
12bits,报文所在VLAN的ID。
FrameLength:
16bits,以太网帧长度。
DSAP/SSAP:
16bits,目的服务访问点/源服务访问点。
CONTROL:
8bits。
OUI:
24bits。
RRPP_LENGTH:
16bits,RRPP协议数据单元长度。
RRPP_VERS:
16bits,RRPP版本信息。
DOMAIN_ID:
16bits,报文所属RRPP域的ID。
RING_ID:
16bits,报文所属RRPP环的ID。
SYSTEM_MAC_ADDR:
48bits,发送报文节点的桥MAC。
HELLO_TIMER:
16bits,发送报文节点使用的Hello定时器的超时时间,单位(s)。
FAIL_TIMER:
16bits,发送报文节点使用的Fail定时器的超时时间,单位(s)。
HELLO_SEQ:
16bits,Hello报文的序列号。
3RRPP协议原理
3.1RRPP基本原理
3.1.1RRPP协议基础
⏹每个域上所有节点配置相同的RRPP域ID和控制VLAN
⏹每个域拥有两个控制VLAN,主控制VLAN和子控制VLAN
⏹主环协议报文在主控制VLAN中传播,子环协议报文在子控制VLAN中传播
⏹主环节点上的RRPP端口同时加入主控制VLAN和子控制VLAN,子环上的RRPP端口只加入子控制VLAN
⏹子环的协议报文在主环中视为数据报文处理,与数据报文实现同步阻塞/放开。
3.1.2Polling机制
Polling机制是RRPP环的主节点主动检测环网健康状态的机制,主节点周期性地从其主端口发送HELLO报文,依次经过各传输节点在环上传播。
如果主节点能够从副端口收到自己发送的HELLO报文,说明环网链路完整;
处于Failed状态的主节点从副端口收到自己发送的HELLO报文,立即迁移到Complete状态,放开副端口并刷新FDB,而且还会从主端口发送COMPLETE_FLUSH_FDB报文通知所有传输节点放开临时阻塞端口和刷新FDB。
3.1.3链路状态变化通知机制
链路状态变化通知机制提供了比Polling机制更快环网拓扑改变的处理机制,这一机制的发起者是传输节点。
传输节点总是在监测自己的端口链路状态,一旦状态发生改变,它就会通过发送通知报文把这种变化通知主节点,然后由主节点来决定如何处理。
传输节点检测到端口UP时,将会从配对的RRPP端口向环上发送LINK-UP报文;
如果检测到端口Down,将会发送LINK-DOWN报文。
3.1.4主环上子环协议报文通道状态检查机制
该机制应用在多子环与主环相交的组网中。
子环的协议报文需要通过主环提供的通道在边缘节点和辅助边缘节点的边缘端口之间传播,就好像整个主环是子环上的一个节点。
当主环链路出现故障,边缘节点与辅助边缘节点间子环协议报文的通道中断(主环中与子环的公共链路故障,并且有一条以上的非公共链路故障)时,子环主节点将收不到自己发出的Hello报文,于是Fail定时器超时,子环主节点迁移到Failed状态,放开副端口。
对于普通组网,上述方案既保证了不会形成广播环路,又使备份链路发挥了应有的作用。
但实际组网中常常是双归属组网,如图2中所示,双归属的两个子环Ring2和Ring3借助边缘节点相互连接,本身就形成一个环,当主环Ring1故障发生后,所有子环的主节点副端口放开,子环之间势必形成广播环路(如箭头所示)。
图2单域多环组网无子环报文通道检测机制子环间数据环路示意图
为了消除这一缺陷,引入了主环上子环协议报文通道状态检测机制,这一机制需要边缘节点和辅助边缘节点配合完成,目的就是在子环主节点副端口放开之前,阻塞边缘节点的边缘端口,从而避免子环间形成数据环路。
主环故障后机制产生作用效果如图3所示。
图3单域多环子环报文通道检测机制结果示意图
该机制在应用上的一个限制就是,它必须要在子环主节点副端口超时放开之前阻塞边缘节点的边缘端口,边缘节点是机制的发起者和决策者,辅助边缘节点通道状态的监听者,并负责把通道状态改变及时通知边缘节点。
整个机制的过程描述如下。
1.检测主环上子环协议报文通道状态
子环的边缘节点周期性的向辅助边缘节点发送EDGE-HELLO报文,如图4所示,辅助边缘节点利用EDGE-HELLO报文来判断通道状态。
图4边缘节点发送EDGE-HELLO报文
2.通道中断边缘节点阻塞边缘端口
辅助边缘节点检测到子环协议报文通道中断后,立即向边缘节点发送MAJOR-FAULT报文,边缘节点收到MAJOR-FAULT后,阻塞自己的边缘端口,如图5所示。
图5边缘节点响应MAJOR-FAULT阻塞边缘端口示意图
3.子环主节点超时放开副端口
边缘节点阻塞边缘端口后,由于主环故障导致子环协议报文通道中断,子环主节点不能在规定时间内收到自己发出的HELLO报文,于是迁移到Failed状态,放开副端口,如图6所示。
图6单环多域主环通道中断导致子环Fail示意图
4.子环协议报文通道恢复
主环链路恢复导致边缘节点和辅助边缘节点间通信恢复时,子环协议报文通道恢复正常,子环主节点重新重复端口收到自己发出的HELLO报文,从而切换到Complete状态,阻塞副端口,如图7所示。
图7子环协议通道恢复示意图
主节点会要从主端口发送COMPLETE-FLUSH-FDB报文,边缘节点收到报文后放开边缘端口,如图8所示。
图8子环边缘节点放开边缘端口示意图
3.1.5单环拓扑变化RRPP协议作用过程
下面将以单环为例,以环网状态从健康故障健康的变化过程为线索,来描述RRPP协议的运行细节和拓扑收敛过程。
1健康状态(CompleteState)
当整个环网上所有链路都处于UP状态时,RRPP环处于健康状态,主节点的状态反映整个环网的健康状态。
环网处于健康状态时,为了防止其上的数据报文形成广播环路,主节点阻塞其副端口。
主节点从其主端口周期性的发送HELLO报文,依次经过各传输节点,最后从主节点副端口回到主节点。
环网正常时的情况如图9所示。
图9Complete状态下的RRPP环
2链路故障
当传输节点交换机上的RRPP端口发生链路DOWN时,该节点将从与故障端口配对的状态为UP的RRPP端口发送LINK-DOWN报文通知主节点,LINK-DOWN上报过程如图10所示。
图10传输节点链路中断上报示意图
主节点收到LINK-DOWN报文后,立即将状态切换到Failed状态,放开副端口。
由于网络拓扑发生改变,为免报文定向错误,主节点还需要刷新FDB表,并从主端口发送COMMON-FLUSH-FDB报文通知所有传输节点刷新FDB。
主节点状态向Failed状态迁移过程如图11所示。
图11主节点向Failed状态迁移过程示意图
故障上报的机制是由传输节点发起的,如果LINK-DOWN报文在传输过程中不幸丢失了怎么办?
这时主节点的环网状态检测机制就派上了用场。
如果主节点副端口在规定时间(由Fail定时器定义)内仍没有收到主节点发出的HELLO报文,也认为环网发生故障,对故障的处理过程与传输节点主动上报作相同处理。
3故障恢复
当传输节点交换机上的RRPP端口发生恢复时,传输节点迁移到Preforwarding状态,并阻塞刚刚恢复的端口。
同时,发生链路恢复的传输节点还要从与恢复端口配对的处于UP状态的RRPP端口发送LINK-UP报文通知主节点。
传输节点端口恢复时的处理过程如图12所示。
图12传输节点链路恢复处理过程示意图
主节点收到传输节点发送的LINK-UP报文后,分别从主、副端口发送COMMON-FLUSH-FDB报文,通知所有传输节点刷新FDB。
主节点对LINK-UP报文的响应过程如图13所示。
图13