首页> 中国专利> 分布式路由器中生成路由表项的方法及分布式路由器

分布式路由器中生成路由表项的方法及分布式路由器

摘要

本发明实施例提供一种分布式路由器中生成路由表项的方法,该方法包括:接收包含路由前缀和第一下一跳的路由更新消息;获取对应的第一路由表项,所述第一路由表项包含第二下一跳,将所述第一下一跳添加到所述第一路由表项中生成第二路由表项;当所述第二下一跳的优先级低于所述第一下一跳信息时,启动删除定时器,所述删除定时器的时长为预先设定的时间值,当所述删除定时器到时后,删除所述第二路由表项中的所述第二下一跳生成第三路由表项,将所述第三路由表项发送到所述接口板的转发信息表。本发明实施例还提供了一种分布式路由器,通过本发明实施例提供的技术方案,在双归属组网中,当主用路由器故障恢复时能够有效的避免丢包。

著录项

  • 公开/公告号CN103516612A

    专利类型发明专利

  • 公开/公告日2014-01-15

    原文格式PDF

  • 申请/专利权人 北京华为数字技术有限公司;

    申请/专利号CN201210210405.9

  • 发明设计人 孙君祥;

    申请日2012-06-20

  • 分类号H04L12/741(20130101);

  • 代理机构

  • 代理人

  • 地址 100085 北京市海淀区上地信息路3号

  • 入库时间 2024-02-19 22:10:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-03

    授权

    授权

  • 2014-02-19

    实质审查的生效 IPC(主分类):H04L12/741 申请日:20120620

    实质审查的生效

  • 2014-01-15

    公开

    公开

说明书

技术领域

本发明实施例涉及通信技术领域,尤其涉及一种分布式路由器中生成路 由表项的方法及分布式路由器。

背景技术

分布式转发的路由器包含主控板和接口板,每个接口板上都有独立的中 央处理机(英文全称为Central Processing Unit,英文简称为CPU)进行转 发处理,主控板属于路由器的控制层,主控板根据路由协议会话交互得到的路 由信息生成路由表项,主控板将生成的路由表项存储在主控板的路由表 (Routing Table)中,并将路由表项发送到各接口板,在接口板形成转发信 息表(英文全称为Forwarding Information Database,英文缩写为FIB),转 发层通过查询接口板的FIB获得下一跳信息并进行报文转发。

在双归属组网中,如图1,路由器A和路由器B为主备备份关系,路由 器A为主用路由器,路由器B为备份路由器,正常情况下,接入路由器转发 到公网网络中的流量所使用的FIB表项的下一跳为路由器A,当路由器A出 现故障,接入路由器的该FIB表项的下一跳会切换到路由器B,当路由器A 恢复后会和公网网络中的网络设备及接入路由器建立路由协议会话,接入路 由器从路由器A学习到的公网网络的路由表项只需要将下一跳由路由器B切 换到路由器A,很快即可完成更新,而路由器A作为核心网络设备,可能接 入大量接入路由器或者其它骨干网设备,相对于接入路由器需要学习的路由 表项数量较多,因此,会出现接入路由器从公网网络学习的一条路由表项已 经发送给了接入路由器接口板的FIB,而路由器A上的这条路由表项还没有 被发送到路由器A接口板的FIB。例如,当路由器A故障恢复后,公网网络 通过路由协议会话将路由表项123.1.1.1发布到路由器A,路由器A将路由 表项123.1.1.1加入到路由器A的发送队列中,等待调度发送到路由器A接 口板的FIB,接入路由器通过和路由器A建立路由协议会话也学习到了公网 网络发布的路由表项123.1.1.1,接入路由器学习到的路由表项123.1.1.1 的下一跳为路由器A,接入路由器也将路由表项123.1.1.1加入到接入路由 器的发送队列中,等待调度发送到接入路由器接口板的FIB,由于接入路由 器新学习到的路由表项相对于路由器A较少,路由表项123.1.1.1下发的接 口板的FIB的速度较快,而路由器A由于作为核心路由器故障恢复,需要学 习的路由表项数量相对于接入路由器较多,因此,发送到接口板的路由表项 也较多,可能会出现接入路由器已经将路由表项123.1.1.1发送到了接入路 由器接口板的FIB,而路由器A还没有将路由表项123.1.1.1发送的路由器A 接口板的FIB,此时,如果接入路由器接收到需要转发到目的地为123.1.1.1 的流量,在接入路由器上接口板目的地为123.1.1.1的FIB表项的下一跳为 路由器A,接入路由器会将这些流量转发到路由器A上,由于路由器A还没 有将路由表项123.1.1.1发送的路由器A的接口板,因此当流量到达时会由 于在接口板查不到目的地为123.1.1.1的FIB表项而将流量丢弃,出现流量 丢失。

