一种路由计算方法及装置与流程

文档序号:16276337发布日期:2018-12-14 22:36阅读:161来源:国知局
一种路由计算方法及装置与流程

本公开涉及通信技术领域,尤其涉及一种路由计算方法及装置。

背景技术

is-is(intermediatesystem-to-intermediatesystem,中间系统到中间系统)属于igp(interiorgatewayprotocol,内部网关协议),用于自治系统内部。is-is是一种链路状态协议,使用spf(shortestpathfirst,最短路径优先)算法进行路由计算。

is-is在路由域通常被分成多个区域,每个区域至少部署一个路由器,每个路由器维护一个对应的lsdb(linkstatedatabase,链路状态数据库),包含该区域的全部lspdu(linkstateprotocoldataunit,链路状态协议数据单元,简称lsp)。每个is(intermediatesystem,中间系统)都会生成一个lsp。lsp中包含该is中的全部链路状态信息,is可以根据lsdb中的lsp,使用spf算法计算is-is的网络拓扑,生成自己的路由表项。



技术实现要素:

有鉴于此,本公开提供一种路由计算方法及装置来解决现有技术中将不可达路径作为最优路径的问题。

具体地,本公开是通过如下技术方案实现的:

本公开提供一种路由计算方法,所述方法应用于第一路由设备,所述方法包括:

接收第二路由设备发送的lsp,第二路由设备与该第一路由设备为is-is邻居;

若确定所述lsp携带的路由信息是过滤路由,则为所述路由信息添加过滤标识;

根据本地未添加过滤标识的路由信息更新本地的路由表项;

广播所述lsp,以使本路由设备的is-is邻居路由设备根据所述lsp携带的路由信息更新自身的路由表项。

基于相同的构思,本公开提供一种路由计算装置,其特征在于,所述装置应用于第一路由设备,所述装置包括:

接收单元,用于接收第二路由设备发送的lsp,第二路由设备与该第一路由设备为is-is邻居;

标识单元,用于若确定所述lsp携带的路由信息是过滤路由,则为所述路由信息添加过滤标识;

更新单元,用于根据本地未添加过滤标识的路由信息更新本地的路由表项;

第一转发单元,用于广播所述lsp,以使本路由设备的is-is邻居路由设备根据所述lsp携带的路由信息更新自身的路由表项。

基于相同的构思,本公开还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现路由计算方法的任一步骤。

基于相同的构思,本公开还提供一种计算机设备,所述计算机设备包括存储器、处理器、通信接口以及通信总线;其中,所述存储器、处理器、通信接口通过所述通信总线进行相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现路由计算方法的任一步骤。

由此可见,本公开可以可以使第一路由设备接收第二路由设备发送的lsp,第二路由设备与该第一路由设备为is-is邻居;若确定所述lsp携带的路由信息是过滤路由,则为所述路由信息添加过滤标识;根据本地未添加过滤标识的路由信息更新本地的路由表项;之后广播所述lsp,以使本路由设备的is-is邻居路由设备根据所述lsp携带的路由信息更新自身的路由表项,从而使其他路由设备也对该路由信息进行过滤。相比于现有技术,本公开可以使路由设备获知其他路由设备的过滤路由信息,从而可以解决将过滤的路由信息进行路由计算导致的流量不通的问题,优化了路由计算结果。

附图说明

图1是本公开一种示例性实施方式中的is-is组网示意图;

图2是本公开一种示例性实施方式中的一种路由计算方法的处理流程图;

图3是本公开一种示例性实施方式中的路由计算交互流程图;

图4本公开一种示例性实施方式中的路由计算装置的逻辑结构图;

图5本公开一种示例性实施方式中的一种计算机设备的逻辑结构图。

具体实施方式

请参考图1,为is-is组网示意图,其中在路由器routera、routerb、routerc、routerd和routere在彼此相连接的链路上建立了is-is邻居关系,假设routerc连接的两个网段分别为17.1.1.0/24、17.1.2.0/24,这两个网段的路由信息记录到is-is组网的lsdb中,使组网中的路由设备routera、routerb、routerc、routerd和routere可以获取包含该路由信息的lsp,以使路由设备根据lsp中的路由信息通过spf算法计算最优路径。例如对于routera计算出来的上述两条网段路由的下一跳分别为routerd和routerb,其中假设routera到routerc之间的路径,经过routerb的为最优,因此在routera上17.1.1.0/24和17.1.2.0/24路由优选的是下一跳为routerb的。在routera上有对应访问17.1.1.0/24和17.1.2.0/24网段的用户流量时,流量的路径经过routerb到达routerc上并可以正确访问目的地址。

如果在routerb上某用户配置is-is路由策略,不允许到达17.1.1.0/24的用户流量经过该设备转发出去,即将17.1.1.0/24的路由本地过滤掉。但是在routerd和routere上不做限制,因此其实流量还是可以通过routerd和routere到达routerc上,从而正确访问17.1.1.0/24网段。由于在routera设备对routerb的路由策略没有感知,因此is-is组网中的lsdb保存的17.1.1.0/24和17.1.2.0/24路由不变。根据lsdb中的路由信息通过spf算法计算出的17.1.1.0/24路由中routera的下一跳仍然为routerb,因此目的地址为17.1.1.0/24的流量到达routera时仍然会被转发到routerb中,routerb根据本地的路由策略将该17.1.1.0/24的流量丢弃,从而导致17.1.1.0/24的流量都不可达。

由此可见,在现有的is-is网络中,如果两个路由设备之间存在多条路径时,若其中任意路由设备配置了路由,使上述多条路径中的一条不可达,而其他路由设备不需要该路由的情况下,由于本路由设备没有感知机制获知整个is-is网络中的路由配置情况,因此会根据自身的路由通过spf算法计算优选路径,但很有可能优选了不可达路径的路由,从而导致流量转发不通。

为了解决现有技术存在的问题,本公开提供一种路由计算方法及装置,可以使第一路由设备接收第二路由设备发送的lsp,第二路由设备与该第一路由设备为is-is邻居;若确定所述lsp携带的路由信息是过滤路由,则为所述路由信息添加过滤标识;根据本地未添加过滤标识的路由信息更新本地的路由表项;之后广播所述lsp,以使本路由设备的is-is邻居路由设备根据所述lsp携带的路由信息更新自身的路由表项,从而使其他路由设备也对该路由信息进行过滤。因此本公开可以解决将过滤的路由信息进行路由计算导致的流量不通的问题,优化了路由计算结果。相比于现有技术,本公开可以使路由设备获知其他路由设备的过滤路由信息,从而可以解决将过滤的路由信息进行路由计算导致的流量不通的问题,优化了路由计算结果。

请参考图2,是本公开一种示例性实施方式中的一种路由计算方法的处理流程图,所述方法应用于第一路由设备,所述方法包括:

步骤201、接收第二路由设备发送的lsp,第二路由设备与该第一路由设备为is-is邻居;

在本实施例中,is-is组网中的第一路由设备和第二路由设备可以在链路上建立is-is邻居关系,其中若第二路由设备在本地设置了过滤的路由信息,第二路由设备可以将该过滤的路由信息添加到lsp中,再将该lsp在第二路由设备的is中广播到第二路由设备的is-is邻居路由设备,即第一路由设备,如果第二路由设备还存在其他is-is邻居路由设备,则其他路由设备也可以收到该lsp。因此第一路由设备可以收到第二路由设备发送的lsp信息,该lsp中携带第二路由设备过滤的路由信息。

步骤202、若确定所述lsp携带的路由信息是过滤路由,则为所述路由信息添加过滤标识;

在一个实施例中,本公开在该lsp中增加了一个新的clv(code/length/value,类型\长度\数值)的字段,其中code值代表该路由是否为过滤路由信息,例如当编码code值为204时,代表过滤的路由信息,则第一路由设备收到lsp后,进一步判断该lsp中的clv字段中的code值是否为预设值(例如code值为204),若是,则确定所述lsp携带的路由信息是过滤路由;若否,则确定所述lsp携带的路由信息不是过滤路由。

当第一路由设备确定lsp中包含过滤的路由信息时,可以为本地记录的该路由信息添加过滤标识,用于表示该路由信息为过滤路由信息,并在后续计算最优路径时忽略该路由信息。

作为一个实施例,第一路由设备还可以进一步解析所述lsp中clv字段中的前缀类型字段,当所述前缀类型字段为0时,说明所述lsp中的路由信息的前缀类型为互联网协议第四版ipv4前缀;当所述前缀类型字段为1时,说明所述lsp中的路由信息的前缀类型为互联网协议第六版ipv6前缀;然后根据所述前缀类型解析所述lsp中携带的路由信息。

具体来讲,clv中的长度length值代表数值value字段的长度,范围为2~255;value值为具体路由信息,其中第一字节可以为前缀类型字段,当第一个字节的最低位置0时,表示该前缀为ipv4前缀,第一个字节最低位置1时,表示该前缀为ipv6前缀;从第二个字节开始填充的值为ipv4前缀地址+掩码或ipv6地址+掩码长度。第一路由设备可以根据解析出的ipv4前缀或ipv6前缀来解析value值中的具体路由信息。

步骤203、根据本地未添加过滤标识的路由信息更新本地的路由表项;

在本实施例中,当第一路由设备为lsp中的路由信息添加过滤标识后,可以获取本地未添加过滤标识的路由信息进行路由计算得到新的路由表项,更新本地的路由表项,从而排除本地的路由表项中的不可达路径。

步骤204、广播所述lsp,以使本路由设备的is-is邻居路由设备根据所述lsp携带的路由信息更新自身的路由表项。

在本实施例中,当第一路由设备将该路由设备添加过滤标识后,可以将该lsp通过广播到第一路由设备的is-is邻居路由设备,以使其他路由设备收到该lsp时,按照第一路由设备的方法根据过滤路由更新各自自身的路由表项并继续转发至各自的邻居设备,从而可以使全网的路由设备都获知该过滤路由信息,避免过滤的路由信息参与路由转发计算。需要说明的是,由于该第二路由设备是该lsp的发送端,因此第一路由设备在本地广播该lsp到第一路由设备的is-is邻居时,即使第二路由设备与第一路由设备是is-is邻居关系,但根据洪泛的机制,该lsp不会转发回第二路由设备。

作为一个实施例,当第一路由设备本地设置了路由过滤策略,则可以将本路由设备上过滤的路由信息添加到本路由设备的lsp中,将本路由设备的该lsp通过洪泛发送到本路由设备的is-is邻居路由设备,以使收到该lsp的路由设备按照上述方法处理该lsp。

因此本公开可以在流量转发路径中的某台路由设备过滤掉路由信息时,通过将该路由信息添加到该clv中封装在lsp后在is-is网络中洪泛,使其他路由设备在收到lsp后解析该lsp中的过滤的路由信息并避免该路由信息参与路由计算,从而使路由从源头进行筛选,避免不可达的路由参与路由计算,从而保证流量走其他路径可达。

需要说明的是,本公开提供的路由计算功能可以为现有的路由设备的附加功能,第一路由设备可以通过下发命令行的方式来使能本路由设备的路由计算功能。当第一路由设备使能该路由计算功能时,可以执行上述操作,实现路由过滤;当第一路由设备未使能路由计算功能时,则若第一路由设备收到其他路由设备发送的lsp时,可以不处理所述lsp,直接将所述lsp转发至本路由设备的其他is-is邻居路由设备。因此即使第一路由设备没有使能路由计算功能还是可以将收到的lsp转发给其他邻居设备,从而使邻居设备可以在使能路由计算功能的情况下实现路由过滤的目的。

为使本公开的目的、技术方案及优点更加清楚明白,下面基于图1的组网结构,通过图3对本公开的方案作进一步地详细说明。

请参见图3,是本公开的实施例中路由设备的交互流程图,其中包括:

步骤301、routera和routerb之间建立is-is邻居关系,routera使能该路由计算功能;

步骤302、在routera上is-is中使能路由策略过滤掉某条is-is路由信息(17.1.1.0/24)时,通过is-is内部接口获取到的过滤掉的路由信息(17.1.1.0/24)填充到clv中,其中该clv为code为204,该clv中的value中的第一个字节的最低bit位置0,表示该路由信息为ipv4的路由信息,同时将该clv封装进routera生成的lsp;

步骤303、将该lsp洪泛给routera的is-is邻居routerb;

步骤304、routerb上is-is接收到该lsp后,首先检测本设备的is-is是否使能了路由计算功能,如果未使能该功能,则不对该lsp进行解析和处理,仅仅洪泛给其他is-is邻居,例如routerc。

步骤305、如果检测到routerb使能了该路由计算功能,则对该lsp进行解析,获取到邻居节点信息及code=204的clv中的路由信息(17.1.1.0/24),对该路由信息增加过滤标识,具有该标识的路由信息不参与本路由设备的路由计算;进行一次ispf计算,对变化的路由信息重新优选并刷新路由表项;将该lsp洪泛给其他邻居,例如routerc。

本公开实现了可以灵活指定is-is网络中某台特定路由器支持该功能,使路由设备可以或者其他路由设备过滤掉的路由信息,从而避免将不可达的路由进行路由计算,并将该clv洪泛给其他邻居;而其他不支持该功能的is-is路由器不解析该clv,但能够正常洪泛给其他邻居,对其他支持该功能的is-is路由器不影响。

基于相同的构思,本公开还提供一种路由计算装置,该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本公开的路由计算装置作为一个逻辑意义上的装置,是通过其所在装置的cpu将存储器中对应的计算机程序指令读取后运行而成。

请参考图4,是本公开一种示例性实施方式中的一种路由计算装置400,所述装置应用于第一路由设备,从逻辑层面上来看,该装置400的逻辑结构包括:

接收单元401,用于接收第二路由设备发送的lsp,第二路由设备与该第一路由设备为is-is邻居;

标识单元402,用于若确定所述lsp携带的路由信息是过滤路由,则为所述路由信息添加过滤标识;

更新单元403,用于根据本地未添加过滤标识的路由信息更新本地的路由表项;

第一转发单元404,用于广播所述lsp,以使本路由设备的is-is邻居路由设备根据所述lsp携带的路由信息更新自身的路由表项。

作为一个实施例,所述标识单元402,具体用于判断所述lsp中clv字段中的code值是否为预设值,若是,则确定所述lsp携带的路由信息是过滤路由;若否,则确定所述lsp携带的路由信息不是过滤路由。

作为一个实施例,所述装置还包括:

解析单元405,用于解析所述lsp中clv字段中的前缀类型字段,当所述前缀类型字段为0时,所述lsp中的路由信息的前缀类型为ipv4前缀;当所述前缀类型字段为1时,所述lsp中的路由信息的前缀类型为ipv6前缀;根据所述前缀类型解析所述lsp中携带的路由信息。

作为一个实施例,所述装置还包括:

第二转发单元406,用于将本路由设备上设置的过滤的路由信息添加到本路由设备的lsp中,将本路由设备的lsp广播到本路由设备的is-is邻居路由设备,以使所述邻居路由设备根据所述lsp携带的路由信息更新自身的路由表项。

基于相同的构思,本公开还提供一种计算机设备,如图5所示,所述计算机设备包括存储器51、处理器52、通信接口53以及通信总线54;其中,所述存储器51、处理器52、通信接口53通过所述通信总线54进行相互间的通信;

所述存储器51,用于存放计算机程序;

所述处理器52,用于执行所述存储器51上所存放的计算机程序,所述处理器52执行所述计算机程序时实现本公开实施例提供的路由计算方法的任一步骤。

本公开还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本公开实施例提供的路由计算方法的任一步骤。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于计算机设备和计算机可读存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

综上所述,本公开可以使第一路由设备接收第二路由设备发送的lsp,第二路由设备与该第一路由设备为is-is邻居;若确定所述lsp携带的路由信息是过滤路由,则为所述路由信息添加过滤标识;根据本地未添加过滤标识的路由信息更新本地的路由表项;之后广播所述lsp,以使本路由设备的is-is邻居路由设备根据所述lsp携带的路由信息更新自身的路由表项,从而使其他路由设备也对该路由信息进行过滤。因此本公开可以解决将过滤的路由信息进行路由计算导致的流量不通的问题,优化了路由计算结果。相比于现有技术,本公开可以使路由设备获知其他路由设备的过滤路由信息,从而可以解决将过滤的路由信息进行路由计算导致的流量不通的问题,优化了路由计算结果。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1