一种RPR故障保护方法及其设备
技术领域
本发明涉及通信技术领域,尤其涉及一种RPR故障保护方法及其设备。
背景技术
RPR(Resilient Packet Ring,弹性分组环)是一种新型的MAC(Media AccessControl,媒体访问控制)协议,可运行于SONET(Synchronous Optical Network,同步光网络)/SDH(Synchronous Digital Hierarchy,同步数字系列)、DWDM(Dense Wavelength Division Multiplexing,密级波分复用)和以太网之上,为宽带IP城域网运营商提供灵活高效的组网方案。
RPR采用逆向双环结构,数据沿环网在站点之间进行转发,如图1所示。RPR双环中,数据帧发送方向为顺时针的称为0环,也称Outer Ring(外环),数据帧发送方向为逆时针的称为1环,也称Inner Ring(内环)。其它拓扑结构相关定义如下:
站点(Station):RPR环网上的设备,负责接收和转发数据帧;
链路(Link):连接相邻站点的一段传输通道,相邻站点之间由方向相反的两条链路连接;
段(Span):RPR环网上两个相邻站点之间的链路,由方向相反的两条链路组成;
域(Domain):多个连续的段和这些段上的站点构成了域;
西向端口:在0环上接收数据帧、在1环上发送数据帧的物理端口;
东向端口:在0环上发送数据帧、在1环上接收数据帧的物理端口;
边(Edge):当段或和段相邻的站点出现故障时,段不能转发数据就成为边;
环状态:分为闭环和开环。不存在边的环为闭环,存在边的环为开环。
RPR通过拓扑发现来收集环网站点的数目、环状态、站点之间的排列顺序等信息,并生成拓扑数据库。当环网拓扑稳定后,对应的拓扑数据库不再变化。每个RPR站点都会维护一个拓扑数据库,其中保存着整个RPR环网的拓扑信息,是站点生成选环表的主要依据。拓扑数据库包含三个部分:
(1)环网的拓扑信息,如:站点个数、环状态和可用带宽等;
(2)本站点的拓扑信息,如:MAC地址、保护类型、站点保护状态、站点名称、本站点的拓扑信息校验和以及邻居站点的拓扑信息校验和等;
(3)其它站点的拓扑信息,如:MAC地址、有效状态、可达状态、保护类型、站点索引、保留带宽以及站点名称等。
在RPR的拓扑发现过程中,主要通过TP(Topology Protection,拓扑保护)帧、ATD(Attribute Discovery,属性发现)帧和TC(Topology Checksum,拓扑校验和)帧来传播拓扑信息。其中:
TP帧用来广播各站点的配置和状态信息,其它站点则根据收到的TP帧来更新自己的拓扑数据库,最后使得环上的每一个站点对环的拓扑信息都有一个一致的认识;
ATD帧用来传递站点的MAC地址、名称等属性信息,这些属性信息也会保存在拓扑数据库中;
TC帧用来在相邻站点间传递拓扑信息校验和,用于校验邻居站点和本站点的拓扑数据库是否匹配,以判断RPR环网拓扑是否稳定。
这三种帧都是周期性发送的,且周期长度都可以手工配置,其中,TP帧和TC帧有两种发送周期——快速发送周期和慢速发送周期。当环上站点初始化,或者环上站点检测到拓扑发生变化时,将触发TP帧的快速发送,迅速将网络拓扑信息传遍整个网络,以快周期发送9个TP帧后,再以慢周期发送;当环网拓扑稳定并收敛后,将触发TC帧的快速发送,以快周期发送5个TC帧后,再以慢周期发送。无论拓扑情况如何,ATD帧都是按用户设置的周期定时发送。
基于TP、ATD和TC帧的周期发送,RPR故障自愈能力非常强,其保护机制可实现事件检测、快速自愈,以及在光纤或站点故障后业务快速恢复,从而使网络能够迅速检测到故障并做出适当反应,保证业务在50毫秒内可以快速恢复。
如果站点不再具有转发数据帧的能力,比如掉电或光纤断开等原因造成的故障,站点就需要进入保护倒换方式。保护倒换可分为以下两种模式:
Wrapping模式:当RPR环网上的某段链路或某个站点发生故障时,故障点两端的两个站点处自动环回(即把0环和1环连在一起),形成一个闭合单环。该模式可保证站点快速倒换,数据帧基本不会丢失,但比较浪费带宽。
Steering模式:当RPR环网上的某段链路或某个站点发生故障时,故障点两端的两个站点先更新自己的拓扑数据库,再快速发送TP帧给RPR环网上的其它站点,其它站点根据收到的拓扑信息更新拓扑数据库,此后,各站点将按照新的拓扑发送数据帧。该模式避免了带宽的浪费,但由于需要重新收敛,恢复时间较长,可能会造成一些业务的中断以及部分数据帧的丢失。
如图2a所示,正常情况下,数据通过0环由Station D传输到Station B,传输路径为Station D-Station E-Station A-Station B。当Station A与Station E之间的链路发生故障后,进行保护倒换:
在Wrapping模式下,如图2b所示,故障点两端的两个站点(Station A和Station E)上分别进行自动环回,新的数据传输路径为Station D-Station E-Station D-Station C-Station B-Station A-Station B;
在Steering模式下,如图2c所示,数据将直接切换到另一个环(本例中是1环)上进行传输,新的数据传输路径为Station D-Station C-Station B。
不管是Wrapping模式,还是Steering模式,RPR都可以保证拓扑信息和数据业务在50毫秒内快速恢复。
但是在一些特殊应用场景下,却无法发挥其快速切换性能。如图3所示,由3个站点组成一个RPR环,整网上在三层运行OSPF(Open Shortest Path First,开放最短路径优先)、RIP(Routing information Protocol,路由信息协议)、IS-IS(Intermediate System to Intermediate System Routing Protocol,中间系统到中间系统的路由选择协议)或BGP(Border Gateway Protocol,边界网关协议)等路由协议时,在Station C(站点C)上来看,到达Internet的路由有两个等价下一跳:20.1.1.2和20.1.1.3。客户端想访问Internet,上行流量可以通过StationC和StationA,到达Internet,也可以通过Station C和Station B,到达Internet,这两条等价链路可以进行负载分担和互为备份。
以在三层运行OSPF路由协议为例,RPR上的一个站点出现故障时,根据OSPF协议,OSPF邻居间Hello报文的发送间隔默认为10秒,若连续4个发送间隔内未收到OSPF邻居的Hello报文时认为OSPF邻居故障,因此OSPF协议默认要等40秒才会发现邻居不可达,并因此删除不可达下一跳,让流量切换到仍然可达的下一跳,以达到流量备份。
为了达到快速切换,目前常用的方法是将OSPF协议和BFD(BidirectionalForwarding Detection,双向转发检测)协议结合。BFD在两个RPR站点上建立会话,会话建立后,如果在检测时间(或会话超时时间,通常为连续3个发送间隔)内没有收到对端的BFD协议报文则认为对端发生故障,通知OSPF协议,OSPF协议认为邻居不可达,从而快速切换下一跳。
考虑到RPR的保护倒换时间是50毫秒以内,为了保证不误检,BFD协议报文的发送间隔应该大于或等于50毫秒,这里取最小值50毫秒,BFD会话建立后,在检测时间(或会话超时时间)3×50毫秒,即150毫秒内没有收到对端的BFD协议报文,就认为发生故障了,BFD通知OSPF协议,认为邻居不可达,切换路由的下一跳。借助BFD协议,流量切换时间可控制在150毫秒。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
(1)RPR用于三层组网时,可以借助BFD协议来检测OSPF邻居后,路由下一跳切换时间可以控制在150毫秒,但与RPR故障切换时间在50毫秒相比,仍然相差较大;
(2)为了达到150毫秒的快速切换,需要间隔50毫秒发送一个BFD协议报文,这会增加CPU的负担,浪费RPR链路带宽。
发明内容
本发明提供了一种RPR故障保护方法及其设备,用以在不增加RPR链路开销的情况下,解决现有RPR故障保护机制中切换时间长的问题。
本发明实施例提供了一种弹性分组环RPR故障保护方法,应用于运行有三层路由协议的RPR环网,该方法包括:
RPR环网上的站点设备基于RPR拓扑发现机制感知到RPR环网的拓扑发生变化时,根据拓扑变化定位故障站点设备;
所述站点设备根据定位出的故障站点设备的媒体访问控制MAC地址,通过地址解析协议ARP表查询所述故障站点设备的IP地址;
所述站点设备根据查询到的IP地址,删除与相应站点设备之间的三层路由协议邻居关系,并删除三层路由协议路由表中下一跳指向所述IP地址的路由。
本发明实施例还提供了一种站点设备,应用于运行有三层路由协议的RPR环网,其特征在于,包括:
故障站点定位模块,用于基于RPR拓扑发现机制感知到RPR环网的拓扑发生变化时,根据拓扑变化定位故障站点设备;
IP地址确定模块,用于根据定位出的故障站点设备的媒体访问控制MAC地址,通过地址解析协议ARP表查询所述故障站点设备的IP地址;
邻居关系处理模块,用于根据查询到的IP地址,删除与相应站点设备之间的三层路由协议邻居关系;
路由处理模块,用于根据查询到的IP地址,删除三层路由协议路由表中下一跳指向所述IP地址的路由。
与现有技术相比,本发明具有以下有益技术效果:
本发明实施例针对在RPR环网三层应用OSPF、RIP、IS-IS或BGP等路由协议的场景,提供了一种基于RPR拓扑发现机制定位故障站点,利用ARP(Address Resolution Protocol,地址解析协议)表查找故障站点的IP地址,并根据查找到的故障站点的IP地址更新三层路由表,以实现针对三层路由的快速切换,进而实现整个环网的快速故障保护,其故障保护时间基本由RPR拓扑发现机制所能达到的故障保护时间来决定,在RPR拓扑发现机制能够保证50毫秒的故障恢复时间的情况下,上述三层路由的更新时间也基本保证在50毫秒数量级。
附图说明
图1为现有RPR环网结构示意图;
图2a为现有技术中RPR保护倒换前数据传输示意图;
图2b为现有技术中RPR以Wrapping模式保护倒换后的数据传输示意图;
图2c为现有技术中RPR以Steering模式保护倒换后的数据传输示意图;
图3为运行OSPF协议的RPR组网图示意图;
图4为本发明实施例提供的RPR故障保护流程示意图;
图5为本发明实施例提供的站点设备的结构示意图。
具体实施方式
针对现有RPR故障保护机制存在的问题,本发明实施例针对在RPR环网三层应用OSPF、RIP、IS-IS或BGP等路由协议的场景,提供了一种基于RPR拓扑发现机制定位故障站点,利用ARP(Address Resolution Protocol,地址解析协议)表查找故障站点的IP地址,并根据查找到的故障站点的IP地址更新三层路由表,以实现针对三层路由的快速切换,进而实现整个环网的快速故障保护,其故障保护时间基本由RPR拓扑发现机制所能达到的故障保护时间来决定,在RPR拓扑发现机制能够保证50毫秒的故障恢复时间的情况下,上述三层路由的更新时间也基本保证在50毫秒数量级。
下面结合附图对本发明实施例进行详细描述。
如图1所示,在RPR环网中,根据RPR拓扑发现机制,各站点与其它站点之间按照配置的周期交互TP、ATD和TC报文,每个RPR站点上维护有拓扑数据库,其中保存着整个RPR环网的拓扑信息。对于一个站点来说,可根据其西向端口接收TP报文针对0环记录和维护各站点的拓扑信息,根据其东向端口接收TP报文针对1环记录和维护各站点的拓扑信息。在RPR环网正常的情况下,每个站点上的拓扑数据库中针对0环和1环分别记录有其它各个站点的拓扑信息(如MAC地址、站点名称等)。
当RPR环网中有站点故障时,根据RPR拓扑发现机制,其它各站点若在设定时间内没有接收到故障站点发送的TP报文,将认为相应站点故障,即RPR环网拓扑发生变化,此时根据该拓扑变化更新本地的拓扑数据库,并以快速发送周期向其它站点发送TP报文,这样,整个RPR环网上的各站点(除故障站点以外)触发更新自己的拓扑数据库的操作。待各站点以快速周期发送9个TP报文后,各站点恢复为以慢速周期发送TP报文,此时各站点以快速周期向相邻站点发送TC报文以检验拓扑是否稳定和收敛,待以快速周期发送5个TC报文后,各站点恢复以慢速周期发送TC报文,此时整个RPR环网拓扑完成了收敛。
以图3所示的RPR环网为例,在正常情况下,Station C与Station A、StationB建立OSPF邻居关系,客户端访问Internet的上行流量在Station A和Station B上可以进行负载分担和互为备份。在Station C上的拓扑数据库中记录的0环和1环的拓扑中,均包含站点Station A和Station B。
例如,Station C上的拓扑数据库中0环和1环上的站点信息分别如表1和表2所示:
表1、Station entry on ringlet0(0环上的站点表项):
MAC Address(MAC地址) |
Station Name(站点名称) |
00e0-fc44-5b14 |
Station B |
000f-e25a-d824 |
Station A |
表2、Station entry on ringlet1(1环上的站点表项):
MAC Address(MAC地址) |
Station Name(站点名称) |
000f-e25a-d824 |
Station A |
00e0-fc44-5b 14 |
Station B |
当Station A发生故障后,由于Station C在1环上收不到任何TP报文,即Station C收不到1环(A→C和B→A→C)的Station A和Station B发送的TP报文,因此触发Station C更新其拓扑数据库,将其拓扑数据库中1环上的StationA和Station B相关信息删除。由于Station C在0环(A→B→C)上收不到StationA发送的TP报文,只能在0环(B→C)上收到Station B发送的TP报文,因此触发Station C更新其拓扑数据库,将其拓扑数据库中0环上的Station A相关信息删除。
待RPR环网拓扑稳定和收敛后,Station C上的拓扑数据库中0环和1环上的站点信息分别更新为如表3和表4所示:
表3、Station entry on ringlet0(0环上的站点表项):
MAC Address(MAC地址) |
Station Name(站点名称) |
00e0-fc44-5b14 |
Station B |
表4、Station entry on ringlet1(1环上的站点表项):
MAC Address(MAC地址) |
Station Name(站点名称) |
|
|
同理,待RPR环网拓扑稳定和收敛后,Station B上的拓扑数据库中0环上的站点表项为空,1环上的站点表项中包括Station C的相关信息。
通过以上描述可以看出,在RPR环网正常工作情况下,各站点的拓扑数据库中0环上和1环上均存在其它各站点的表项。当有站点发生故障时,RPR拓扑发现机制触发各站点更新其拓扑数据库,从其中一个站点来看,在0环或1环的方向上,其可以看到本站点到该故障站点的链路(不包括故障站点)上的所有站点,但无法看到该故障站点之后的所有站点。表现在拓扑数据库中,即,当有站点发生故障后,其更新后的拓扑数据库中,在0环上仅包含0环方向上该故障站点到本站点的链路上的各站点表项(不包括故障站点),在1环上将仅包含1环方向上该故障站点到本站点的链路上的各站点表项(不包括故障站点)。
本发明实施例根据RPR环网拓扑变化前后,站点上的拓扑数据库的上述变化规律,并利用ARP表,实现快速故障保护的流程可如图4所示,其中,RPR环网的三层应用了OSPF路由协议,各站点之间建立有OSPF邻居关系,该流程可包括:
步骤401,当RPR环网上的站点基于RPR拓扑发现机制感知到RPR环网拓扑变化时,根据该站点的拓扑数据库的变化,定位故障站点。
具体的,RPR环网上的站点可当在规定时间内未收到其它站点发送的TP报文时判断RPR环网拓扑发生变化,从而触发RPR环网拓扑收敛过程(如前述所描述的TP报文快速发送以及TC报文快速发送过程)。当站点在规定时间内未收到其它站点发送的TP报文,并更新自己的拓扑数据库之后,即可立即对故障站点进行定位,也可以是在更新自己的拓扑数据库之后到该站点恢复以慢速发送周期发送TC报文之间的这段时间的任意时间点对故障站点进行定位。优选的,在站点恢复以慢速发送周期发送TC报文后,立即开始对故障站点进行定位,从而基于验证后的拓扑数据库进行故障定位。
根据以上描述的RPR环网在站点故障前后,其它各站点上的拓扑数据库的变化规律,各站点均可以定位出故障站点。以其中一个站点(表示为StationC)为例,其定位故障站点的方法是:
Station C将RPR网络拓扑发生变化后的拓扑数据库中0环和1环上的站点表项,与RPR网络拓扑发生变化前的拓扑数据库中0环或1环上的站点表项进行比较,可以发现变化后的拓扑数据库中有站点表项被删除了,该被删除的站点表项所对应的站点即为发生故障的站点。
步骤402,该站点根据定位出的故障站点的MAC地址,通过ARP表查询该故障站点的IP地址。
其中,ARP表中记录了该站点所访问过的其它站点的MAC地址与IP地址的映射关系,因此可根据MAC地址,通过ARP表查询对应的IP地址。
步骤403,该站点根据查询到的IP地址,删除与具有该IP地址的OSPF邻居之间的邻居关系。
具体的,该站点通过将其OSPF邻居关系配置信息中的相应信息删除,以删除与相应站点的OSPF邻居关系,此操作可采用现有方式实现。
步骤404,该站点删除OSPF路由表中下一跳指向该IP地址的路由。
上述流程中的步骤403和步骤404在时序上没有严格要求。
仍以图3所示的RPR环网为例,Station C上的ARP信息可如表5所示:
表5、ARP表项
Station C上的OSPF路由信息如表6所示:
表6、OSPF路由
在Station A故障前,如表1和表2所示,Station C的拓扑数据库中0环或1环上均包含Station A和Station B的表项;在Station A故障后,如表3和表4所示,Station C的拓扑数据库中1环上的表项为空,0环上包含Station B的表项,可以看出Station A的表项被删除了,因此可以定位出发生故障的站点为Station A。
Station C根据Station A的站点MAC地址000f-e25a-d824,查询如表5所示的ARP表项,确认Station A对应的IP地址为20.1.1.2,然后根据IP地址20.1.1.2,将Station C的OSPF邻居20.1.1.2关系删除,并将表6中下一跳地址为20.1.1.2的路由表项删除,只保留下一跳地址为20.1.1.3的路由,即让户端访问Internet的流量都走Station B,流量切换仍然可以保持在50毫秒数量级。
通过以上描述可以看出,由于现有RPR拓扑发现机制可保证RPR环网中的站点在50毫秒内感知RPR环网拓扑变化,因此采用本发明实施例,一方面可以保证环网拓扑变化时在50毫秒数量级完成三层路由更新,从而实现快速流量切换,另一方面,由于本发明实施例无需在站点之间实施额外的链路检测,因此与现有技术采用基于OSPF协议和BFD协议相结合的方案相比,减少了站点上CPU资源的开销,并节省了RPR链路带宽。
同理,针对在RPR环网三层应用其它路由协议的情况,如RIP、IS-IS或BGP等路由协议,采用本发明上述实施例,也可以在不增加链路开销的前提下,与现有技术相比,减少路由更新和流量切换的时延。
基于相同的技术构思,本发明实施例还提供了一种可应用于RPR环网的站点设备。
参见图5,为本发明实施例提供的站点设备的结构示意图,该站点设备可包括:
故障站点定位模块51,用于基于RPR拓扑发现机制感知到RPR环网的拓扑发生变化时,根据拓扑变化定位故障站点设备;
IP地址确定模块52,用于根据定位出的故障站点设备的媒体访问控制MAC地址,通过地址解析协议ARP表查询故障站点设备的IP地址;
邻居关系处理模块53,用于根据查询到的IP地址,删除与相应站点设备之间的三层路由协议邻居关系;
路由处理模块54,用于根据查询到的IP地址,删除三层路由协议路由表中下一跳指向IP地址的路由。
其中,故障站点定位模块51,具体用于当设定时间内未接收到其它站点设备发送的拓扑保护TP报文时,更新本站点设备的拓扑数据库,并根据所述拓扑数据库的变化定位故障站点设备。
故障站点定位模块51,具体用于当设定时间内未接收到其它站点设备发送的TP报文时,更新本站点设备的拓扑数据库,以快速发送周期发送TP报文;在恢复以慢速周期发送TP报文后,以快速周期发送TC报文,并在恢复以慢速周期发送TC报文后,根据所述拓扑数据库的变化定位故障站点设备。
故障站点定位模块51,具体用于将RPR环网的拓扑发生变化后的拓扑数据库,与RPR环网的拓扑发生变化前的拓扑数据库进行比较,将被删除的站点设备确定为故障站点设备。
三层路由协议可以为开放最短路径优先OSPF协议、路由信息协议RIP、中间系统到中间系统的路由选择协议IS-IS或边界网关协议BGP。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。