CN104253748B - 基于分布式架构的路由方法和系统 - Google Patents
基于分布式架构的路由方法和系统 Download PDFInfo
- Publication number
- CN104253748B CN104253748B CN201410496011.3A CN201410496011A CN104253748B CN 104253748 B CN104253748 B CN 104253748B CN 201410496011 A CN201410496011 A CN 201410496011A CN 104253748 B CN104253748 B CN 104253748B
- Authority
- CN
- China
- Prior art keywords
- route
- address
- entry
- forwarding information
- route entry
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种基于分布式架构的路由方法和系统,所述分布式架构包括一个或多个同步客户端SyncClient,所述方法包括:获取路由配置信息;采用所述路由配置信息生成第一路由信息库RIB;所述第一路由信息库RIB包括第一转发信息库FIB;当接收到一个或多个同步客户端SyncClient发送的注册信息时,向所述一个或多个同步客户端SyncClient同步所述第一转发信息库FIB;依据所述第一转发信息库FIB生成第一本地转发表LocalFIB。本发明可以提高转发效率,降低路由配置的复杂度,并减少人工配置。
Description
技术领域
本发明涉及电信技术领域,特别是涉及一种基于分布式架构的路由方法和一种基于分布式架构的路由系统。
背景技术
随着互联网的兴起,越来越多的人使用IP(Internet Protocol,网络之间互连的协议)网络,因此,移动运营商对于IP网络的可靠性提出了越来越高的要求。
目前,支撑IP网络的电信级设备均采用基于IP技术的分布式架构,与传统的IP网络节点相比,分布式架构除了拥有多个网络接口外,还可能具有多个业务单板,因此,完成业务处理节点,接口处理节点等与网元间设备的通信可以有以下两种方案:
方案一,参照图1,示出了目前路由通信解决方案一的结构示意图。具体地,网元的各个接口板上实现网络地址转换NAT(Network Address Translation,网络地址转换)功能;网元内部处理节点与外部网元通信时,通过接口板的NAT功能;
当内部处理节点向外部网元传输数据时,先将数据包传输到支持NAT功能的接口处理节点上,接口处理节点检查数据包的报头,获取该数据包的源IP信息,并从NAT映射表中找到与该源IP信息匹配的转换条目,用所选用的外部地址替换内部地址,并转发数据包。
当外部网元对网元内部业务处理节点进行应答时,数据包被送到接口处理节点上,接口处理节点收到目的地址为该网元对外的IP地址后,将用该IP地址通过NAT映射表查找到内部地址,然后将数据包的目的地址替换成内部地址,并将数据包转发到内部业务处理节点。
方案二,参照图2,示出了目前路由通信解决方案二的结构示意图。网元内各处理节点分别做为独立路由实体,配置各自的路由。网元内接口处理节点、业务处理节点等分别配置外部IP地址,在每个节点上分别配置对外网元的路由,或是在各个处理节点上启动动态路由协议。
然而,方案一和方案二都存在缺点,方案一的缺点在于:NAT转换需要对每个进出路由器的IP报文进行IP地址检查,并且需要对转换的IP报文的IP地址、端口进行转换,不可避免地导致IP报文转发效率降低。方案二的缺点在于:将网元内部各个节点做为独立路由实体,需在每个节点上配置路由信息,配置条目数较多,对于小型组网来说是可以接受的,但对于大型组网来说是其弊端。如果在各个节点上启动动态路由协议,对于网元实现而言,需要由专业人员人工配置,复杂度高。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提供一种基于分布式架构的路由方法和系统,用以提高转发效率,降低路由配置的复杂度,并减少人工配置。
发明内容
本发明实施例所要解决的技术问题是提供一种基于分布式架构的路由方法,用以提高转发效率,降低路由配置的复杂度,并减少人工配置。
相应的,本发明实施例还提供了一种基于分布式架构的路由系统,用以保证上述方法的实现及应用。
为了解决上述问题,本发明公开了一种基于分布式架构的路由方法,所述分布式架构包括一个或多个同步客户端SyncClient,所述方法包括:
获取路由配置信息;
采用所述路由配置信息生成第一路由信息库RIB;所述第一路由信息库RIB包括第一转发信息库FIB;
当接收到一个或多个同步客户端SyncClient发送的注册信息时,向所述一个或多个同步客户端SyncClient同步所述第一转发信息库FIB;
依据所述第一转发信息库FIB生成第一本地转发表LocalFIB。
优选地,所述方法还包括:
当接收到数据变更消息时,对所述第一路由信息库RIB进行更新,生成第二路由信息库RIB;所述第二路由信息库RIB包括第二转发信息库FIB;
向所述一个或多个同步客户端SyncClient同步所述第二转发信息库FIB;
依据所述第二转发信息库FIB对所述第一本地转发表LocalFIB进行更新,生成第二本地转发表LocalFIB。
优选地,所述当接收到一个或多个同步客户端SyncClient发送的注册信息时,向所述一个或多个同步客户端同步所述第一转发信息库FIB的步骤包括:
接收所述同步客户端SyncClient发送的注册消息;
依据所述注册消息获取第一转发信息库FIB;
向所述同步客户端SyncClient发送第一路由同步消息;所述第一路由同步消息携带有所述第一转发信息库FIB;
接收所述同步客户端SyncClient针对所述第一路由同步消息返回的第一路由同步确认消息。
优选地,所述第一转发信息库FIB包括一个或多个路由条目,所述一个或多个路由条目具有目的地址、下一跳地址、接口地址和路由类型,所述路由类型包括直连路由和非直连路由,所述非直连路由包括静态路由,和/或,动态路由,
所述依据所述第一转发信息库FIB生成第一本地转发表LocalFIB的步骤包括:
依次获取所述第一转发信息库FIB中的路由条目;
判断所述路由条目的路由类型;
若所述路由条目的路由类型为直连路由,存储所述路由条目至第一本地转发表LocalFIB中;
若所述路由条目的路由类型为非直连路由,获取所述路由条目的接口地址;
采用所述接口地址与所述第一转发信息库FIB中路由类型为直连路由的路由条目的接口地址匹配是否一致;
若不一致,则匹配失败,将所述路由条目置为不可用路由条目;
若一致,则匹配成功,判断所述路由条目的接口地址是否匹配预设IP地址;所述预设IP地址与同步所述第一转发信息库FIB的同步客户端SyncClient匹配;
若匹配,则存储所述路由条目至第一本地转发表LocalFIB中;
若不匹配,则采用所述匹配成功的直连路由的路由条目的下一跳地址替换所述路由条目的下一跳地址,生成第一新路由条目,存储所述第一新路由条目至第一本地转发表LocalFIB中。
优选地,所述数据变更消息包括数据库发送的数据变更消息,所述当接收到数据变更消息时,对所述第一路由信息库RIB进行更新,生成第二路由信息库RIB的步骤包括:
当接收到数据变更消息时,生成一个或多个变更路由条目;
采用所述一个或多个变更路由条目更新所述第一路由信息库RIB中对应的路由条目,生成第二路由信息库RIB。
优选地,所述分布式架构还包括同步服务器SyncServer,所述向所述一个或多个同步客户端SyncClient同步所述第二转发信息库FIB的步骤包括:
当第二路由信息库RIB生成后,触发同步服务器SyncServer向所述一个或多个同步客户端SyncClient发送第二路由同步消息;所述第二路由同步消息携带有第二转发信息库FIB;
接收所述一个或多个同步客户端SyncClient针对所述第二路由同步消息返回的第二路由同步确认消息。
优选地,所述路由类型为直连路由的路由条目还包括状态字段,所述状态字段包括表征接口地址正常的第一状态字段,所述第二路由同步消息包括增加消息,所述依据所述第二转发信息库FIB对所述第一本地转发表LocalFIB进行更新,生成第二本地转发表LocalFIB的步骤包括:
当同步客户端SyncClient接收到增加消息时,将所述增加消息存储在所述第一本地转发表LocalFIB中;
依据所述增加消息,获取所述路由类型为直连路由的路由条目的接口地址;
采用所述接口地址与所述不可用路由条目的接口地址匹配是否一致;
若不一致,则匹配失败,执行判断是否存在不可用路由条目的步骤;
若一致,则匹配成功,将所述不可用路由条目置为可用路由条目;判断所述路由类型为直连路由的路由条目的接口地址是否匹配预设IP地址;所述预设IP地址与同步所述第二转发信息库FIB的同步客户端SyncClient匹配;
若匹配,则存储所述路由类型为直连路由的路由条目至第二本地转发表LocalFIB中;
若不匹配,则采用所述匹配成功的直连路由的路由条目的下一跳地址替换所述路由条目的下一跳地址,生成第二新路由条目,存储所述第二新路由条目至第二本地转发表LocalFIB中;
判断是否存在不可用路由条目;
若存在,则执行所述采用所述接口地址与所述不可用路由条目的接口地址匹配是否一致的步骤;
若不存在,则完成所述第二本地转发表LocalFIB。
优选地,所述状态字段还包括表征接口地址故障的第二状态字段,所述第二路由同步消息包括删除消息,依据所述第二转发信息库FIB对所述第一本地转发表LocalFIB进行更新,生成第二本地转发表LocalFIB的步骤包括:
依据所述删除消息,更新所述节点模块的第二转发信息库FIB;
触发删除所述第一本地转发表LocalFIB的路由条目;
判断所述触发删除的路由条目的路由类型;
若所述路由条目的路由类型为直连路由,则获取所述路由条目的接口地址;
采用所述接口地址与所述第一转发信息库FIB中路由类型为非直连路由的路由条目的接口地址匹配是否一致;
若一致,则匹配成功,将所述路由类型为非直连路由的路由条目置为不可用路由条目;
删除所述第一本地转发表LocalFIB中的不可用路由条目;
判断是否存在未匹配的路由条目,所述路由条目的路由类型包括非直连路由;若存在,则执行采用所述接口地址与所述第一转发信息库FIB中路由类型为非直连路由的路由条目的接口地址匹配是否一致的子步骤,若不存在,则删除完成。
优选地,所述路由配置信息包括接口地址配置信息,和/或,静态路由配置信息,和/或,动态路由配置信息。
依据本发明的实施例,还公开了一种基于分布式架构的路由系统,所述分布式架构包括一个或多个同步客户端SyncClient,所述系统包括:
路由配置信息获取模块,用于获取路由配置信息;
第一路由信息库生成模块,用于采用所述路由配置信息生成第一路由信息库RIB;所述第一路由信息库RIB包括第一转发信息库FIB;
第一转发信息库同步模块,用于在接收到一个或多个同步客户端SyncClient发送的注册信息时,向所述一个或多个同步客户端SyncClient同步所述第一转发信息库FIB;
第一本地转发表生成模块,用于依据所述第一转发信息库FIB生成第一本地转发表LocalFIB。
优选地,所述系统还包括:
第一路由信息库更新模块,用于在接收到数据变更消息时,对所述第一路由信息库RIB进行更新,生成第二路由信息库RIB;所述第二路由信息库RIB包括第二转发信息库FIB;
第二转发信息库同步模块,用于向所述一个或多个同步客户端SyncClient同步所述第二转发信息库FIB;
第二本地转发表生成模块,用于依据所述第二转发信息库FIB对所述第一本地转发表LocalFIB进行更新,生成第二本地转发表LocalFIB。
优选地,所述第一转发信息库同步模块包括:
注册消息接收子模块,用于接收所述同步客户端SyncClient发送的注册消息;
第一转发信息库获取子模块,用于依据所述注册消息获取第一转发信息库FIB;
第一路由同步消息发送子模块,用于向所述同步客户端SyncClient发送第一路由同步消息;所述第一路由同步消息携带有所述第一转发信息库FIB;
第一路由同步确认消息接收子模块,用于接收所述同步客户端SyncClient针对所述第一路由同步消息返回的第一路由同步确认消息。
优选地,所述第一转发信息库FIB可以包括一个或多个路由条目,所述一个或多个路由条目可以具有目的地址、下一跳地址、接口地址和路由类型,所述路由类型可以包括直连路由和非直连路由,所述非直连路由可以包括静态路由,和/或,动态路由,
所述第一本地转发表生成模块包括:
路由条目获取子模块,用于依次获取所述第一转发信息库FIB中的路由条目;
路由类型判断子模块,用于判断所述路由条目的路由类型;
路由条目存储子模块,用于在所述路由条目的路由类型为直连路由,存储所述路由条目至第一本地转发表LocalFIB中;
第一接口地址获取子模块,用于在所述路由条目的路由类型为非直连路由,获取所述路由条目的接口地址;
第一匹配子模块,用于采用所述接口地址与所述第一转发信息库FIB中路由类型为直连路由的路由条目的接口地址匹配是否一致;
不可用路由条目子模块,用于在接口地址不一致,匹配失败时,将所述路由条目置为不可用路由条目;
第一预设IP地址判断子模块,用于在接口地址一致,匹配成功时,判断所述路由条目的接口地址是否匹配预设IP地址;所述预设IP地址与同步所述第一转发信息库FIB的同步客户端SyncClient匹配;
第一属于判定子模块,用于在接口地址匹配预设IP地址时,存储所述路由条目至第一本地转发表LocalFIB中;
第一不属于判定子模块,用于在接口地址不匹配预设IP地址时,采用所述直连路由的路由条目的下一跳地址替换所述路由条目的下一跳地址后,存储所述路由条目至第一本地转发表LocalFIB中。
优选地,所述数据变更消息可以包括数据库发送的数据变更消息,所述第一路由信息库更新模块包括:
变更路由条目生成子模块,用于在接收到数据变更消息时,生成一个或多个变更路由条目;
第二路由信息库生成子模块,用于采用所述一个或多个变更路由条目更新所述第一路由信息库RIB中对应的路由条目,生成第二路由信息库RIB。
优选地,所述分布式架构还包括同步服务器SyncServer,所述第二转发信息库同步模块包括:
第二路由同步消息发送子模块,用于在第二路由信息库RIB生成后,触发同步服务器SyncServer向所述一个或多个同步客户端SyncClient发送第二路由同步消息;所述第二路由同步消息携带有第二转发信息库FIB;
第二路由同步确认消息接收子模块,用于接收所述一个或多个同步客户端SyncClient针对所述第二路由同步消息返回的第二路由同步确认消息。
优选地,所述路由类型为直连路由的路由条目还可以包括状态字段,所述状态字段可以包括表征接口地址正常的第一状态字段,所述第二路由同步消息可以包括增加消息,所述第二本地转发表生成模块包括:
增加消息存储子模块,用于在同步客户端SyncClient接收到增加消息时,将所述增加消息存储在所述第一本地转发表LocalFIB中;
第二接口地址获取子模块,用于依据所述增加消息,获取所述路由类型为直连路由的路由条目的接口地址;
第二匹配子模块,用于采用所述接口地址与所述不可用路由条目的接口地址匹配是否一致;
跳转子模块,用于在接口地址不一致,匹配失败时,执行判断是否存在不可用路由条目的步骤;
第二预设IP地址判断子模块,用于在接口地址一致,匹配成功时,判断所述路由类型为直连路由的路由条目的接口地址是否匹配预设IP地址;所述预设IP地址与同步所述第二转发信息库FIB的同步客户端SyncClient匹配;
第二属于判定子模块,用于在接口地址匹配预设IP地址时,存储所述路由类型为直连路由的路由条目至第二本地转发表LocalFIB中;
第二不属于判定子模块,用于在接口地址不匹配预设IP地址时,采用所述直连路由的路由条目的下一跳地址替换所述路由条目的下一跳地址后,存储所述路由条目至第二本地转发表LocalFIB中;
不可用路由条目存在判断子模块,用于判断是否存在不可用路由条目;
存在判定子模块,用于在存在不可用路由条目时,执行所述采用所述接口地址与所述不可用路由条目的接口地址匹配是否一致的步骤;
不存在判定子模块,用于在不存在不可用路由条目时,完成所述第二本地转发表LocalFIB。
优选地,所述状态字段还包括表征接口地址故障的第二状态字段,所述第二本地转发表生成模块包括:
第二转发信息库更新子模块,用于依据所述删除消息,更新所述节点模块的第二转发信息库FIB;
路由条目触发删除子模块,用于触发删除所述第一本地转发表LocalFIB的路由条目;
路由类型判断子模块,用于判断所述触发删除的路由条目的路由类型;
直连路由判定子模块,用于在判定所述路由条目的路由类型为直连路由,获取所述路由条目的接口地址;
第三匹配子模块,用于采用所述接口地址与所述第一转发表FIB中路由类型为非直连路由的路由条目的接口地址匹配是否一致;
匹配成功子模块,用于在接口地址一致,匹配成功时,将所述路由类型为非直连路由的路由条目置为不可用路由条目;
不可用路由条目删除子模块,用于删除所述第一本地转发表中的不可用路由条目;
未匹配的路由条目存在判断子模块,用于判断是否存在未匹配的路由条目,所述路由条目的路由类型包括非直连路由;
路由条目存在子模块,用于在判定存在未匹配的路由条目时,执行采用所述接口地址与所述第一转发表FIB中路由类型为非直连路由的路由条目的接口地址匹配是否一致的子步骤,
路由条目不存在子模块,用于在判定不存在未匹配的路由条目时,删除完成。
优选地,所述路由配置信息包括接口地址配置信息,和/或,静态路由配置信息,和/或,动态路由配置信息。
与现有技术相比,本发明实施例包括以下优点:
本发明通过将第一转发信息库FIB同步至各被控节点,生成第一本地转发表LocalFIB,采用第一本地转发表LocalFIB转发报文,可以避免网络地址转换,从而提高转发效率,并且,在被控节点上配置必要的路由后,其他被控节点可以依据第一转发信息库FIB自动生成第一本地转发表LocalFIB,因此可以减少人工配置,降低路由配置的复杂度。
进一步地,本发明通过融合检测机制,将正常或故障消息发送给主控节点,触发路由条目的增加或删除,可以及时更新第一本地转发表LocalFIB,从而可以减少节点故障或接口故障对业务的影响,便故障处理简单化,将各个功能模块化,可以在分布式架构下灵活部署。
更进一步地,本发明通过数据库发送数据变更消息,对第一路由信息库RIB进行更新,从而更新生成第二转发信息库FIB,并且,主动将第二转发信息库FIB同步至被控节点,可以及时更新被控节点的第一本地转发表LocalFIB,从而可以减少节点故障或接口故障对业务的影响,提高更新速度,缩短更新时间,降低延迟。
附图说明
图1示出了目前路由通信解决方案一的结构示意图;
图2示出了目前路由通信解决方案二的结构示意图;
图3示出了本发明一种基于分布式架构的路由方法实施例1的步骤流程图;
图4示出了本发明一种基于分布式架构的路由方法路由同步过程的流程示意图;
图5示出了本发明一种基于分布式架构的路由方法生成第一本地转发表的流程示意图;
图6示出了本发明一种基于分布式架构的路由方法实际应用的结构示意图;
图7示出了本发明一种基于分布式架构的路由方法实施例2的步骤流程图;
图8示出了本发明一种基于分布式架构的路由方法同步第二转发信息库的流程示意图;
图9示出了本发明一种基于分布式架构的路由方法增加路由条目的流程示意图;
图10示出了本发明一种基于分布式架构的路由方法删除路由条目的流程示意图;
图11示出了本发明一种基于分布式架构的路由系统实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例的核心构思之一在于,在基于IP(Internet Protocol,网络之间互连的协议)技术分布式架构下采用内部路由机制,生成网元内各节点到内部节点以及外部网元的第一转发信息库FIB,从而在各被控节点中同步第一转发信息库FIB,并生成第一本地转发表LocalFIB,采用第一本地转发表LocalFIB转发报文,使得被控节点可以灵活部署,将整个网元作为一个路由实体,减少了操作台界面上路由条目配置。
参照图3,示出了本发明一种基于分布式架构的路由方法实施例1的步骤流程图,所述分布式架构可以包括一个或多个同步客户端SyncClient,具体可以包括如下步骤:
步骤301,获取路由配置信息;
在具体应用中,路由配置信息可以是预先设置好的,可以包括对外的路由配置信息、对内的路由配置信息。
在本发明实施例的一种优选示例中,所述路由配置信息可以包括接口地址配置信息,和/或,静态路由配置信息,和/或,动态路由配置信息。
在具体实现中,接口地址配置信息和静态路由配置信息可以存储在数据库中,动态路由配置信息可以由路由协议获取。
接口地址配置信息可以反映网元内部拓扑结构。
静态路由配置信息可以是指由用户或网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由配置信息。静态路由配置信息在缺省情况下是私有的,不会传递给其他的路由器,当然,网管员也可以设置成共享的。静态路由一般适用于比较简单的网络环境,在这样的环境中,网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由配置信息。
动态路由配置信息可以是通过相互连接的路由器之间交换彼此信息,然后按照一定的算法自动优化出来的,动态路由配置信息可以在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果。
步骤302,采用所述路由配置信息生成第一路由信息库RIB;所述第一路由信息库RIB包括第一转发信息库FIB;
在具体实现中,第一路由信息库RIB(Routing Information Base)可以是一个电子表格(文件)或类数据库。
例如,一种第一路由信息库RIB路由生成规则的示例如下:
第一路由信息库RIB可以包括:直连路由、静态路由、动态路由等三种路由类型。
直连路由:可以根据来自数据库的接口地址配置信息生成反映网元内部拓扑结构的路由信息。生成的路由条目如下表1所示,插入到第一路由信息库RIB中:
目的地址: | ipaddrInterfaceNet |
下一跳地址: | 该地址所在物理信息 |
接口地址: | ipaddrInterfaceIP |
路由类型: | 直连路由 |
表1
其中,下一跳地址可以为网元内各节点通信的内部地址,对于不同分布式系统,该下一跳地址定义可能不同,在本发明实施例中对此不加以限制。
静态路由:可以由网络管理员通过控制台配置,静态路由的路由条目优先级仅次于直连路由的路由条目。此外,静态路由需要在各接口处理节点上配置外部网元的路由信息。
动态路由:由动态协议动态获得的路由信息,动态路由的路由条目优先级优先级定义低于静态路由的路由条目。
其中,静态路由和动态路由为非直连路由,所谓非直连路由,可以是通过路由协议从其他的网元设备中学习到的路由方式;所谓直连路由,可以是网元接口所连接的子网的路由方式。
第一转发信息库FIB可以直接作用于报文,指示报文前往特定的接口,第一路由信息库RIB可以是第一转发信息库FIB生成的依据,第一转发信息库FIB可以通过第一路由信息库RIB生成。
步骤303,当接收到一个或多个同步客户端SyncClient发送的注册信息时,向所述一个或多个同步客户端SyncClient同步所述第一转发信息库FIB;
根据路由配置信息可以完成第一路由信息库RIB,之后,主控节点可以等待接收一个或多个同步客户端SyncClient发送的注册消息,如果收到同步客户端SyncClient发送的注册消息,则可以向该同步客户端SyncClient同步第一转发信息库FIB。
在本发明实施例的一种优选示例中,所述步骤303具体可以包括以下子步骤:
子步骤S11,接收所述同步客户端SyncClient发送的注册消息;
作为本发明实施例具体应用的一种示例,同步客户端SyncClient可以位于被控节点,被控节点初始化启动后,可以由同步客户端SyncClient发送注册消息给主控节点的同步服务器SyncServer,请求启动路由同步过程,同步服务器SyncServer接收到该同步客户端SyncClient发送的注册消息后,可以启动路由同步过程。
子步骤S12,依据所述注册消息获取第一转发信息库FIB;
主控节点的同步服务器SyncServer可以从第一路由信息库RIB获取当前的第一转发信息库FIB。
子步骤S13,向所述同步客户端SyncClient发送第一路由同步消息;所述第一路由同步消息携带有所述第一转发信息库FIB;
当主控节点的同步服务器SyncServer获取到第一转发信息库FIB时,可以向所述同步客户端SyncClient发送第一路由同步消息,第一路由同步消息携带有所述第一转发信息库FIB,因此,第一转发信息库FIB同步可以给同步客户端SyncClient。
子步骤S14,接收所述同步客户端SyncClient针对所述第一路由同步消息返回的第一路由同步确认消息。
被控节点接收到第一转发信息库FIB后,被控节点的同步客户端SyncClient可以发送第一路由同步确认消息,用以响应第一路由同步消息。
需要说明的是,整个路由同步过程可以采用确认及重传机制。
参照图4,示出了本发明一种基于分布式架构的路由方法路由同步过程的流程示意图。
如图4所示,被控节点初始化启动后,可以向主控节点发送注册消息,开始获取第一转发信息库FIB。流程如下:
a)、被控节点初始化启动后,可以由同步客户端SyncClient发送注册消息给主控节点的同步服务器SyncServer,请求启动路由同步过程;
b)、主控节点的同步服务器SyncServer可以从第一路由信息库RIB中获得当前的第一转发信息库FIB;
c)、主控节点的同步服务器SyncServer可以发送第一路由同步消息给被控节点的同步客户端SyncClient;
d)、被控节点的同步客户端SyncClient可以向主控节点的同步服务器SyncServer响应第一路由同步确认消息;
e)、整个同步过程可以采用确认及重传机制。
步骤304,依据所述第一转发信息库FIB生成第一本地转发表LocalFIB。
被控节点接收到主控节点同步的第一转发表FIB后,可以获取到整个网元的拓扑图,再根据第一转发表FIB,可以生成以网元内各节点和网元间设备为目的地址的转发条目,并且,可以保存在第一本地转发表LocalFIB中,以供转发报文时使用。
在本发明实施例的一种优选示例中,所述第一转发信息库FIB可以包括一个或多个路由条目,所述一个或多个路由条目可以具有目的地址、下一跳地址、接口地址和路由类型,所述路由类型可以包括直连路由和非直连路由,所述非直连路由包括静态路由,和/或,动态路由,所述步骤304具体可以包括以下子步骤:
子步骤S201,依次获取所述第一转发信息库FIB中的路由条目;
子步骤S202,判断所述路由条目的路由类型;若所述路由条目的路由类型为直连路由,执行子步骤S203;若所述路由条目的路由类型为非直连路由,执行子步骤S204;
子步骤S203,存储所述路由条目至第一本地转发表LocalFIB中;
子步骤S204,获取所述路由条目的接口地址;
子步骤S205,采用所述接口地址与所述第一转发信息库FIB中路由类型为直连路由的路由条目的接口地址匹配是否一致;若否,则执行子步骤S206;若是,则执行子步骤S207;
子步骤S206,匹配失败,将所述路由条目置为不可用路由条目;
子步骤S207,匹配成功,判断所述路由条目的接口地址是否匹配预设IP地址;所述预设IP地址与同步所述第一转发信息库FIB的同步客户端SyncClient匹配;若是,则则执行子步骤S208;若否,则执行子步骤S209;
子步骤S208,存储所述路由条目至第一本地转发表LocalFIB中;
子步骤S209,采用所述匹配成功的直连路由的下一跳地址替换所述路由条目的下一跳地址,生成第一新路由条目,存储所述第一新路由条目至第一本地转发表LocalFIB中。
参照图5,示出了本发明一种基于分布式架构的路由方法生成第一本地转发表的流程示意图。
如图5所示,路由同步过程启动后,第一转发信息库可以同步到被控节点中,第一转发信息库中路由条目的类型可以包括直连路由,和/或,非直连路由。
依次获取第一转发信息库中的路由条目,判断路由条目的路由类型;
对于同步的路由类型为直连路由的路由条目,可以不做替换,直接保存到第一本地转发表中。
对于同步的路由类型为非直连路由的路由条目,可以获取该路由条目的接口地址,以该接口地址在第一转发信息库中匹配直连路由的接口地址,若该接口地址与直连路由的路由条目的接口地址不一致,则匹配失败,可以将所述路由条目置为不可用路由条目,也即置该路由条目不可用;若该接口地址与直连路由的路由条目的接口地址完全一致,则匹配成功,可以判断路由条目的接口地址是否属于预设IP地址,预设IP地址可以由同步第一转发信息库FIB的同步客户端SyncClient控制,各个同步客户端可以预先分配了其对应的IP区段,若是属于该同步客户端的预设IP地址,则可以存储该路由条目至第一本地转发表LocalFIB中,否则,采用所述直连路由的路由条目的下一跳地址替换所述路由条目的下一跳地址,而后,可以存储该路由条目至第一本地转发表LocalFIB中。
本发明通过将第一转发信息库FIB同步至各被控节点,生成第一本地转发表LocalFIB,可以避免网络地址转换,从而提高转发效率,并且,在被控节点上配置必要的路由后,其他被控节点可以依据第一转发信息库FIB自动生成第一本地转发表LocalFIB,因此可以减少人工配置,降低路由配置的复杂度。
为使本领域技术人员更好地理解本发明,以下通过实际应用为例,进一步说明本发明实施例。
参照图6,示出了本发明一种基于分布式架构的路由方法实际应用的结构示意图。
如图6所示,依据功能的不同,可以将配置子模块、第一路由信息库、同步服务器(SyncServer)和第一转发信息库划分为主控模块(rtmngmt-mc),可以将同步客户端(SyncClient)、同步的第一转发信息库和第一本地转发表划分为节点模块(rtmngmt-nc),可以将端口检测和基于协议检测划分为检测模块,其中主控模块、检测模块可以部署在全局控制单板;节点模块可以部署在节点处理板。主控模块中的节点可以为主控节点,节点模块中的节点可以为被控节点。
主控模块可以负责接收来自数据库的接口地址配置信息,静态路由配置信息,以及由路由协议获取动态路由配置信息,可以生成并维护第一路由信息库RIB,第一路由信息库RIB可以包括直连路由、静态路由、动态路由等路由类型,并且可以同步到各节点模块。
节点模块可以负责向主控模块请求同步第一转发信息库FIB,并可以根据上述步骤生成第一本地转发表LocalFIB,以供该节点模块转发报文时使用。
检测模块可以负责检测网元内节点故障,当接口异常时,可以通知主控模块,以便进行第一转发信息库的更新(UPDATE)。
具体地,主控模块启动后,可以初始本地资源,向数据库请求路由配置信息,根据路由配置信息完成主控模块的第一路由信息库RIB后,可以等待接收节点模块的注册消息,如果收到节点模块的注册消息,则可以向节点模块同步第一转发信息库FIB。节点模块完成第一转发信息库FIB的同步后,可以依据第一转发信息库FIB生成并维护第一本地转发表LocalFIB。
当检测模块检测到正常或故障时,可以向主控模块发送正常或故障消息,从而可以触发第一转发信息库FIB中路由条目的增加或删除消息,主控模块可以向各节点模块同步增加或删除消息,节点模块接收到增加或删除消息后,可以触发第一本地转发表LocalFIB的增加或删除,从而可以完成第一本地转发表LocalFIB的维护。
参照图7,示出了本发明一种基于分布式架构的路由方法实施例2的步骤流程图,所述分布式架构可以包括一个或多个同步客户端SyncClient,具体可以包括如下步骤:
步骤701,获取路由配置信息;
步骤702,采用所述路由配置信息生成第一路由信息库RIB;所述第一路由信息库RIB包括第一转发信息库FIB;
步骤703,当接收到一个或多个同步客户端SyncClient发送的注册信息时,向所述一个或多个同步客户端SyncClient同步所述第一转发信息库FIB;
步骤704,依据所述第一转发信息库FIB生成第一本地转发表LocalFIB。
步骤705,当接收到数据变更消息时,对所述第一路由信息库RIB进行更新,生成第二路由信息库RIB;所述第二路由信息库RIB包括第二转发信息库FIB;
作为本发明具体应用的一种示例,由于移动运营商对于设备可靠性越来越高的要求,希望在端口故障,或是被控节点故障时,业务能够很快恢复。所以需要完成网元内节点故障、网元间接口或传输异常时的故障处理,避免业务中断及降质。
检测方式可以是由主控节点触发检测进行,而后检测结果可以上报给主控节点,主控节点可以根据上报结果触发第一路由信息库RIB变更,生成第二路由信息库RIB,从而可以触发第一转发信息库FIB变更,生成第二转发信息库FIB。
在本发明实施例的一种优选示例中,所述数据变更消息包括数据库发送的数据变更消息,所述步骤705具体可以包括以下子步骤:
子步骤S301,当接收到数据变更消息时,生成一个或多个变更路由条目;
子步骤S302,采用所述一个或多个变更路由条目更新所述第一路由信息库RIB中对应的路由条目,生成第二路由信息库RIB。
在具体应用中,当接收到数据变更消息时,可以生成一个或多个变更路由条目,采用该一个或多个变更路由条目遍历第一路由信息库RIB,可以查找到对应的路由条目后执行相应的变更操作,生成第二路由信息库RIB。
第一路由信息库RIB更新可以导致第一转发信息库FIB更新,生成第二转发信息库FIB。
步骤706,向所述一个或多个同步客户端SyncClient同步所述第二转发信息库FIB;
在具体实现中,当第一转发信息库FIB更新为第二转发信息库FIB后,可以向一个或多个同步客户端SyncClient同步第二转发信息库FIB,同步第二转发信息库FIB可以是同步执行相应的变更操作的更新路由条目,也可以是同步整个第二转发信息库FIB。
在本发明实施例的一种优选示例中,所述分布式架构还可以包括同步服务器SyncServer,所述步骤706具体可以包括以下子步骤:
子步骤S401,当第二路由信息库RIB生成后,触发同步服务器SyncServer向所述一个或多个同步客户端SyncClient发送第二路由同步消息;所述第二路由同步消息携带有第二转发信息库FIB;
子步骤S402,接收所述一个或多个同步客户端SyncClient针对所述第二路由同步消息返回的第二路由同步确认消息。
在实际应用中,当第二路由信息库RIB生成后,可以触发同步服务器主动向一个或多个同步客户端发送第二路由同步消息,第二路由同步消息可以携带有第二转发信息库FIB,当一个或多个同步客户端完成第二转发信息库FIB的同步后,可以向同步服务器返回第二路由同步确认消息,用以响应第二路由同步消息。
本发明通过数据库发送数据变更消息,对第一路由信息库RIB进行更新,从而更新生成第二转发信息库FIB,并且,主动将第二转发信息库FIB同步至被控节点,可以及时更新被控节点的第一本地转发表LocalFIB,从而可以减少节点故障或接口故障对业务的影响,提高更新速度,缩短更新时间,降低延迟。
为使本领域技术人员更好地理解本发明实施例步骤705-706,以下通过同步服务器主动向同步客户端同步第二转发信息库为例,进一步说明本发明实施例。
参照图8,示出了本发明一种基于分布式架构的路由方法同步第二转发信息库的流程示意图。
如图8所示,同步第二转发信息库的流程具体如下:
1)、配置子模块接收到数据库的数据变更消息,可以生成直连路由、静态路由、动态路由等三种类型之一的路由条目,从而可以触发第一路由信息库RIB的更新,生成第二路由信息库RIB。
2)、第一路由信息库RIB的更新可以导致第一转发信息库FIB更新,生成第二转发信息库FIB后,可以发送启动路由同步消息给同步服务器SyncServer,启动路由同步过程。
3)、同步服务器SyncServer可以发送第二路由同步消息给同步客户端SyncClient。
4)、同步客户端SyncClient可以针对第二路由同步消息向同步服务器SyncServer发送第二路由同步确认消息,同步服务器SyncServer可以接收该第二路由同步确认消息。
5)、整个同步过程采用确认及重传机制。
步骤707,依据所述第二转发信息库FIB对所述第一本地转发表LocalFIB进行更新,生成第二本地转发表LocalFIB。
在具体实现中,第二转发信息库FIB中不同路由类型的更新路由条目可以具有不同的更新方式,可以对第一本地转发表LocalFIB中的转发条目执行增加或删除操作,从而可以生成第二本地转发表LocalFIB。
在本发明实施例的一种优选示例中,所述路由类型可以为直连路由的路由条目还包括状态字段,所述状态字段可以包括表征接口地址正常的第一状态字段,所述第二路由同步消息可以包括增加消息,所述步骤707具体可以包括以下子步骤:
子步骤S501,当同步客户端SyncClient接收到增加消息时,将所述增加消息存储在所述第一本地转发表LocalFIB中;
子步骤S502,依据所述增加消息,获取所述路由类型为直连路由的路由条目的接口地址;
子步骤S503,采用所述接口地址与所述不可用路由条目的接口地址匹配是否一致;若一致,则执行子步骤S504,若不一致,则执行子步骤S507;
子步骤S504,匹配成功,将所述不可用路由条目置为可用路由条目;判断所述路由类型为直连路由的路由条目的接口地址是否匹配预设IP地址;所述预设IP地址与同步所述第二转发信息库FIB的同步客户端SyncClient匹配;若属于,则执行子步骤S505;若不属于,则执行子步骤S506;
子步骤S505,存储所述路由类型为直连路由的路由条目至第二本地转发表LocalFIB中;
子步骤S506,采用所述匹配成功的直连路由的路由条目的下一跳地址替换所述路由条目的下一跳地址,生成第二新路由条目,存储所述第二新路由条目至第二本地转发表LocalFIB中;
子步骤S507,判断是否存在不可用路由条目;若存在,执行子步骤S503,若不存在,执行子步骤S508;
子步骤S508,完成所述第二本地转发表LocalFIB。
作为本发明具体应用的一种示例,针对直连路由的路由条目,引入状态字段,具体地,当端口正常时,则可以设置该端口的接口地址状态为正常,可以向主控节点发送正常消息,当主控节点接收到正常消息时,可以触发第一转发信息库FIB的增加消息,第一转发信息库FIB中包含该端口的路由条目可以具有表征该接口地址正常的第一状态字段,主控节点可以向被控节点同步增加消息,被控节点接收到增加消息后,可以触发第一本地转发表LocalFIB增加路由条目。
参照图9,示出了本发明一种基于分布式架构的路由方法增加路由条目的流程示意图。
如图9所示,当被控节点接收到增加消息时,可以将增加消息存储在第一本地转发表LocalFIB中,而后,可以获取增加消息中路由条目的接口地址,该路由条目的路由类型可以为直连路由,采用该接口地址在第二转发信息库FIB中与被置为不可用路由条目的接口地址匹配是否一致,若该接口地址与所有不可用路由条目的接口地址都不一致,则匹配失败,可以不做处理;若一致,则匹配成功,则可以判断该接口地址是否属于预设IP地址,若属于,则可以直接存储在第一本地转发表LocalFIB中,可以生成第二本地转发表LocalFIB;若不属于,则可以采用第一转发信息库FIB中,匹配成功的路由类型为直连路由的路由条目的下一跳地址替换该路由条目的下一跳地址后,生成第二新路由条目,以及,生成第二转发信息库FIB,可以存储该第二新路由条目至第一本地转发表LocalFIB中,生成第二本地转发表LocalFIB。
在本发明实施例的另一种优选示例中,所述状态字段还可以包括表征接口地址故障的第二状态字段,所述第二路由同步消息可以包括删除消息,所述步骤707具体可以包括以下子步骤:
子步骤S601,依据所述删除消息,对所述被控节点的第一转发信息库FIB进行更新,生成第二转发信息库FIB;
子步骤S602,触发删除所述第一本地转发表LocalFIB的路由条目;
子步骤S603,判断所述触发删除的路由条目的路由类型;若所述路由条目的路由类型为直连路由,则执行子步骤S604;若所述路由条目的路由类型为非直连路由,则删除完成;
子步骤S604,获取所述路由条目的接口地址;
子步骤S605,采用所述接口地址与第一转发信息库FIB路由类型为非直连路由的路由条目的接口地址匹配是否一致;若是,则执行子步骤S606;若否,则执行子步骤S608;
子步骤S606,匹配成功,将所述路由类型为非直连路由的路由条目置为不可用路由条目;
子步骤S607,删除所述第一本地转发表LocalFIB中的不可用路由条目;
子步骤S608,判断是否存在未匹配的路由条目,所述路由条目的路由类型包括非直连路由;若是,则执行子步骤S605,若否,则删除完成。
作为本发明具体应用的一种示例,当端口故障时,则可以设置该端口的接口地址状态为故障,可以向主控节点发送故障消息,当主控节点接收到故障消息时,可以触发第一转发信息库FIB的删除消息,第一转发信息库FIB中可以包含该端口的路由条目具有表征该接口地址故障的第二状态字段,主控节点可以向被控节点同步删除消息,被控节点接收到删除消息后,可以对所述被控节点的第一转发信息库FIB进行更新,生成第二转发信息库FIB,而后,可以触发第一本地转发表LocalFIB删除路由条目。
参照图10,示出了本发明一种基于分布式架构的路由方法删除路由条目的流程示意图。
如图10所示,当被控节点接收到删除消息时,首先可以更新被控节点的第一转发信息库FIB进行更新,生成第二转发信息库FIB,然后可以触发第一本地转发表LocalFIB删除路由条目。
删除路由条目的过程中,需要判断该路由条目的路由类型是否为直连路由,对于路由类型为直连路由的路由条目,还需用获取该路由条目的接口地址,可以采用该接口地址与第一转发信息库FIB中非直连路由的路由条目的接口地址匹配是否一致,若一致,则匹配成功,可以将该路由条目置为不可用路由条目,同时可以触发第一本地转发表LocalFIB删除该不可用路由条目,若该接口地址与所有非直连路由的路由条目的接口地址都不一致,则匹配失败,可以不做处理。
一般线路载波故障检测,BFD协议(双向转发检测协议)等检测方法检测故障时间为100~200ms,检测到故障后,可以触发内部路由管理机制,进行故障处理,内部节点更新处理一般可以是ms级别,不同的系统可能处理时间有差别,对于目前电信级别设备处理时延比较小,整个检测和故障处理能满足1s业务切换时间。
本发明通过融合检测机制,将正常或故障消息发送给主控节点,触发路由条目的增加或删除,可以及时更新第一本地转发表LocalFIB,从而可以减少节点故障或接口故障对业务的影响,便故障处理简单化,将各个功能模块化,可以在分布式架构下灵活部署。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图11,示出了本发明一种基于分布式架构的路由系统实施例的结构框图,所述分布式架构可以包括一个或多个同步客户端SyncClient,具体可以包括如下模块:
路由配置信息获取模块1101,用于获取路由配置信息;
第一路由信息库生成模块1102,用于采用所述路由配置信息生成第一路由信息库RIB;所述第一路由信息库RIB包括第一转发信息库FIB;
第一转发信息库同步模块1103,用于在接收到一个或多个同步客户端SyncClient发送的注册信息时,向所述一个或多个同步客户端SyncClient同步所述第一转发信息库FIB;
第一本地转发表生成模块1104,用于依据所述第一转发信息库FIB生成第一本地转发表LocalFIB。
在本发明的一种优选示例中,还可以包括以下模块:
第一路由信息库更新模块,用于在接收到数据变更消息时,对所述第一路由信息库RIB进行更新,生成第二路由信息库RIB;所述第二路由信息库RIB包括第二转发信息库FIB;
第二转发信息库同步模块,用于向所述一个或多个同步客户端SyncClient同步所述第二转发信息库FIB;
第二本地转发表生成模块,用于依据所述第二转发信息库FIB对所述第一本地转发表LocalFIB进行更新,生成第二本地转发表LocalFIB。
在本发明的一种优选示例中,所述第一转发信息库同步模块1103具体可以包括以下子模块:
注册消息接收子模块,用于接收所述同步客户端SyncClient发送的注册消息;
第一转发信息库获取子模块,用于依据所述注册消息获取第一转发信息库FIB;
第一路由同步消息发送子模块,用于向所述同步客户端SyncClient发送第一路由同步消息;所述第一路由同步消息携带有所述第一转发信息库FIB;
第一路由同步确认消息接收子模块,用于接收所述同步客户端SyncClient针对所述第一路由同步消息返回的第一路由同步确认消息。
在本发明的一种优选示例中,所述第一转发信息库FIB可以包括一个或多个路由条目,所述一个或多个路由条目可以具有目的地址、下一跳地址、接口地址和路由类型,所述路由类型可以包括直连路由和非直连路由,所述非直连路由可以包括静态路由,和/或,动态路由,
所述第一本地转发表生成模块1104具体可以包括以下子模块:
路由条目获取子模块,用于依次获取所述第一转发信息库FIB中的路由条目;
路由类型判断子模块,用于判断所述路由条目的路由类型;
路由条目存储子模块,用于在所述路由条目的路由类型为直连路由,存储所述路由条目至第一本地转发表LocalFIB中;
第一接口地址获取子模块,用于在所述路由条目的路由类型为非直连路由,获取所述路由条目的接口地址;
第一匹配子模块,用于采用所述接口地址与所述第一转发信息库FIB中路由类型为直连路由的路由条目的接口地址匹配是否一致;
不可用路由条目子模块,用于在接口地址不一致,匹配失败时,将所述路由条目置为不可用路由条目;
第一预设IP地址判断子模块,用于在接口地址一致,匹配成功时,判断所述路由条目的接口地址是否匹配预设IP地址;所述预设IP地址与同步所述第一转发信息库FIB的同步客户端SyncClient匹配;
第一属于判定子模块,用于在接口地址匹配预设IP地址时,存储所述路由条目至第一本地转发表LocalFIB中;
第一不属于判定子模块,用于在接口地址不匹配预设IP地址时,采用所述直连路由的路由条目的下一跳地址替换所述路由条目的下一跳地址后,存储所述路由条目至第一本地转发表LocalFIB中。
在本发明的一种优选示例中,所述数据变更消息可以包括数据库发送的数据变更消息,所述当第一路由信息库更新模块包括:
变更路由条目生成子模块,用于在接收到数据变更消息时,生成一个或多个变更路由条目;
第二路由信息库生成子模块,用于采用所述一个或多个变更路由条目更新所述第一路由信息库RIB中对应的路由条目,生成第二路由信息库RIB。
在本发明的一种优选示例中,所述分布式架构还包括同步服务器SyncServer,所述第二转发信息库同步模块具体可以包括以下子模块:
第二路由同步消息发送子模块,用于在第二路由信息库RIB生成后,触发同步服务器SyncServer向所述一个或多个同步客户端SyncClient发送第二路由同步消息;所述第二路由同步消息携带有第二转发信息库FIB;
第二路由同步确认消息接收子模块,用于接收所述一个或多个同步客户端SyncClient针对所述第二路由同步消息返回的第二路由同步确认消息。
在本发明的一种优选示例中,所述路由类型为直连路由的路由条目还可以包括状态字段,所述状态字段可以包括表征接口地址正常的第一状态字段,所述第二路由同步消息可以包括增加消息,所述第二本地转发表生成模块具体可以包括以下子模块:
增加消息存储子模块,用于在同步客户端SyncClient接收到增加消息时,将所述增加消息存储在所述第一本地转发表LocalFIB中;
第二接口地址获取子模块,用于依据所述增加消息,获取所述路由类型为直连路由的路由条目的接口地址;
第二匹配子模块,用于采用所述接口地址与所述不可用路由条目的接口地址匹配是否一致;
跳转子模块,用于在接口地址不一致,匹配失败时,执行判断是否存在不可用路由条目的步骤;
第二预设IP地址判断子模块,用于在接口地址一致,匹配成功时,判断所述路由类型为直连路由的路由条目的接口地址是否匹配预设IP地址;所述预设IP地址与同步所述第二转发信息库FIB的同步客户端SyncClient匹配;
第二属于判定子模块,用于在接口地址匹配预设IP地址时,存储所述路由类型为直连路由的路由条目至第二本地转发表LocalFIB中;
第二不属于判定子模块,用于在接口地址不匹配预设IP地址时,采用所述直连路由的路由条目的下一跳地址替换所述路由条目的下一跳地址后,存储所述路由条目至第二本地转发表LocalFIB中;
不可用路由条目存在判断子模块,用于判断是否存在不可用路由条目;
存在判定子模块,用于在存在不可用路由条目时,执行所述采用所述接口地址与所述不可用路由条目的接口地址匹配是否一致的步骤;
不存在判定子模块,用于在不存在不可用路由条目时,完成所述第二本地转发表LocalFIB。
在本发明的一种优选示例中,所述状态字段还可以包括表征接口地址故障的第二状态字段,所述第二本地转发表生成模块具体可以包括以下子模块:
第二转发信息库更新子模块,用于依据所述删除消息,更新所述节点模块的第二转发信息库FIB;
路由条目触发删除子模块,用于触发删除所述第一本地转发表LocalFIB的路由条目;
路由类型判断子模块,用于判断所述触发删除的路由条目的路由类型;
直连路由判定子模块,用于在判定所述路由条目的路由类型为直连路由,获取所述路由条目的接口地址;
第三匹配子模块,用于采用所述接口地址与所述第一转发表FIB中路由类型为非直连路由的路由条目的接口地址匹配是否一致;
匹配成功子模块,用于在接口地址一致,匹配成功时,将所述路由类型为非直连路由的路由条目置为不可用路由条目;
不可用路由条目删除子模块,用于删除所述第一本地转发表中的不可用路由条目;
未匹配的路由条目存在判断子模块,用于判断是否存在未匹配的路由条目,所述路由条目的路由类型包括非直连路由;
路由条目存在子模块,用于在判定存在未匹配的路由条目时,执行采用所述接口地址与所述第一转发表FIB中路由类型为非直连路由的路由条目的接口地址匹配是否一致的子步骤,
路由条目不存在子模块,用于在判定不存在未匹配的路由条目时,删除完成。
在本发明的一种优选示例中,所述路由配置信息包括接口地址配置信息,和/或,静态路由配置信息,和/或,动态路由配置信息。
对于装置实施例而言,由于其与方法实施例1和方法实施例2基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种基于分布式架构的路由方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种基于分布式架构的路由方法,其特征在于,所述分布式架构包括一个或多个同步客户端SyncClient,所述方法包括:
获取路由配置信息;
采用所述路由配置信息生成第一路由信息库RIB;所述第一路由信息库RIB包括第一转发信息库FIB;
当接收到一个或多个同步客户端SyncClient发送的注册信息时,向所述一个或多个同步客户端SyncClient同步所述第一转发信息库FIB;
依据所述第一转发信息库FIB生成第一本地转发表LocalFIB;
还包括:当接收到数据变更消息时,对所述第一路由信息库RIB进行更新,生成第二路由信息库RIB;所述第二路由信息库RIB包括第二转发信息库FIB;向所述一个或多个同步客户端SyncClient同步所述第二转发信息库FIB;依据所述第二转发信息库FIB对所述第一本地转发表LocalFIB进行更新,生成第二本地转发表LocalFIB。
2.根据权利要求1所述的方法,其特征在于,所述当接收到一个或多个同步客户端SyncClient发送的注册信息时,向所述一个或多个同步客户端同步所述第一转发信息库FIB的步骤包括:
接收所述同步客户端SyncClient发送的注册消息;
依据所述注册消息获取第一转发信息库FIB;
向所述同步客户端SyncClient发送第一路由同步消息;所述第一路由同步消息携带有所述第一转发信息库FIB;
接收所述同步客户端SyncClient针对所述第一路由同步消息返回的第一路由同步确认消息。
3.根据权利要求1或2所述的方法,其特征在于,所述第一转发信息库FIB包括一个或多个路由条目,所述一个或多个路由条目具有目的地址、下一跳地址、接口地址和路由类型,所述路由类型包括直连路由和非直连路由,所述非直连路由包括静态路由,和/或,动态路由,
所述依据所述第一转发信息库FIB生成第一本地转发表LocalFIB的步骤包括:
依次获取所述第一转发信息库FIB中的路由条目;
判断所述路由条目的路由类型;
若所述路由条目的路由类型为直连路由,存储所述路由条目至第一本地转发表LocalFIB中;
若所述路由条目的路由类型为非直连路由,获取所述路由条目的接口地址;
采用所述接口地址与所述第一转发信息库FIB中路由类型为直连路由的路由条目的接口地址匹配是否一致;
若不一致,则匹配失败,将所述路由条目置为不可用路由条目;
若一致,则匹配成功,判断所述路由条目的接口地址是否匹配预设IP地址;所述预设IP地址与同步所述第一转发信息库FIB的同步客户端SyncClient匹配;
若匹配,则存储所述路由条目至第一本地转发表LocalFIB中;
若不匹配,则采用所述匹配成功的直连路由的路由条目的下一跳地址替换所述路由条目的下一跳地址,生成第一新路由条目,存储所述第一新路由条目至第一本地转发表LocalFIB中。
4.根据权利要求1所述的方法,其特征在于,所述数据变更消息包括数据库发送的数据变更消息,所述当接收到数据变更消息时,对所述第一路由信息库RIB进行更新,生成第二路由信息库RIB的步骤包括:
当接收到数据变更消息时,生成一个或多个变更路由条目;
采用所述一个或多个变更路由条目更新所述第一路由信息库RIB中对应的路由条目,生成第二路由信息库RIB。
5.根据权利要求1或4所述的方法,其特征在于,所述分布式架构还包括同步服务器SyncServer,所述向所述一个或多个同步客户端SyncClient同步所述第二转发信息库FIB的步骤包括:
当第二路由信息库RIB生成后,触发同步服务器SyncServer向所述一个或多个同步客户端SyncClient发送第二路由同步消息;所述第二路由同步消息携带有第二转发信息库FIB;
接收所述一个或多个同步客户端SyncClient针对所述第二路由同步消息返回的第二路由同步确认消息。
6.根据权利要求5所述的方法,其特征在于,所述路由类型为直连路由的路由条目还包括状态字段,所述状态字段包括表征接口地址正常的第一状态字段,所述第二路由同步消息包括增加消息,所述依据所述第二转发信息库FIB对所述第一本地转发表LocalFIB进行更新,生成第二本地转发表LocalFIB的步骤包括:
当同步客户端SyncClient接收到增加消息时,将所述增加消息存储在所述第一本地转发表LocalFIB中;
依据所述增加消息,获取所述路由类型为直连路由的路由条目的接口地址;
采用所述接口地址与不可用路由条目的接口地址匹配是否一致;
若不一致,则匹配失败,执行判断是否存在不可用路由条目的步骤;
若一致,则匹配成功,将所述不可用路由条目置为可用路由条目;判断所述路由类型为直连路由的路由条目的接口地址是否匹配预设IP地址;所述预设IP地址与同步所述第二转发信息库FIB的同步客户端SyncClient匹配;
若匹配,则存储所述路由类型为直连路由的路由条目至第二本地转发表LocalFIB中;
若不匹配,则采用所述匹配成功的直连路由的路由条目的下一跳地址替换所述路由条目的下一跳地址,生成第二新路由条目,存储所述第二新路由条目至第二本地转发表LocalFIB中;
判断是否存在不可用路由条目;
若存在,则执行所述采用所述接口地址与所述不可用路由条目的接口地址匹配是否一致的步骤;
若不存在,则完成所述第二本地转发表LocalFIB。
7.根据权利要求6所述的方法,其特征在于,所述状态字段还包括表征接口地址故障的第二状态字段,所述第二路由同步消息包括删除消息,依据所述第二转发信息库FIB对所述第一本地转发表LocalFIB进行更新,生成第二本地转发表LocalFIB的步骤包括:
依据所述删除消息,更新节点模块的第二转发信息库FIB;
触发删除所述第一本地转发表LocalFIB的路由条目;
判断所述触发删除的路由条目的路由类型;
若所述路由条目的路由类型为直连路由,则获取所述路由条目的接口地址;
采用所述接口地址与所述第一转发信息库FIB中路由类型为非直连路由的路由条目的接口地址匹配是否一致;
若一致,则匹配成功,将所述路由类型为非直连路由的路由条目置为不可用路由条目;
删除所述第一本地转发表LocalFIB中的不可用路由条目;
判断是否存在未匹配的路由条目,所述路由条目的路由类型包括非直连路由;若存在,则执行采用所述接口地址与所述第一转发信息库FIB中路由类型为非直连路由的路由条目的接口地址匹配是否一致的子步骤,若不存在,则删除完成。
8.根据权利要求1所述的方法,其特征在于,所述路由配置信息包括接口地址配置信息,和/或,静态路由配置信息,和/或,动态路由配置信息。
9.一种基于分布式架构的路由系统,其特征在于,所述分布式架构包括一个或多个同步客户端SyncClient,所述系统包括:
路由配置信息获取模块,用于获取路由配置信息;
第一路由信息库生成模块,用于采用所述路由配置信息生成第一路由信息库RIB;所述第一路由信息库RIB包括第一转发信息库FIB;
第一转发信息库同步模块,用于在接收到一个或多个同步客户端SyncClient发送的注册信息时,向所述一个或多个同步客户端SyncClient同步所述第一转发信息库FIB;
第一本地转发表生成模块,用于依据所述第一转发信息库FIB生成第一本地转发表LocalFIB;
还包括:第一路由信息库更新模块,用于在接收到数据变更消息时,对所述第一路由信息库RIB进行更新,生成第二路由信息库RIB;所述第二路由信息库RIB包括第二转发信息库FIB;第二转发信息库同步模块,用于向所述一个或多个同步客户端SyncClient同步所述第二转发信息库FIB;第二本地转发表生成模块,用于依据所述第二转发信息库FIB对所述第一本地转发表LocalFIB进行更新,生成第二本地转发表LocalFIB。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410496011.3A CN104253748B (zh) | 2014-09-24 | 2014-09-24 | 基于分布式架构的路由方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410496011.3A CN104253748B (zh) | 2014-09-24 | 2014-09-24 | 基于分布式架构的路由方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104253748A CN104253748A (zh) | 2014-12-31 |
CN104253748B true CN104253748B (zh) | 2017-10-03 |
Family
ID=52188305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410496011.3A Active CN104253748B (zh) | 2014-09-24 | 2014-09-24 | 基于分布式架构的路由方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104253748B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105391590B (zh) * | 2015-12-26 | 2018-06-19 | 深圳职业技术学院 | 一种自动获取numa架构下系统路由表的方法及系统 |
CN107181686B (zh) * | 2016-03-09 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 路由表的同步方法、装置及系统 |
US9960994B2 (en) * | 2016-03-23 | 2018-05-01 | Juniper Networks, Inc. | Method, system, and apparatus for forwarding network traffic using minimal forwarding information bases |
CN110196780B (zh) * | 2018-03-23 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 确定服务器状态的方法、装置、存储介质和电子装置 |
CN109947469B (zh) * | 2019-03-08 | 2021-09-17 | 广州安加互联科技有限公司 | 地址划分方法、装置及计算机可读存储介质 |
CN114079670B (zh) * | 2020-07-30 | 2023-07-11 | 华为技术有限公司 | 传输路由信息的方法、装置和通信系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102549988A (zh) * | 2009-09-29 | 2012-07-04 | 思科技术公司 | 基于经过滤转发信息库的分组转发 |
CN103780498A (zh) * | 2014-01-27 | 2014-05-07 | 杭州华三通信技术有限公司 | 一种lsa同步方法和设备 |
CN103825760A (zh) * | 2014-02-25 | 2014-05-28 | 杭州华三通信技术有限公司 | 一种基于ospf协议建立邻居关系的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8934490B2 (en) * | 2013-01-31 | 2015-01-13 | Telefonaktiebolaget L M Ericsson (Publ) | Accelerated MAC address resolution for IPv6 traffic with IS-IS protocol |
-
2014
- 2014-09-24 CN CN201410496011.3A patent/CN104253748B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102549988A (zh) * | 2009-09-29 | 2012-07-04 | 思科技术公司 | 基于经过滤转发信息库的分组转发 |
CN103780498A (zh) * | 2014-01-27 | 2014-05-07 | 杭州华三通信技术有限公司 | 一种lsa同步方法和设备 |
CN103825760A (zh) * | 2014-02-25 | 2014-05-28 | 杭州华三通信技术有限公司 | 一种基于ospf协议建立邻居关系的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104253748A (zh) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104253748B (zh) | 基于分布式架构的路由方法和系统 | |
EP3313025B1 (en) | Data packet forwarding | |
EP2725737B1 (en) | Network policy configuration method, management device and network management centre device | |
CN109660442B (zh) | Overlay网络中组播复制的方法及装置 | |
US20170286158A1 (en) | Migration Of Virtual Machines | |
EP3675419A1 (en) | Method and apparatus for detecting network fault | |
JP5488979B2 (ja) | コンピュータシステム、コントローラ、スイッチ、及び通信方法 | |
CN102025552B (zh) | 链路状态通告的备份方法及设备 | |
CN109039703A (zh) | 一种复杂网络模拟环境下业务场景网络快速构建的方法及系统 | |
EP1838036A2 (en) | Failure recovery method and node, and network | |
CN108243123B (zh) | 广播报文的处理方法、装置、控制器和交换机 | |
CN105915400A (zh) | 一种数据流切换方法及系统 | |
CN106817301A (zh) | 故障恢复方法及装置、控制器、软件定义网络 | |
KR101457317B1 (ko) | 라우팅 정보 업데이트의 우선 순위 지정 | |
KR101464790B1 (ko) | 링크 상태 광고(lsa)에 기반한 신장 트리를 계산하는 방법, 브릿지 및 컴퓨터 네트워크 | |
CN102404189B (zh) | 支持多拓扑路由的设备进行主备倒换的方法及主控板 | |
CN107948041A (zh) | 构建vxlan集中式多活网关的方法和设备 | |
CN100553234C (zh) | 一种路由设备及其平滑重启方法 | |
CN104980355A (zh) | 一种sdn环境下的源端可控组播数据传输方法及系统 | |
CN107277187B (zh) | Arp热备份快速同步的系统及方法 | |
CN108632147B (zh) | 报文组播的处理方法和设备 | |
CN103262480A (zh) | 一种虚拟集群建立的方法及网络设备 | |
CN107276846B (zh) | 一种网关容灾方法、装置和存储介质 | |
CN113037883B (zh) | 一种mac地址表项的更新方法及装置 | |
CN106330511B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |