CN101262430A - 一种分布式保活的路由设备和方法 - Google Patents
一种分布式保活的路由设备和方法 Download PDFInfo
- Publication number
- CN101262430A CN101262430A CNA2008100667931A CN200810066793A CN101262430A CN 101262430 A CN101262430 A CN 101262430A CN A2008100667931 A CNA2008100667931 A CN A2008100667931A CN 200810066793 A CN200810066793 A CN 200810066793A CN 101262430 A CN101262430 A CN 101262430A
- Authority
- CN
- China
- Prior art keywords
- hello
- neighbours
- keep
- alive
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种分布式保活的路由设备和方法,本发明的协议处理单元模块将接口启用信息或者配置修改信息同步给保活代理模块;保活代理模块根据邻居发送的Hello报文,决定是仅更新本地时间戳;还是既更新本地时间戳,又将收到的Hello报文保存到邻居Hello库,并将该Hello报文转发给路由协议模块;路由协议模块对收到的Hello报文做相应的协议处理后发送给保活代理模块;保活代理将收到的Hello报文保存到本地Hello库,并将该报文发送给邻居。本发明减轻了协议处理单元的负担;实现了当协议处理单元因特殊原因无法正常发送保活报文时,避免了网络振荡,提高了系统的稳定性和整体性能,增强了系统的可扩展性。
Description
技术领域
本发明涉及数据通讯领域,尤其涉及一种用来实现分布式保活报文处理的路由设备和方法。
背景技术
随着因特网的高速发展,IP网络逐渐成为人们日常工作和生活中必不可少的工具,而且IP网络规模和复杂程度也不断增大,为了满足这种需求,现在的路由设备通常都按照某种分布式的架构实现,这些路由设备都具有一个协议处理单元(RPU),同时拥有至少一个接口板,RPU上处理所有与动态路由协议相关的内容,并进行路由决策,将最佳路由分发给接口板,而接口板则执行报文的转发功能,特别的,所有动态路由相关的协议报文也是最先到达接口板,然后再由接口板转给RPU。
对于大多数的动态路由协议,会使用一种保活机制来进行邻居关系的动态发现和维护,保活机制通常是通过发送保活报文实现的,这种报文会周期性发送和接收,而且为了提高对网络变化的反应速度,这些报文的发送周期有逐渐变小的趋势,而从另一方面来看,在网络拓扑结构没有发生变化的时候,这些报文的内容是完全相同的。保活报文周期性收发工作都是由RPU来完成,加大了RPU的工作量。
更重要的是,在某些特定的条件下(例如RPU热备份重启时,或RPU处于高负荷的情况下),RPU如果无法正常发送保活报文将导致邻居断链,引起网络振荡。
发明内容
本发明所要解决的技术问题是,提供一种分布式保活的路由设备,并在该设备的基础上提供一种分布式保活的路由方法,本发明减轻了RPU的负担;同时也实现了当RPU因特殊原因无法正常发送保活报文时,避免了网络振荡,提高了系统的稳定性和整体性能,增强了系统的可扩展性。
一种分布式保活的路由设备,包括RPU以及接口板,其中,RPU中包括有路由协议模块,所述接口板上还包括有保活代理模块,该模块用于存储或者转发邻居和RPU发送的保活报文。
所述保活代理模块包括一个邻居Hello库和一个本地Hello库,邻居Hello库用来存储邻居发送过来的Hello报文,发现邻居发送的Hello报文是否发生变化并记录最后一次收到该邻居保活报文的时间戳;本地Hello库用于存储路由协议模块发送出去的Hello报文,周期性的发送该库中的Hello报文给邻居。
所述保活代理模块中还包括一个定时器,用于定时发送Hello报文给邻居并检查邻居Hello报文的发送是否超时。
一种分布式保活的路由方法,包括以下步骤:
步骤一:RPU将接口启用信息或者配置修改信息同步给保活代理模块;
步骤二:保活代理模块收到邻居发送的Hello报文后,检查邻居Hello库中是否存在相同的Hello报文,若是,则更新本地时间戳;否则,将收到的Hello报文保存到邻居Hello库,更新本地时间戳,并将该Hello报文转发给路由协议模块;
步骤三:路由协议模块对收到的Hello报文做相应的协议处理后发送给保活代理模块;
步骤四:保活代理将收到的Hello报文保存到本地Hello库,并将该报文发送给邻居。
本方法中,若RPU上有接口关闭,则通知保活代理模块,保活代理模块将其对应的Hello报文从本地Hello库中删除。
所述保活代理模块周期性的将本地Hello库中的报文发送给邻居。
所述步骤二进一步包括以下步骤:
步骤A:保活代理模块检查邻居Hello库中是否存在相同邻居发送过来的Hello报文,若是, 执行步骤B;否则,执行步骤C;
步骤B:保活代理模块检查邻居Hello库中是否有与收到的报文相同的报文,若是,则更新该邻居最后收到Hello报文的时间戳;否则,执行步骤C;
步骤C:保活代理模块将收到的Hello报文保存到邻居Hello库,更新该邻居最后收到Hello报文的时间戳,将该Hello报文转发给路由协议模块做进一步处理。
若所述保活代理模块在设定时间内未收到邻居的Hello报文,则将该邻居的Hello报文从邻居Hello库中删除,并发送邻居Down消息给路由协议模块,路由协议模块收到消息后做标准的邻居Down处理。
所述步骤四进一步包括:
保活代理模块解析收到的Hello报文,获得Hello和Dead时间间隔,并将该信息保存到配置中。
所述设定时间为Hello和Dead时间间隔。
本发明减少了接口板与RPU之间的内部通讯量,减轻了RPU的负担(因为RPU往往是整个系统的性能瓶颈所在),更重要的是,将保活报文下放到接口板,可以保证在一些特殊情况下,如RPU热备份重启时,或者RPU处于高负荷的情况下,保活报文仍然能够正确的收发,从而避免的与邻居断链,提高系统稳定性和性能指标。
附图说明
图1是本发明所述设备的原理框图;
图2是邻居发现的交互过程图;
图3是邻居保活的交互过程图;
图4是本发明对配置信息的处理流程图;
图5是本发明对邻居Hello报文的处理流程图;
图6是本发明对RPU Hello报文的处理流程图;
图7是本发明中保活代理模块的定时器工作流程图。
具体实施方式
下面结合附图对本发明的技术方案进行详细说明。
如图1所示,本发明在路由设备中的接口板上新增了一个协议保活代理模块,用于存储或者转发邻居和RPU发送的保活报文,对保活报文进行初步处理;而不需要RPU的参与,除非该报文导致协议状态发生变化。该模块自己不构造保活报文,而仅仅通过存储转发邻居和RPU发送的保活报文,来达到分布式的效果,大大简化的具体实现。
保活代理模块中包括有两个Hello库,一个是邻居Hello库,一个是本地Hello库,分别用来存储邻居发送过来的Hello和路由协议模块发送出去的Hello报文。
邻居Hello库的作用是用来发现邻居发送的Hello是否发生变化,从而决定是否需要转发给路由协议做进一步处理;同时,邻居Hello库中还记录着最后一次收到该邻居保活报文的时间戳,用来判断邻居是否超时。
本地Hello库的作用是用来周期性的发送该库中的Hello报文给邻居,从而到达保活的效果。邻居的发现和维护由RPU上的路由协议模块和保活代理模块共同协作完成。
保活代理模块中还包括一个定时器,用来计算发送Hello报文的时间和判断邻居报文是否超时未发送。
如图2和图3所示,本发明所述方法具体包括以下步骤:
步骤201:若RPU上某个接口启用,或者修改配置,则以配置信息的形式同步给保活代理模块。
步骤202:保活代理模块在收到邻居发送过来的Hello报文后,执行以下操作:
2021:若该Hello报文是第一次Hello报文,则将该报文保存到邻居Hello库,并转发给给路由协议模块,否则执行步骤2022;
2022:保活代理模块检查邻居Hello库中是否存在相同邻居发送过来的Hello报文,若是,执行步骤2023;否则,执行步骤2024;
2023:保活代理模块检查邻居Hello库中的报文与收到的报文是否相同,若是,则更新该邻居最后收到Hello报文的时间戳,即更新本地时间;否则,执行步骤2024;
2024:保活代理模块将收到的Hello报文保存到邻居Hello库,更新该邻居最后收到Hello报文的时间戳,即更新本地时间,将该Hello报文转发给路由协议模块做进一步处理。
步骤203:路由协议模块收到Hello报文后,进行相应的协议处理,然后将处理后的Hello报文发送给保活代理模块。
步骤204:保活代理收模块到该Hello报文后,保存到本地Hello库,并解析Hello报文,获得Hello和Dead时间间隔,将该信息保存到配置中,最后发送该Hello报文给邻居。
对于无法从Hello报文中解析出这些时间的某些协议,这些时间应该在配置信息中发送过来。
如图3所示,在保活期间,保活代理模块需要周期性的将本地Hello库中的报文发送给邻居,以实现与邻居的保活。
若保活代理模块在Dead时间内没有收到邻居发送的Hello报文,则认为与邻居断链,将该邻居的Hello报文从邻居Hello库中删除,并发送邻居Down消息给路由协议,由路由协议做标准的邻居Down处理;
若路由协议模块关闭某个接口的协议功能,则通知保活代理模块,保活代理则清除其对应的本地Hello报文。
下面以开放式最短路径优先(Open Shortest Path First,OSPF)路由协议为例对本发明做进一步说明。
OSPF路由协议通过周期性的发送和接收Hello报文达到邻居发现和保活的效果,在接口板上增加一个OSPF保活代理,当用户在某个接口上启用OSPF协议,或者修改OSPF特定配置时,RPU的配置信息发生变化后,会通告给接口板的保活代理模块,这些信息主要包括接口上是否启用OSPF及其他配置,区域的配置信息以及路由器ID等,如图4所示,保活代理模块收到RPU的消息(即Hello报文)后做如下操作:
步骤401:检查配置类型是否是接口配置发生变化,若是,则删除邻居Hello库中与该接口对应的Hello报文。
步骤402:检查该配置类型是否是接口关闭OSPF功能,若是,则删除本地Hello库中该接口对应的Hello报文。
步骤403:检查配置类型是否是区域选项配置发生变化,若是,则将邻居Hello库中该区域上的所有Hello报文删除。
步骤404:检查配置类型是否是路由器ID发生变化,若是,则将邻居Hello库中所有Hello报文删除。
如图5所示,保活代理模块在收到邻居发送过来的Hello报文后,进行如下处理:
步骤501:检查邻居Hello库中是否存在相同邻居发送过来的Hello报文若是,执行步骤505;否则,执行步骤502;
步骤502:以接口和邻居ID为关键字将收到的Hello报文存储(或者更新)到邻居Hello库;
步骤503:更新该邻居最后收到Hello报文的时间戳,即更新本地时间戳;
步骤504:将该Hello报文转发给RPU上协议代理模块的OSPF协议做进一步处理;
步骤505:检查邻居Hello库中是否有与新收到的报文相同的报文,若是,则更新该邻居最后收到Hello报文的时间戳,即本地时间戳;否则执行步骤502。
如图6所示,保活代理模块收到RPU上协议代理模块的OSPF发送的Hello报文后,做如下处理:
步骤601:将该Hello报文保存到本地Hello库,若对应接口的Hello报文已经存在,则更新该库;
步骤602:解析该Hello报文,获得Hello和Dead时间间隔,并将该信息保存到配置中去,发送下一次本地Hello库中Hello报文的时间间隔和判断超时的时间间隔均以最新的Hello报文解析获得的时间间隔为准;
步骤603:将新的Hello报文发送给邻居;
步骤604:以获得的时间间隔为周期,定时将本地Hello库中的Hello报文发送给邻居。
保活代理模块周期性的发送本地Hello库中的报文给邻居,并判断与邻居链接是否超时,如图7所示,这些工作由定时器完成,具体流程如下:
步骤701:定时器启动后,若到达Hello周期,即步骤602所述的时间间隔,则将备份的本地Hello库中的Hello报文发送给邻居;否则,执行步骤702;
702:检查邻居是否超时(即步骤602所述的时间间隔,)未发送Hello报文过来,若是,将该邻居对应的Hello报文从邻居Hello库中删除,并发送邻居Down消息给RPU上协议代理模块的OSPF,OSPF做标准的邻居Down操作。
使用本发明所述的方法,RPU上协议代理模块的OSPF不需要周期性的发送Hello报文,仅在Hello报文内容发生变化时发送一次Hello报文;不需要根据最后一次收到Hello报文的时间来判断邻居是否超时断链,仅需要根据保活代理发送过来的邻居Down消息来做标准邻居Down操作。
本发明减少了接口板与RPU之间的内部通讯量,减轻了RPU的负担(因为RPU往往是整个系统的性能瓶颈所在),更重要的是,将保活报文下放到接口板,可以保证在一些特殊情况下,如RPU热备份重启时,或者RPU处于高负荷的情况下,保活报文仍然能够正确的收发,从而避免的与邻居断链,提高系统稳定性和性能指标。
上述实施方式描述了本发明在OSPF协议中的应用,但本发明也同样适用于ISIS等其他需要定期保活的动态路由协议。因此,以上描述的实施例是说明性的而不是限制性的,在不脱离本发明的精神和范围的情况下,所有的变化和修改都在本发明的范围之内。
Claims (10)
1、一种分布式保活的路由设备,包括协议处理单元模块以及接口板,其中,协议处理单元模块中包括有路由协议模块,其特征在于,所述接口板上还包括有保活代理模块,该模块用于存储或者转发邻居和协议处理单元模块发送的保活报文。
2、如权利要求1所述的保活的路由设备,其特征在于,所述保活代理模块包括一个邻居Hello库和一个本地Hello库,邻居Hello库用来存储邻居发送过来的Hello报文,发现邻居发送的Hello报文是否发生变化并记录最后一次收到该邻居保活报文的时间戳;本地Hello库用于存储路由协议模块发送出去的Hello报文,周期性的发送该库中的Hello报文给邻居。
3、如权利要求1所述的保活的路由设备,其特征在于,所述保活代理模块中还包括一个定时器,用于定时发送Hello报文给邻居并检查邻居Hello报文的发送是否超时。
4、一种分布式保活的路由方法,其特征在于,包括以下步骤:
步骤一:协议处理单元模块将接口启用信息或者配置修改信息同步给保活代理模块;
步骤二:保活代理模块收到邻居发送的Hello报文后,检查邻居Hello库中是否存在相同的Hello报文,若是,则更新本地时间戳;否则,将收到的Hello报文保存到邻居Hello库,更新本地时间戳,并将该Hello报文转发给路由协议模块;
步骤三:路由协议模块对收到的Hello报文做相应的协议处理后发送给保活代理模块;
步骤四:保活代理将收到的Hello报文保存到本地Hello库,并将该报文发送给邻居。
5、如权利要求4所述的保活的路由方法,其特征在于,本方法中,若协议处理单元模块上有接口关闭,则通知保活代理模块,保活代理模块将其对应的Hello报文从本地Hello库中删除。
6、如权利要求4所述的保活的路由方法,其特征在于,所述保活代理模块周期性的将本地Hello库中的报文发送给邻居。
7、如权利要求4所述的保活的路由方法,其特征在于,所述步骤二进一步包括以下步骤:
步骤A:保活代理模块检查邻居Hello库中是否存在相同邻居发送过来的Hello报文,若是,执行步骤B;否则,执行步骤C;
步骤B:保活代理模块检查邻居Hello库中是否有与收到的报文相同的报文,若是,则更新该邻居最后收到Hello报文的时间戳;否则,执行步骤C;
步骤C:保活代理模块将收到的Hello报文保存到邻居Hello库,更新该邻居最后收到Hello报文的时间戳,将该Hello报文转发给路由协议模块做进一步处理。
8、如权利要求4、6或7所述的保活的路由方法,其特征在于,若所述保活代理模块在设定时间内未收到邻居的Hello报文,则将该邻居的Hello报文从邻居Hello库中删除,并发送邻居Down消息给路由协议模块,路由协议模块收到消息后做标准的邻居Down处理。
9、如权利要求4所述的保活的路由方法,其特征在于,所述步骤四进一步包括:
保活代理模块解析收到的Hello报文,获得Hello和Dead时间间隔,并将该信息保存到配置中。
10、如权利要求8所述的保活的路由方法,其特征在于,所述设定时间为Hello和Dead时间间隔。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100667931A CN101262430A (zh) | 2008-04-25 | 2008-04-25 | 一种分布式保活的路由设备和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100667931A CN101262430A (zh) | 2008-04-25 | 2008-04-25 | 一种分布式保活的路由设备和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101262430A true CN101262430A (zh) | 2008-09-10 |
Family
ID=39962643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100667931A Pending CN101262430A (zh) | 2008-04-25 | 2008-04-25 | 一种分布式保活的路由设备和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101262430A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011012086A1 (zh) * | 2009-07-30 | 2011-02-03 | 迈普通信技术股份有限公司 | 避免邻居关系振荡的方法和通信设备 |
CN102014054A (zh) * | 2010-11-22 | 2011-04-13 | 中兴通讯股份有限公司 | 保活报文的发送方法和设备 |
CN102238093A (zh) * | 2011-08-16 | 2011-11-09 | 杭州华三通信技术有限公司 | 防止业务中断的方法和装置 |
CN102307194A (zh) * | 2011-08-18 | 2012-01-04 | 杭州华三通信技术有限公司 | 一种通用协议进程平滑重启方法和装置 |
CN101771519B (zh) * | 2008-12-31 | 2013-08-07 | 中兴通讯股份有限公司 | 一种消息报文的管理方法及装置 |
CN105991449A (zh) * | 2015-05-27 | 2016-10-05 | 杭州迪普科技有限公司 | 一种保活优化方法及装置 |
CN106161598A (zh) * | 2016-06-28 | 2016-11-23 | 济南中维世纪科技有限公司 | 一种代理保活的系统和方法 |
WO2017000464A1 (zh) * | 2015-06-30 | 2017-01-05 | 中兴通讯股份有限公司 | 保活报文的发送方法及装置 |
-
2008
- 2008-04-25 CN CNA2008100667931A patent/CN101262430A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771519B (zh) * | 2008-12-31 | 2013-08-07 | 中兴通讯股份有限公司 | 一种消息报文的管理方法及装置 |
WO2011012086A1 (zh) * | 2009-07-30 | 2011-02-03 | 迈普通信技术股份有限公司 | 避免邻居关系振荡的方法和通信设备 |
CN102014054A (zh) * | 2010-11-22 | 2011-04-13 | 中兴通讯股份有限公司 | 保活报文的发送方法和设备 |
US9172634B2 (en) | 2011-08-16 | 2015-10-27 | Hangzhou H3C Technologies Co., Ltd. | Restarting a line card |
CN102238093A (zh) * | 2011-08-16 | 2011-11-09 | 杭州华三通信技术有限公司 | 防止业务中断的方法和装置 |
CN102307194A (zh) * | 2011-08-18 | 2012-01-04 | 杭州华三通信技术有限公司 | 一种通用协议进程平滑重启方法和装置 |
CN102307194B (zh) * | 2011-08-18 | 2015-06-10 | 杭州华三通信技术有限公司 | 一种通用协议进程平滑重启方法和装置 |
CN105991449A (zh) * | 2015-05-27 | 2016-10-05 | 杭州迪普科技有限公司 | 一种保活优化方法及装置 |
CN105991449B (zh) * | 2015-05-27 | 2019-09-06 | 杭州迪普科技股份有限公司 | 一种保活优化方法及装置 |
WO2017000464A1 (zh) * | 2015-06-30 | 2017-01-05 | 中兴通讯股份有限公司 | 保活报文的发送方法及装置 |
CN106330696A (zh) * | 2015-06-30 | 2017-01-11 | 中兴通讯股份有限公司 | 保活报文的发送方法及装置 |
CN106161598A (zh) * | 2016-06-28 | 2016-11-23 | 济南中维世纪科技有限公司 | 一种代理保活的系统和方法 |
CN106161598B (zh) * | 2016-06-28 | 2020-04-28 | 济南中维世纪科技有限公司 | 一种代理保活的系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101262430A (zh) | 一种分布式保活的路由设备和方法 | |
CN100505692C (zh) | 高性能路由器bgp路由协议分布并行实现方法 | |
CN100558055C (zh) | 减少错误平滑重启状态持续时长的方法及路由器 | |
US9705782B2 (en) | Method and system for efficient graceful restart in an open shortest path first (OSPF) network | |
CN101800676A (zh) | 链路检测方法、装置和系统 | |
CN100568854C (zh) | 一种保持邻居关系的方法和接口板 | |
CN102281199B (zh) | 路由设备、路由反射器、路由信息处理方法和系统 | |
CN102202333B (zh) | 用于小卫星星座通信的无线自组织网络路由方法 | |
CN104205748A (zh) | 具有协调的业务方向的机架间冗余 | |
CN102594714B (zh) | 一种bgp路由处理方法和bgp路由设备 | |
CN104168154A (zh) | 面向网络态势感知的多级别网络系统及其构建方法 | |
CN105340226B (zh) | 动态路由设备的主备系统切换的方法及其装置 | |
CN103201987A (zh) | 区分路由信息更新的优先级 | |
CN101674241A (zh) | 一种ce双归属网络中避免rip环路的方法及设备 | |
CN101827035B (zh) | 保证优雅重启的方法以及双主控网络设备 | |
CN100561978C (zh) | 一种策略路由装置和方法 | |
CN102065508A (zh) | 一种无线桥接转发设备及方法 | |
CN102395167A (zh) | 无线Mesh网络域间切换方法 | |
CN101984623A (zh) | 防火墙网络地址转换动态负载均衡方法及装置 | |
CN103491011A (zh) | Bgp会话变更方法及设备 | |
CN102420766B (zh) | 一种路由确定方法及路由设备 | |
CN102571605B (zh) | 防止流量中断方法和装置 | |
US9565107B2 (en) | Packet relay system, packet relay method, and packet relay device | |
CN101179448A (zh) | 误入平滑重启状态的检测方法及路由器 | |
CN101854304B (zh) | 容延网络中存储器路由机制下被转移报文的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080910 |