现有技术中,主要通过在主用路由器和接入路由器之间的链路上配置双 向转发检测(英文全称为Bidirectional Forwarding Detection,英文简称 为BFD)来解决此类问题,当BFD检测到主用路由器恢复时延迟一定时间再 使主用路由器和接入路由器之间的链路状态恢复,通过此方案可以延迟主用 路由器和接入路由器的路由协议会话建立,可以尽量实现在主用路由器已经 把从公网网络学习的路由表项下发到主用路由器接口板的FIB后,再将从主 用路由器学习的路由表项通过路由协议会话发送到接入路由器,从而尽量保 证流量不丢失,但此方案有存在以下几个问题:

1、由于通过BDF延迟恢复主用路由器和接入路由器之间的链路状态, 会导致其他依赖于链路状态的协议得不到及时建立,导致这些其 他依赖于链路状态的协议业务无法正常工作。

2、由于通过BDF延迟恢复主用路由器和接入路由器之间的链路状态, 延迟了主用路由器和接入路由器的路由协议会话建立,导致接入 路由器需要延迟学习到从公网网络发布的路由表项,而在这个过 程中,可能会存在一些从公网网络新发布到主用路由器的高优先 级的路由表项,如直连链路的路由表项,这些高优先级的路由表 项可能会优先学习到,这些高优先级路由表项会优先发送到了主 用路由器接口板的FIB,而这些路由表项还是要等到BFD延迟一 定时间才能被接入路由器学习到,而接入路由器使用这些高优先 级路由表项进行转发的流量在这个过程中将丢失。

发明内容

本发明实施例提供了一种分布式路由器中生成路由表项的方法及分布式 路由器,以解决在双归属组网中,主用路由器出现故障恢复时出现丢包的问 题。

根据本发明实施例的一个方面,提供了一种分布式路由器中生成路由 表项的方法,其特征在于,所述分布式路由器包括主控板和接口板,所述方 法包括:

接收包含路由前缀和第一下一跳的路由更新消息;

根据所述路由前缀在所述主控板的路由表中获取对应的第一路由表项, 所述第一路由表项包含第二下一跳,将所述第一下一跳添加到所述第一路由 表项中生成第二路由表项;

当所述第二下一跳的优先级低于所述第一下一跳的优先级时,启动删除 定时器,所述删除定时器的时长为预先设定的时间值,当所述删除定时器到 时后,从所述第二路由表项中删除所述第二下一跳生成第三路由表项,将所 述第三路由表项从所述路由表发送到所述接口板的转发信息表FIB。

根据本发明实施例的另一个方面,提供了一种分布式路由器,其特征 在于,所述分布式路由器包括主控板和接口板,所述主控板包括:

接收单元,用于接收包含路由路由前缀和第一下一跳的路由更新消息;

第一生成单元,用于根据所述路由前缀在所述主控板的路由表中获取对 应的第一路由表项,所述第一路由表项包含第二下一跳,将所述第一下一跳 添加到所述第一路由表项中生成第二路由表项;

第二生成单元,用于当所述第二下一跳的优先级低于所述第一下一跳的 优先级时,启动删除定时器,所述删除定时器的时长为预先设定的时间值, 当所述删除定时器到时后,从所述第二路由表项中删除所述第二下一跳生成 第三路由表项;

发送单元,用于将所述第三路由表项从所述路由表发送到所述接口板的 转发信息表FIB。

通过本发明实施例提供一种分布式路由器中生成路由表项的方法及分布 式路由器,在双归属组网中,当主用路由器故障恢复时,通过对低优先级下 一跳延迟删除,来保证在流量在经过接入路由器到达主用路由器时,主用路 由器接口板已经保存了相应的FIB表项,从而能够有效的避免丢包。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不 付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是现有技术中双归属组网示意图;

图2是本发明实施例提供的一种分布式路由器中生成路由表项的方法流 程示意图;

图3是本发明实施例中双归属组网主用路由器故障时流量转发示意图;

图4是本发明实施例中双归属组网主用路由器故障恢复时流量转发示意 图;

图5是本发明实施例提供的一种分布式路由器示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发 明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获 得的所有其他实施例,都属于本发明保护的范围。

参见图2,本发明实施例提供了一种分布式路由器中生成路由表项的方 法,所述分布式路由器包括主控板和接口板,包括:

202,接收包含路由前缀和第一下一跳的路由更新消息;

在网络中,当路由器之间建立路由协议会话时,会彼此发布自己保存的 路由表项,所述路由表项通过路由更新消息来传递,所述路由协议会话可以 通过内部网关协仪(英文全称为Interior Gateway Protocol,英文缩写为 IGP)或边界网关协议(英文全称为Border Gateway Protocol,英文缩写为 BGP)来建立。

204,根据所述路由前缀在所述主控板的路由表中获取对应的第一路由表 项,所述第一路由表项包含第二下一跳,将所述第一下一跳添加到所述第一 路由表项中生成第二路由表项;

在分布式路由器中从其他网络设备学习到的路由表项会先存储在主控板 的路由表中,所述路由表存储有路由表项,路由表项包括路由前缀和下一跳, 举例来说,例如,到达目的地址为123.1.1.1的路由表项中会存储路由前缀 123.1.1.1,下一跳234.1.1.1。

所述路由表中的路由表项是以路由前缀为索引,通过所述接收的路由更 新消息中路由前缀信息在所述路由表中查找是否有匹配的路由表项,如果查 找到存在匹配的路由表项时,将所述第二下一跳添加到所述查找到的路由表 项中。

206,当所述第二下一跳的优先级低于所述第一下一跳的优先级时,启动 删除定时器,所述删除定时器的时长为预先设定的时间值,当所述删除定时 器到时后,从所述第二路由表项中删除所述第二下一跳生成第三路由表项, 将所述第三路由表项从所述路由表发送到所述接口板的转发信息表FIB;

可选地,所述预先设定的时间值通过命令行预先设置,网络管理员在进 行网络规划时,根据主用路由器实际存储的路由表项数量,预先估计主用路 由器在故障恢复时学习路由表项及发送这些路由表项到接口板FIB的总时 间,根据所述估计的总时间来定义所述预先设定的时间值,所述预先设定的 时间值要足够长,保证在所述预先设定的时间值内,所述主用路由器故障恢 复后学习到的路由表项已经发送到接口板的FIB。举例来说,例如,所述主 用路由器故障前存储的路由表项总数为10万,估计所述主用路由器在故障恢 复时学习这10万路由表项的时间大约是10秒,发送这10万路由表项到接口 板FIB的时间大约是5秒,因此,设置所述预先定时的时间值可以为20秒。

可选地,所述预先设定的时间值还可以根据不同路由前缀进行设置。

可选地,预先设置路由前缀集合,所述路由前缀集合保存的路由前缀的 下一跳需要通过启动删除定时器进行删除。相应地,在启动所述删除定时器 之前进一步包括:确定所述路由前缀集合中包含所述第二路由表项的路由前 缀时,启动所述删除定时器。

可选地,预先设置下一跳集合,所述下一跳集合保存的下一跳需要通过 启动删除定时器进行删除。相应地,在启动所述删除定时器之前进一步包括: 确定所述下一跳集合中包含所述所述第二下一跳时,启动所述删除定时器。

通过上述方式,在路由表项生成时,可以避免对所有路由表项的下一跳 都启动删除定时器进行下一跳删除时,减少对对分布式路由器CPU资源的占 用,举例来说,网络管理员在进行网络规划时,会知道接入路由器上哪些路 由表项是通过主用路由器从远端公网网络学习到的,因此,在接入路由器上 可以设置只有通过所述主用路由器从公网网络学习到的路由表项对应的路由 前缀才添加到所述前缀集合中,在接受到所述路由更新消息时,判断所述前 缀集合中包含所述路由更新消息中的路由前缀时,才通过启动定时器将在所 述主控板查到的所述路由表项的第二下一跳进行延迟删除。或者,网络管理 员在进行网络规划时,会知道在主用路由器故障恢复后,接入路由器到达远 端公网网络的路由表项的下一跳为主用路由器,将下一跳为主用路由器的下 一跳添加到所述下一跳集合中,在所述主控板查找到的所述路由表项时,判 断所述下一跳集合中包含所述路由表项的第二下一跳时,才通过启动定时器 将在所述路由表项的第二下一跳进行延迟删除。

可选地,所述路由更新消息中还可能包含其他下一跳,例如,还能包含 第三下一跳。根据路由协议的选路规则,相同优先级的下一跳才会放在一个 更新消息中,因此,所述第三下一跳和所述第一下一跳的优先级是相同的, 相应地,在所述主控板的路由表中获取到所述第一路由表项后,将所述第三 下一跳和所述第一下一跳一起添加到所述第一路由表项中。

可选地,所述第一路由表项中还可能包含其他下一跳,例如,还可能包 含第四下一跳,由于在路由表项中的下一跳的优先级是相同的,因此,当所 述删除定时器到时后,将所述第二路由表项中的所述第四下一跳和所述第二 下一跳一起删除。

208,将所述第三路由表项从所述路由表发送到所述接口板的转发信息表 FIB。

可选地,所述接口板接收所述主控板发送来的所述第三路由表项,并存 储所述第三路由表项到所述FIB中,形成FIB表项。

为更清楚描述本发明实施例,现举例说明,例如,图3中路由器A为 主用路由器,路由器B为备用路由器,路由器A正常工作时,公网网络向 接入路由器发布一条前缀为123.1.1.1路由表项,路由表项123.1.1.1经 过路由器A和路由器B发布到接入路由器,在接入路由器会从路由器A接 收到下一跳为路由器A的路由表项123.1.1.1,在接入路由器还会从路由 器B接收到下一跳为路由器B的路由表项123.1.1.1,由于路由器A为主 用路由器,优先级比路由器B高,在接入路由器的路由表中存储123.1.1.1 时会优选下一跳为路由器A,此时,从接入路由器到达公网网络目的为 123.1.1.1的流量将从路由器A发出。当路由器A出现故障时,会将路由 表项123.1.1.1的下一跳切换为路由器B,此时,从接入路由器到达公网 网络目的为123.1.1.1的流量将从路由器B发出。在接入路由器上通过命 令行设置所述预先设定的时间值为30秒,当路由器A故障恢复时,路由器A 和公共网络及接入路由器建立路由协议会话后,公网网络会发布123.1.1.1 的路由表项到路由器A,路由器A会将包含前缀为123.1.1.1、下一跳为路由 器A的路由更新消息发送到接入路由器,接入路由器接收到所述路由更新消 息后在主控板的路由表中查找到前缀为123.1.1.1、下一跳为路由器B的路 由表项,将路由器A作为下一跳也添加到路由表项123.1.1.1中,启动定时 器,所述定时器的时长为所述预先设定的时间值30秒,这个所述预先设定的 时间值可以通过命令调整,但必须保证在这个预先设定的时间值内路由器A 中存储的前缀为123.1.1.1的路由表项已经发送到了路由器A的接口板FIB 中,当所述定时器到时后删除接入路由器中路由表项123.1.1.1的下一跳路 由器B,将包含下一跳为路由器A的路由表项123.1.1.1发送到接口板FIB, 此时,从接入路由器到达公网网络的地址为123.1.1.1的流量将从路由器A 发送,由于路由器A的接口板在所述定时器到时前已经保存了前缀为 123.1.1.1的路由表项,因此,到达目的地址为123.1.1.1的流量将正常转 发到公网网络,不会出现丢包。

可见,通过本发明实施例提供一种分布式路由器中生成路由表项的方法, 在双归属组网中,当主用路由器出现故障恢复时,通过对低优先级下一跳延 迟删除,来保证在流量在经过接入路由器到达主用路由器时,主用路由器接 口板已经保存了相应的FIB表项,从而能够有效的避免丢包。

参见图5,本发明实施例提供了一种分布式路由器,所述分布式路由 器包括主控板502和接口板504,所述主控板包括:

接收单元506,用于接收包含路由前缀和第一下一跳的路由更新消息;

第一生成单元508,用于根据所述路由前缀在所述主控板的路由表中获取 对应的第一路由表项,所述第一路由表项包含第二下一跳,将所述第一下一 跳添加到所述第一路由表项中生成第二路由表项;

第二生成单元510,用于当所述第二下一跳的优先级低于所述第一下一跳 的优先级时,启动删除定时器,所述删除定时器的时长为预先设定的时间值, 当所述删除定时器到时后,从所述第二路由表项中删除所述第二下一跳生成 第三路由表项;

发送单元512,用于将所述第三路由表项从所述路由表发送到所述接口板 的转发信息表FIB。

在网络中,当路由器之间建立路由协议会话时,会彼此发布自己保存的 路由表项,所述路由表项通过路由更新消息来传递,所述路由协议会话可以 通过内部网关协仪(英文全称为Interior Gateway Protocol,英文缩写为 IGP)或边界网关协议(英文全称为Border Gateway Protocol,英文缩写为 BGP)来建立。

