一种基于ISIS的路由重分布的方法及装置与流程

文档序号:14178939阅读:461来源:国知局
一种基于ISIS的路由重分布的方法及装置与流程

本申请涉及通信技术领域,特别涉及一种基于isis的路由重分布的方法及装置。



背景技术:

isis(intermediatesystemtointermediatesystem,中间系统到中间系统)是一种应用广泛的路由协议。运行isis协议的网络设备可以将以其它形式获取到的路由信息扩散至其它运行isis协议的网络设备,从而达到网络互联的目的。

现有技术中,基于isis协议扩散需重分布的路由信息后,接收路由信息的网络设备在计算路由时,可能造成转发路径的重定向和环路,导致浪费带宽,甚至造成丢包。



技术实现要素:

有鉴于此,本申请提供一种基于isis的路由重分布的方法及装置

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

一种基于isis的路由重分布的方法,应用于网络设备,包括:

确定本地的第一接口是否启用isis协议;

如果是,确定所述第一接口的邻居表中是否存在邻居表项;

如果是,发送所述第一接口的路由信息;其中,所述路由信息包括目的网段、下一跳和开销值。

在所述基于isis的路由重分布的方法中,所述方法还包括:

如果所述第一接口未启用isis协议,发送所述第一接口的路由信息;其中,所述路由信息包括目的网段和开销值;或,

如果所述第一接口启用isis协议且所述邻居表中不存在邻居表项,发送所述第一接口的路由信息;其中,所述路由信息包括目的网段和开销值。

在所述基于isis的路由重分布的方法中,所述方法还包括:

接收到所述路由信息,确定所述路由信息是否携带下一跳;

如果所述路由信息携带所述下一跳,确定所述下一跳是否为本地的地址;

如果所述下一跳不是本地的地址,确定是否存在对应于所述路由信息的发送方的所述邻居表项;

如果存在,基于所述路由信息执行路由计算。

在所述基于isis的路由重分布的方法中,所述方法还包括:

如果所述下一跳是本地的地址,忽略所述路由信息。

在所述基于isis的路由重分布的方法中,所述方法还包括:

如果不存在对应于所述路由信息的发送方的所述邻居表项,忽略所述下一跳,基于所述路由信息执行路由计算。

一种基于isis的路由重分布的装置,应用于网络设备,包括:

第一确定单元,用于确定本地的第一接口是否启用isis协议;

第二确定单元,用于如果是,确定所述第一接口的邻居表中是否存在邻居表项;

发送单元,用于如果是,发送所述第一接口的路由信息;其中,所述路由信息包括目的网段、下一跳和开销值。

在所述基于isis的路由重分布的装置中,所述装置还包括:

所述发送单元,进一步用于如果所述第一接口未启用isis协议,发送所述第一接口的路由信息;其中,所述路由信息包括目的网段和开销值;或,

如果所述第一接口启用isis协议且所述邻居表中不存在邻居表项,发送所述第一接口的路由信息;其中,所述路由信息包括目的网段和开销值。

在所述基于isis的路由重分布的装置中,所述装置还包括:

接收单元,用于接收到所述路由信息,确定所述路由信息是否携带下一跳;

所述第一确定单元,进一步用于如果所述路由信息携带所述下一跳,确定所述下一跳是否为本地的地址;

所述第二确定单元,进一步用于如果所述下一跳不是本地的地址,确定是否存在对应于所述路由信息的发送方的所述邻居表项;

计算单元,用于如果存在,基于所述路由信息执行路由计算。

在所述基于isis的路由重分布的装置中,所述装置还包括:

忽略单元,用于如果所述下一跳是本地的地址,忽略所述路由信息。

在所述基于isis的路由重分布的装置中,所述装置还包括:

所述计算单元,进一步用于如果不存在对应于所述路由信息的发送方的所述邻居表项,忽略所述下一跳,基于所述路由信息执行路由计算。

在本申请技术方案中,网络设备在发送本地的第一接口的路由信息前,首先确定上述第一接口是否启用isis协议,如果上述第一接口启用isis协议,确定上述第一接口的邻居表中是否存在邻居表项,并在存在邻居表项时发送上述第一接口的路由信息;上述路由信息包括目的网段、下一跳和开销值;

网络设备的邻居表项所对应的设备接收到上述路由信息后,在路由计算时,可以基于路由信息中的下一跳更准确地计算得到最佳路由,避免后续出现转发路径的重定向或环路的问题,从而解决了浪费带宽和丢包的问题。

附图说明

图1是本申请示出的一种网络架构图;

图2是本申请示出的另一种网络架构图;

图3是本申请示出的一种基于isis的路由重分布的方法的流程图;

图4是本申请示出的一种基于isis的路由重分布的装置的实施例框图;

图5是本申请示出的一种基于isis的路由重分布的装置的硬件结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

运行isis协议的网络设备在将路由信息扩散至其它运行isis协议的网络设备时,通常通过tlv(typelengthvalue)格式来携带路由信息。一般而言,会用到扩展ip可达tlv(theextendedipreachabilitytlv)和ipv6可达tlv。

其中,扩展ip可达tlv的类型为135,用来携带ipv4的路由信息。该tlv格式包括4字节的开销(metric)信息和1字节的控制信息。控制信息包括1比特的up/down信息、1比特的子tlv(subtlv)信息和6比特的掩码长度。控制信息后为目的网段。子tlv表明该tlv格式中是否存在其它子tlv信息,如果存在,则目的网段后面还有1字节的子tlv长度和若干字节的子tlv信息。

ipv6可达tlv的类型为236,用来携带ipv6的路由信息。该tlv格式与上述扩展ip可达tlv类似,同样预留了子tlv信息字段,以及根据该字段定义的可选长度的子tlv信息。

可见,在现有技术中,运行isis协议的网络设备扩散的路由信息中不包含下一跳。在这种情况下,其它网络设备接收到路由信息后,由于获取到的信息不足,在后续路由计算时可能会造成重定向或环路。

参见图1,为本申请示出的一种网络架构图,如图1所示,路由器a、路由器b和路由器c三台设备相连。

路由器a、路由器b和路由器c处于同一个广播网内,其中,路由器c为广播网的外部网关。路由器a上配置通往外网的默认路由,该默认路由中的下一跳为路由器c的接口5的ip地址。路由器a和路由器b运行isis协议,路由器c未运行isis协议。路由器a将通往外网的路由信息发送至路由器b。其中,上述路由信息中未携带下一跳。

路由器b接收到上述路由信息,在路由计算后,产生一条通往外网的路由;其中,该路由中的下一跳为路由器a的接口2的ip地址。

路由器b在处理发往外网的报文时,首先会将报文发送至路由器a,路由器a再将上述报文转发至路由器c,以由路由器c向外网发送上述报文。

相比路由器b直接将报文转发至路由器c的路径,上述转发路径过长,带来了不必要的网络延时和网络阻塞。如果路由器a开启重定向检测,则路由器b发送上述报文后会触发路由器a的重定向,进一步造成网络延时和网络阻塞,并浪费带宽,甚至可能因此产生丢包。

参见图2,为本申请示出的另一种网络架构图,如图2所示,路由器a与路由器b相连,路由器b与路由器c相连,路由器b与路由器d相连。

路由器b上配置第一静态路由,该第一静态路由的目的网段为10.10.0.0/16,其下一跳为路由器d上与其相连的接口8的ip地址。

路由器a上配置第二静态路由,该第二静态路由的目的网段为10.10.0.0/16,其下一跳为路由器b上与其相连的接口3的ip地址。

路由器a、路由器b和路由器c均运行isis协议,其中,路由器a将上述第一静态路由中的路由信息发送至路由器b和路由器c。其中,上述路由信息中未携带下一跳。

路由器c经过路由计算后,产生一条通往10.10.0.0/16的路由,该路由的下一跳为路由器b上与其相连的接口4的ip地址。

路由器b上配置了基于isis协议获得的路由的优先级高于静态路由,在路由计算后,产生一条通过10.10.0.0/16的路由,该路由的下一跳为路由器a上与其相连的接口2的ip地址。

在这种情况下,路由器a和路由器b对于发送至网段10.10.0.0/16的报文存在环路,当通往该网段的报文发送至这两台路由器后,会在两台路由器之间反复转发。从而导致通往网段10.10.0.0/16的报文发生丢包,还会大量消耗两台路由器之间的带宽。

可见,在现有技术中,由于运行isis协议的网络设备扩散的路由信息不携带下一跳,接收上述路由信息的网络设备如果与发送路由信息的网络设备直接相连,则在路由计算时,可能造成转发路径的重定向和环路,导致浪费带宽,甚至造成丢包。

有鉴于此,本申请提供了一种基于isis的路由重分布的方法及装置,使得网络设备在进行路由重分布时,向部分路由信息中加入下一跳,从而避免接收路由信息的网络设备在路由计算后造成路径的重定向和环路的问题。

参见图3,为本申请示出的一种基于isis的路由重分布的方法的流程图,所述方法应用于网络设备,所述方法包括以下步骤:

步骤301:确定本地的第一接口是否启用isis协议。

上述网络设备存在若干个运行isis协议的接口,并通过运行isis协议的接口扩散重分布的路由信息。

若上述网络设备存在未运行isis协议的接口,可以通过其它接口扩散重分布的未运行isis协议的接口的路由信息。

一般而言,网络设备可选在本地引入新的路由并且在与其它网络设备建立邻居关系后,向其它运行isis协议的网络设备扩散重分布的路由信息。

网络设备在向其它运行isis协议的网络设备扩散第一接口的路由信息前,首先确定上述第一接口是否启用isis协议。

其中,上述第一接口泛指本地的任一接口,其只是为便于描述进行的命名,并不限定本申请。

一方面,如果上述第一接口未启用isis协议,则与上述第一接口直接连接的网络设备在基于上述第一接口的路由信息进行路由计算时,不会出现如图1和图2示出的问题。

在这种情况下,网络设备可以直接向启用isis协议的网络设备发送上述第一接口的路由信息;其中,上述路由信息包括目的网段和开销值。具体地,网络设备可以参照现有技术来发送路由信息,本申请不再赘述。

另一方面,如果上述第一接口启用isis协议,则与上述第一接口直接连接的网络设备在基于上述第一接口的路由信息进行路由计算时,可能出现转发路径重定向和环路的问题,需进一步确定该网络设备与上述第一接口直接连接的接口是否启用isis协议。

步骤302:如果是,确定所述第一接口的邻居表中是否存在邻居表项。

一方面,如果上述第一接口的邻居表中不存在邻居表项,说明与上述第一接口直接连接的网络设备的接口未启用isis协议,则与上述第一接口直接连接的网络设备在基于上述第一接口的路由信息进行路由计算时,不会出现如图1和图2示出的问题。

在这种情况下,网络设备可以直接向启用isis协议的网络设备发送上述第一接口的路由信息;其中,上述路由信息包括目的网段和开销值。具体地,网络设备可以参照现有技术来发送路由信息,本申请不再赘述。

另一方面,如果上述第一接口存在邻居表项,说明该邻居表项对应的网络设备与上述第一接口相连的接口启用了isis协议,该邻居表项对应的网络设备在基于上述路由信息进行路由计算时,可能出现转发路径重定向和环路的问题。

步骤303:如果是,发送所述第一接口的路由信息;其中,所述路由信息包括目的网段、下一跳和开销值。

当上述第一接口启用isis协议且存在邻居表项,网络设备在扩散上述第一接口的路由信息时,可以将下一跳加入到路由信息中,然后上述路由信息发送至启用isis协议的网络设备。

具体地,若网络设备处于ipv4的网络环境,则在利用扩展ip可达tlv来携带上述第一接口的路由信息时,可以用其中的子tlv携带ipv4下一跳;该子tlv的类型为132。

若网络设备处于ipv6的网络环境,则在利用ipv6可达tlv来携带上述第一接口的路由信息时,可以用其中的子tlv携带ipv6下一跳;该子tlv的类型为232。

接收到携带下一跳的路由信息的网络设备,可以更准确的进行路由计算,从而避免转发路径重定向和环路。

在本申请实施例中,网络设备也可能接收到其它启用isis协议的网络设备发送的路由信息,并对接收到的路由信息进行处理。

网络设备接收到上述路由信息,首先确定上述路由信息是否携带下一跳。

一方面,如果上述路由信息不携带下一跳,则网络设备可以参照现有技术基于上述路由信息进行路由计算,本申请在此不再赘述。

另一方面,如果上述路由信息携带下一跳,则说明上述路由信息由与本地的邻居表项对应的网络设备发送,可以进一步确定上述下一跳是否为本地的地址。

如果上述下一跳是本地的地址,则与图2中路由器b的情况相同,此时,可以直接会略上述路由信息,避免在路由计算后产生环路。

如果上述下一跳不是本地的地址,则可以进一步确定是否存在对应于上述路由信息的发送方的邻居表项。

具体地,网络设备可以基于上述路由信息的发送方的ip地址查找本地的邻居表,确定是否存在对应的邻居表项。

一方面,如果不存在对应于上述路由信息的发送方的邻居表项,网络设备可以忽略上述路由信息中的下一跳,然后基于上述路由信息执行路由计算。

另一方面,如果存在对应于上述路由信息的发送方的邻居表项,则网络设备可以基于上述路由信息执行路由计算。

具体地,网络设备可以判断上述路由信息中的下一跳是否与本地的ip地址处于同一个子网。并在上述下一跳与本地的ip地址处于同一个子网的情况下,将上述下一跳作为通往上述路由信息的目的网段的下一跳。

以图1示出的网络架构图进行说明。

路由器a确定接口2启用isis协议,并且接口2的邻居表中存在对应于接口3的邻居表项,因此,将通往外网的路由信息扩散至路由器b;其中,上述路由信息携带下一跳。

路由器b接收到上述路由信息,确定其中的下一跳不是本地的地址,且存在对应于路由器a的邻居表项,进而在路由计算后,获得通往外网的路由;其中,该路由中的下一跳为路由器c的接口5的ip地址。

在这种情况下,路由器b在处理发往外网的报文时,不需将报文发送至路由器a,缩短了转发路径,避免了重定向带来的网络延时和网络阻塞。

以图2示出的网络架构图进行说明。

路由器a确定接口2启用isis协议,并且接口2的邻居表中存在对应于接口3的邻居表项,因此,将上述第一静态路由中路由信息扩散至路由器b和路由器c。其中,上述路由信息携带下一跳。

路由器c不与路由器a直接连接,经过路由计算后,产生一条通往10.10.0.0/16的路由,该路由的下一跳为路由器b上与其相连的接口4的ip地址。

路由器b接收到上述路由信息,检查确定上述路由信息中的下一跳为本地的接口3的ip地址,因此在路由计算时可以忽略上述路由信息。

在这种情况下,路由器b与路由器a之间不会存在环路,避免了环路带来的带宽浪费和丢包。

综上所述,在本申请技术方案中,网络设备在扩散本地的第一接口的路由信息前,可以确定上述第一接口是否启用isis协议,如果上述第一接口启用isis协议,可以进一步确定上述第一接口的邻居表是否存在邻居表项,如果存在邻居表项,则发送上述第一接口的路由信息中加入下一跳;

由于与上述邻居表项对应的设备接收到上述路由信息后,可以基于上述路由信息中的下一跳更准确地获知网络连接的状况,更准确地进行路由计算,避免后续出现转发路径的重定向或环路的问题,从而解决了浪费带宽和丢包的问题。

与前述基于isis的路由重分布的方法的实施例相对应,本申请还提供了基于isis的路由重分布的装置的实施例。

参见图4,为本申请示出的一种基于isis的路由重分布的装置的实施例框图:

如图4所示,该基于isis的路由重分布的装置40,包括:

第一确定单元410,用于确定本地的第一接口是否启用isis协议。

第二确定单元420,用于如果是,确定所述第一接口的邻居表中是否存在邻居表项。

发送单元430,用于如果是,发送所述第一接口的路由信息;其中,所述路由信息包括目的网段、下一跳和开销值。

在本例中,所述装置还包括:

所述发送单元430,进一步用于如果所述第一接口未启用isis协议,发送所述第一接口的路由信息;其中,所述路由信息包括目的网段和开销值;或,

如果所述第一接口启用isis协议且所述邻居表中不存在邻居表项,发送所述第一接口的路由信息;其中,所述路由信息包括目的网段和开销值。

在本例中,所述装置还包括:

接收单元440(图中未示出),用于接收到所述路由信息,确定所述路由信息是否携带下一跳。

所述第一确定单元410,进一步用于如果所述路由信息携带所述下一跳,确定所述下一跳是否为本地的地址。

所述第二确定单元420,进一步用于如果所述下一跳不是本地的地址,确定是否存在对应于所述路由信息的发送方的所述邻居表项。

计算单元450(图中未示出),用于如果存在,基于所述路由信息执行路由计算。

在本例中,所述装置还包括:

忽略单元460(图中未示出),用于如果所述下一跳是本地的地址,忽略所述路由信息。

在本例中,所述装置还包括:

所述计算单元450(图中未示出),进一步用于如果不存在对应于所述路由信息的发送方的所述邻居表项,忽略所述下一跳,基于所述路由信息执行路由计算。

本申请基于isis的路由重分布的装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请基于isis的路由重分布的装置所在网络设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据该基于isis的路由重分布的装置的实际功能,还可以包括其他硬件,对此不再赘述。

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

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

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

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