在分布式路由器中从其他网络设备学习到的路由表项会先存储在主控板 的路由表中,所述路由表存储有路由表项,路由表项包括路由前缀和下一跳, 举例来说,例如,到达目的地址为123.1.1.1的路由表项中会存储路由前缀 123.1.1.1,下一跳234.1.1.1。

所述路由表中的路由表项是以路由前缀为索引,通过所述接收的路由更 新消息中路由前缀信息在所述路由表中查找是否有匹配的路由表项,如果查 找到存在匹配的路由表项时,将所述第二下一跳添加到所述查找到的路由表 项中。

可选地,所述主控板502还包括第一配置单元,所述第一配置单元用于 通过命令行预先设置所述预先设定的时间值。网络管理员在进行网络规划时, 根据主用路由器实际存储的路由表项数量,预先估计主用路由器在故障恢复 时学习路由表项及发送这些路由表项到接口板FIB的总时间,根据所述估计 的总时间来定义所述预先设定的时间值,所述预先设定的时间值要足够长, 保证在所述预先设定的时间值内,所述主用路由器故障恢复后学习到的路由 表项已经发送到接口板的FIB。举例来说,例如,所述主用路由器故障前存 储的路由表项总数为10万,估计所述主用路由器在故障恢复时学习这10万 路由表项的时间大约是10秒,发送这10万路由表项到接口板FIB的时间大 约是5秒,因此,设置所述预先定时的时间值可以为20秒。

可选地,所述主控板502还包括第二配置单元,所述第二配置单元用于 预先设置路由前缀集合;

相应地,所述第二生成单元510启动删除定时器之前进一步包括:

确定所述路由前缀集合中包含所述第二路由表项的路由前缀时,启动所 述删除定时器。所述路由前缀集合保存的路由前缀的下一跳需要通过启动删 除定时器进行删除。

可选地,所述主控板502还包括第三配置单元,所述第三配置单元用于 预先设置下一跳集合;

相应地,所述第二生成单元启动删除定时器之前进一步包括:

确定所述下一跳集合中包含所述第二下一跳时,启动所述删除定时器。 所述下一跳集合保存的下一跳需要通过启动删除定时器进行删除。

通过上述方式,在路由表项生成时,可以避免对所有路由表项的下一跳 都启动删除定时器进行下一跳删除时,减少对对分布式路由器CPU资源的占 用,举例来说,网络管理员在进行网络规划时,会知道接入路由器上哪些路 由表项是通过主用路由器从远端公网网络学习到的,因此,在接入路由器上 可以设置只有通过所述主用路由器从公网网络学习到的路由表项对应的路由 前缀才添加到所述前缀集合中,在接受到所述路由更新消息时,判断所述前 缀集合中包含所述路由更新消息中的路由前缀时,才通过启动定时器将在所 述主控板查到的所述路由表项的第二下一跳进行延迟删除。或者,网络管理 员在进行网络规划时,会知道在主用路由器故障恢复后,接入路由器到达远 端公网网络的路由表项的下一跳为主用路由器,将下一跳为主用路由器的下 一跳添加到所述下一跳集合中,在所述主控板查找到的所述路由表项时,判 断所述下一跳集合中包含所述路由表项的第二下一跳时,才通过启动定时器 将在所述路由表项的第二下一跳进行延迟删除。

可选地,所述路由更新消息中还可能包含其他下一跳,例如,还能包含 第三下一跳。根据路由协议的选路规则,相同优先级的下一跳才会放在一个 更新消息中,因此,所述第三下一跳和所述第一下一跳的优先级是相同的, 相应地,在所述主控板的路由表中获取到所述第一路由表项后,将所述第三 下一跳和所述第一下一跳一起添加到所述第一路由表项中。

可选地,所述第一路由表项中还可能包含其他下一跳,例如,还可能包 含第四下一跳,由于在路由表项中的下一跳的优先级是相同的,因此,当所 述删除定时器到时后,将所述第二路由表项中的所述第四下一跳和所述第二 下一跳一起删除。

108,将所述第三路由表项从所述路由表发送到所述接口板的转发信息表 FIB。

可选地,所述接口板包括处理单元,所述处理单元,用于接收所述主 控板发送来的所述第三路由表项,并存储所述第三路由表项到所述FIB中, 形成FIB表项。

可见,通过本发明实施例提供一种分布式路由器,在双归属组网中,当 主用路由器出现故障恢复时,通过对低优先级下一跳延迟删除,来保证在流 量在经过接入路由器到达主用路由器时,主用路由器接口板已经保存了相应 的FIB表项,从而能够有效的避免丢包。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可 读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而 前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码 的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技 术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应 技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号