一种控制路由设备接口状态的方法及装置的制作方法

文档序号:7751890阅读:89来源:国知局
专利名称:一种控制路由设备接口状态的方法及装置的制作方法
技术领域
本发明涉及隧道技术领域,尤其涉及一种控制路由设备接口状态的方法及装置。
背景技术
隧道技术是能够实现IPv6网络在IPv4网络中彼此通信的一种封装技术,它利用 一种网络协议来传输另一种网络协议,即一种网络协议将其他协议产生的数据报文封装在 自己的报文中,然后在网络中传输。隧道(Tunnel)是一个虚拟的点对点连接,为封装的数 据报文提供了一条传输通路,在隧道的两端需要对数据报文进行封装及解封装。隧道技术 就是指包括数据封装、传输和解封装在内的全过程。图1为IPv6over IPv6隧道的示意图,IPv6私网1和IPv6私网2不能直接传输数 据。该两个私网要实现互通,可以通过IPv6公网传输数据,即基于IPv6协议使用IPv6 over IPv6隧道来传输IPv6协议报文,从而达到IPv6的两个私网可以互相访问的目的。在传输 报文时,需要对来自私网的IPv6协议报文进行封装,封装格式如图2所示,即在私网IPv6 协议报文加上IPv6报文头。图3为IPv6 over IPv4隧道的示意图,IPv6网络1和IPv6 网络2是两个孤立的网络,不能直接传输数据。该两个网络要实现互通,可以通过IPv4网 络传输数据,即基于IPv4协议使用IPv6 over IPv4隧道来传输IPv6协议报文,从而达到 IPv6的两个孤立网络可以互相访问的目的。在传输报文时,需要对来自孤立网络的IPv6协 议报文进行封装,封装格式如图4所示,即在私网IPv6协议报文加上IPv4报文头。在图2 以及图4所示的封装格式中,内层协议称为乘客协议,外层协议称为传输协议,如图4所示 的IPv6 over IPv4隧道中,IPv6为乘客协议,IPv4为传输协议。隧道嵌套,即当一个隧道中的传输协议同时也作为另外一个隧道的乘客协议的情 况,具体如图5所示,为隧道嵌套的拓扑示意图,“IPv6私网1”要访问“IPv6私网3”,需要 通过“ IPv6私网2 ”建立一个“隧道2 ”。而“ IPv6私网1,,要访问“ IPv6私网2 ”,首先要通 过“ IPv6公网,,建立“隧道1 ”。这样在图5所示的“ RouterA (路由A),,上就出现的隧道嵌 套。在传输报文时的封装格式如图6所示,其中,IPv6报文601为最内层乘客协议,IPv6报 文头602既作为内层乘客协议的传输协议,又作为外层传输协议的乘客协议,IPv6报文头 603为最外层传输协议。隧道嵌套的最外层的传输协议,其报文长度通常是固定的(例如以太网是1500字 节),因此能支持的嵌套层数是有限的。而实际应用中,太多的嵌套层数,会使最内层的乘客 协议的最大传送字节数变小,从而引起分片,也可能引起处在中间层的IPv6报文的分片, 隧道的对端路由收到分片后,又要重组,重组过程往往消耗较多的CPU资源,因此,太多的 嵌套层数会严重影响路由器效率与性能。并且,由于路由设备配置出现错误,报文被循环的 嵌套封装,导致隧道无限递归嵌套,使得路由设备性能急骤下降,甚至无法正常工作。为了避免上述问题,现有技术给出了一种限制嵌套层数的方法,该方法在IPv6扩 展头中加入一个封装限制选项,一般在最内层乘客的IPv6头中,这个封装限制设置成4。当 报文被封装上传输协议IPv6头后,将乘客中的封装限制值减1,填写到传输协议的IPv6扩展头中,随着嵌套封装,该封装限制值就会被减成0,此时丢弃该报文,并向最早的报文发送 源站点发送ICMP错误报文。采用上述技术方案虽然能够对嵌套层数进行有效限制,但处理成本很高。即如果 出现多层的嵌套隧道(甚至无限递归嵌套),那么最内层的报文,要被封装了好多层以后, 系统才发现嵌套层数超过限制了。而这时如果网络中存在很多报文流入这种嵌套隧道,系 统性能就会下降,甚至无法正常工作。并且,采用该技术方案,由于IPv4报文头中没有封装 限制选项,因此,该技术方案无法控制IPv4 over IPv4的隧道中的隧道嵌套层数。

发明内容
有鉴于此,本发明实施例提供一种控制路由设备接口状态的方法,用于解决采用 现有隧道嵌套实现方案中,对报文封装处理成本高以及不能有效控制在IPv4 over IPv4隧 道中进行隧道嵌套的问题。本发明实施例通过如下技术方案实现根据本发明实施例的一个方面,提供了 一种控制路由设备接口状态的方法。根据本发明实施例提供的控制路由设备接口状态的方法,包括通过对当前隧道对应的第一路由设备接口配置的隧道目的地址进行选路,来确定 用于承载所述隧道的第二路由设备接口;根据确定的所述第二路由设备接口对应的计数器值,更新所述第一路由设备接口 对应的计数器值;在确定所述第一路由设备接口对应的更新后的计数器值达到设定阈值时,配置所 述第一路由设备接口为非工作状态。根据本发明实施例的另一个方面,还提供了一种控制路由设备接口状态的装置。根据本发明实施例提供的控制路由设备接口状态的装置,包括接口确定单元,用于通过对当前隧道对应的第一路由设备接口配置的隧道目的地 址进行选路,来确定用于承载所述隧道的第二路由设备接口 ;计数器更新单元,用于根据所述接口确定单元确定的第二路由设备接口对应的计 数器值,更新所述第一路由设备接口对应的计数器值;状态配置单元,用于在确定所述计数器更新单元更新的第一路由设备接口对应的 计数器值达到设定阈值时,配置所述第一路由设备接口为非工作状态。通过本发明实施例提供的上述至少一个技术方案,通过对当前隧道对应的第一路 由设备接口配置的隧道目的地址进行选路,来确定用于承载该隧道的第二路由设备接口, 根据确定的第二路由设备接口对应的计数器值,更新该第一路由设备接口对应的计数器 值,并在确定第一路由设备接口对应的计数器值达到设定阈值时,配置该第一路由设备接 口为非工作状态。根据该技术方案,能够及时地将达到阈值的计数器对应的路由设备接口 配置为非工作状态,从而在源头上避免了报文的多重嵌套封装,在控制隧道嵌套层数的基 础上,避免路由设备进行多重报文封装的无效操作,提高路由设备的运作效率。并且,能够 有效的预防无限递归嵌套隧道的产生,避免路由设备性能急骤下降甚至不可用,而且能够 实现在IPv4 over IPv4、IPv6 over IPv4、IPv4 over IPv6等包括IPv4协议的隧道中进行 隧道嵌套。
5
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施 例一起用于解释本发明,并不构成对本发明的限制。在附图中图1为本发明背景技术中提供的IPv6 over IPv6隧道示意图;图2为本发明背景技术中提供的IPv6 over IPv6隧道中的封装格式示意图;图3为本发明背景技术中提供的IPv6 over IPv4隧道示意图; 图4为本发明背景技术中提供的IPv6 over IPv4隧道中的封装格式示意图;图5为本发明背景技术中提供的隧道嵌套的拓扑示意图;图6为本发明背景技术中提供的隧道嵌套中的封装格式示意图;图7为本发明实施例提供的控制路由设备接口状态的方法流程图一;图8为本发明实施例提供的控制路由设备接口状态的方法流程图二 ;图9为本发明实施例提供的基于图5实现路由设备接口状态的流程图;图10为本发明实施例提供的更新路由设备接口状态的方法流程图;图11为本发明实施例提供的控制路由设备接口状态的装置示意图一;图12为本发明实施例提供的控制路由设备接口状态的装置示意图二 ;图13为本发明实施例提供的控制路由设备接口状态的装置示意图三;图14为本发明实施例提供的控制路由设备接口状态的装置示意图四。
具体实施例方式为了给出降低对报文封装处理的处理成本以及在IPv4 over IPv4隧道中进行隧 道嵌套的实现方案,本发明实施例提供了一种控制路由设备接口状态的方法及装置,以下 结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅 用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例 及实施例中的特征可以相互组合。根据本发明实施例,首先提供了一种控制路由设备接口状态的方法,如图7所示, 该方法主要通过如下步骤实现步骤701、根据为当前隧道对应的第一路由设备接口配置的隧道目的地址进行选 路,确定用于承载该隧道的路由设备接口(为方便后续区分,此处确定的接口称为第二路 由设备接口)。步骤702、根据该第二路由设备接口对应的计数器值,更新第一路由设备接口对应 的计数器值。步骤703、判断第一路由设备接口对应的计数器值是否达到设定阈值,若是,执行 步骤704,若否,执行步骤705。步骤704、配置该第一路由设备接口为非工作状态。该步骤中,配置第一路由设备接口为非工作状态,具体包括
改变该第一路由设备接口对应的状态值,即将第一路由设备接口的状态值更新为 非工作状态对应的状态值。该状态值用于标识路由设备接口的工作状态,具体工作状态与状态值的对应关系 可以预先设置,例如,将该状态值设为“TRUE”时,该路由设备接口处于工作状态,将该状态 值设为“FALSE”时,该路由设备接口处于非工作状态。实际应用中,当路由设备接口对应的 状态值为“UP”时,该接口处于工作状态,当路由设备接口对应的状态值为“DOWN”时,该接 口处于非工作状态。步骤705、保持该第一路由设备接口处于工作状态。 图7所示流程中,为了更有效地控制路由设备接口的状态,在执行上述步骤702之 前,即在根据第二路由设备接口对应的计数器值,更新第一路由设备接口对应的计数器值 之前,还包括确定第二路由设备接口状态的步骤,并在确定第二路由设备接口处于工作状 态时,执行步骤702。执行上述步骤的目的在于,保证承载当前隧道的路由设备接口的有效性,即保证 对本次第一路由设备接口的更新有效。图7所示流程中,为了更有效地控制路由设备接口的状态,在执行上述步骤702之 前,即在根据第二路由设备接口对应的计数器值,更新第一路由设备接口对应的计数器值 之前,还包括确定第二路由设备接口状态的步骤,并在确定第二路由设备接口为非工作状 态时,进一步执行如下步骤根据为当前隧道对应的第一路由设备接口配置的隧道目的地址重新选路,来确定 用于承载隧道的第二路由设备接口。通过该步骤的执行,可以保证隧道的正常建立。图7所示流程中,为了更有效地控制路由设备接口的状态,在执行上述步骤702之 前,即在根据第二路由设备接口对应的计数器值,更新第一路由设备接口对应的计数器值 之前,还可以执行如下步骤确定第一路由设备接口对应的计数器值是否达到设定阈值;若否,则执行步骤702;若是,则直接执行步骤704,即直接配置第一路由设备接口为非工作状态。执行以上步骤的目的在于,避免对第一路由设备接口状态更新的多余操作,提高 对路由设备接口控制的效率。并且,通过预先确定第一路由设备接口对应的计数器值是否 达到设定阈值,在达到设定阈值时,无需执行计数器更新,而直接配置该第一路由设备接口 为非工作状态,从而提高了控制路由设备接口的状态的效率。以上实施例是针对根据当前隧道的建立情况对网络设备接口状态进行控制的过 程,该隧道可以为独立的隧道,例如,该隧道可以为图5中基于RouterA建立的隧道1,则 相应的第一路由设备接口为Interface tunnel 1,相应的第二路由设备接口为Interface FastEthernet 0/0 ;该隧道也可以为嵌套的隧道,例如,该隧道可以为图5中基于RouterA 建立的隧道2,相应的第一路由设备接口为Interface tunnel 2,相应的第二路由设备接口 为 Interface tunnel 1。实际应用中,在网络设备之间建立的隧道包括多个,对应多个隧道情况下的路由 设备接口控制情况,均可以采用上述技术方案实现。
根据图7所示流程可以实现对网络设备接口状态的控制,根据本发明实施例,还可以更新具体配置更新网络设备接口状态,具体如图8所示,对网络设备接口状态的更新 过程,包括如下步骤步骤801、监控为当前隧道对应的第一路由设备接口配置的隧道目的地址。步骤802、判断该隧道目的地址是否发生变化,若是,执行步骤803,若否,返回步 骤 801。步骤803、根据变化后的隧道目的地址重新选路。步骤804、根据选路结果更新第一路由设备接口对应的计数器值。图8所示流程的步骤804中,根据选路结果更新所述第一路由设备接口对应的计 数器值,具体包括根据选路结果中确定的用于承载隧道的第三路由设备接口对应的计数器值,更新 该第一路由设备接口对应的计数器值。通过本发明实施例提供的上述技术方案,能够在控制隧道嵌套层数的基础上,避 免路由设备进行多重报文封装的无效操作,提高路由设备的运作效率。并且,能够有效的 预防无限递归嵌套隧道的产生,避免路由设备性能急骤下降甚至不可用,而且能够适用于 IPv4 over IPv4的隧道嵌套,与IPv6 over IPv4 overIPv4的各种混合嵌套。为了更好地理解本发明实施例提供的技术方案,以下结合具体的应用,对本发明 实施例所涉及的技术细节进行详细描述以图5所示的隧道嵌套拓扑关系为例,即IPv6私网1与IPv6私网3之间要建立 连接,需要通过IPv6私网2,即通过IPv6私网2建立一个隧道2,而首先需要IPv6私网1 与IPv6私网2之间建立连接,即通过IPv6公网建立隧道1。其中,RouterA(即路由A)与 IPv6私网1对应,RouterB(即路由B)与IPv6私网2对应,RouterC(即路由C)与IPv6私 网3对应。根据图5所示的隧道拓扑关系,路由设备接口状态的具体控制过程如图9所示,包 括步骤901 步骤906,其中,各步骤的具体执行过程如下步骤901、创建隧道以及配置路由设备接口。该步骤中,路由设备即路由器,其中,RouterA上出现隧道嵌套,该RouterA可以配 置三个接口,分别配置如下Interface FastEthernet 0/0 该接 口 为 RouterA 的物理接 口,其 IPv6 地址为 2000:1/64 ;Interface tunnel 1 该接口为 RouterA 的逻辑接 口,其 IPv6 地址为 2001 1/64, 隧道目的地址为2000 2,该隧道目的地址即为RouterB对应的地址,将该接口的隧道目的 地址设置为RouterB对应的地址,其目的在于建立与RouterB之间的隧道连接;Interface tunnel 2 该接口为 RouterA 的逻辑接 口,其 IPv6 地址为 2002 1/64, 隧道目的地址为2005 3,该隧道目的地址为RouterC对应的地址,将该接口的隧道目的地 址设置为RouterC对应的地址,其目的在于建立与RouterC之间的隧道连接。根据以上接口配置,RouterA中的路由表若配置有路由2005: :0/64指向 Interface tunnel 1,则表示至Ij达 RouterC 是从 Interface tunnel 1 接口 出去。RouterB配置三个接口,分别配置如下
Interface FastEthernet 0/0 该接 口 为 RouterB 的物理接 口,其 IPv6 地址为 2000: 2/64,用于与 RouterA 相连;Interface tunnel 1 该接口为 RouterB 的逻辑接 口,其 IPv6 地址为 2001 2/64, 隧道目的地址为2000: :1,该隧道目的地址即为RouterA对应的地址,将该接口的隧道目的 地址设置为RouterA对应的地址,其目的在于建立与RouterA之间的隧道连接;Interface FastEther 0/1 该接口为 RouterB 的物理接 口,其 IPv6 地址为 2005: 1/64,用于与 RouterC 相连。RouterC配置两个接口,分别配置如下 Interface FastEthernet 0/0 该接口为 RouterC 的物理接 口,基 IPv6 地址为 2005 3/64,用于与 RouterB 相连;Interface tunnel 1 该接口为 RouterC 的逻辑接 口,其 IPv6 地址为 2002 2/64, 隧道目的地址为2001 1,该隧道目的地址即为RouterA对应的地址,将该接口的隧道目的 地址设置为RouterA对应的地址,其目的在于建立与RouterA之间的隧道连接。根据以上接口配置,RouterC中的路由表若配置有路由2001 :0/64指向 Interface FastEthernet 0/0,则表示至Ij达 RouterA 是从 Interface FastEthernet 0/0 接 口出去。以上配置过程可以通过系统操作人员输入配置命令的方式实现,例如,对于 Interface tunnel X (表示隧道X对应的接口),配置命令包括用于在Interfacetunnel X下配置接口的IP地址(IPv6地址或IPv4地址)的命令、用于在Interfacetunnel X下 配置隧道的目的地址的命令。对路由设备的接口配置隧道目的地址后,即确定了该隧道与 哪个路由设备进行隧道连接,进而通过选路确定该隧道架于哪个该路由设备的哪个接口运 行。步骤902、为路由设备接口配置计数器。该步骤中,给路由设备上的每个接口配置一个计数器,该计数器用于记录隧道嵌 套的层数。为每个路由设备接口配置的计数器在接口配置时进行初始化。其中,计数器的计数方式可以灵活设置,例如,可以采用递增方式计数,即将计数 器值初始化为0,每次在该计数器对应的接口被选择运行隧道时,该计数器对应的值加1, 直到计数器值递增至设定阈值;也可以采用递减方式计数,即将计数器值初始化为设定阈 值,每次在该计数器对应的接口被选择运行隧道时,该计数器对应的值减1,直到计数器的 值递减至O。本发明实施例中计数器的计数方式可以灵活设置,此处不再一一列举。步骤903、根据隧道目的地址的选路结果,更新计数器值。该步骤中,在根据隧道的建立情况为该隧道对应的路由设备接口配置隧道目标地 址后,使用配置的目标地址进行选路,即选择这个隧道是架于哪一个接口上运行的。然后将 该接口对应的计数器值加1(计数器采用递增方式计数的情况)或减1(计数器采用递减方 式计数的情况),并将加1后的计数器值作为该隧道对应的路由设备接口的计数器值。如图5所示,假设根据选路结果确定Tunnel 1 (隧道1)运行在 InterfaceFastEthernet 0/0 上,Tunnel 2 (隧道 2)嵌套在 Tunnel 1 中,艮PTunnel 2 运行 在Interface tunnel 1上,根据选路结果更新计数器的过程如下为Tunnel 1对应的接口 Interface tunnel 1配置的隧道目的地址为2000 2,根据该目的地址在RouterA上进行选路,根据选路结果确定Tunnel 1是从Interface FastEthernet 0/0 出去,艮口 Tunnel 1 运行在 Interface FastEthernet 0/0 上;为Tunnel 2对应的接口 Interface tunnel 2配置的隧道目的地方地址为 2001 :3,根据该目的地址在RouterA上进行选路,根据选路结果确定Turmel 2是从Turmel 1出去,即Tunnel 2运行在Interface tunnel 1上,也就是Tunnel 2嵌套在Tunnel 1上。根据以上选路结果,Interface tunnel 1对应的计数器就是将 InterfaceFastEthernet 0/0对应的计数器值(该接口对应的计数器值恒为0)加上1,即 将Interface tunnel 1对应的计数器值更新为1 ;Interface tunnel 2对应的计数器就是将Interface tunnel 1对应的计数器值 加上1,等于2,即将Interface tunnel 2对应的计数器值更新为2。根据本发明实施例,Interface FastEthernet 0/0为路由器的物理接口,其对应 的计数器值不更新,均设置为初始值,该初始值根据计数器所采用的技术方式以及设定的 阈值决定。步骤904、监控各路由设备接口对应的计数器值。该步骤中,各用于运行隧道协议的路由设备接口均设置有允许的嵌套次数,并作 为该计数器的阈值,根据各路由设备接口对应的计数器的计数方式以及该阈值,对该计数 器进行监控,即监控计数器的计数值是否达到设定阈值(该阈值设定为该接口被允许的嵌 套次数)。步骤905、判断计数器值是否达到设定阈值,若是,执行步骤906,否则返回步骤 904。该步骤中,设定阈值即为针对与该计数器对应的路由设备接口限定的隧道嵌套层 数的限制值。步骤906、将到达设定阈值的计数器对应的路由设备接口置于非工作状态。该步骤中,当路由设备接口对应的计数器超过预先设置的阈值时,将该路由设备 接口置于非工作状态。例如,若预先设置Interface tunnel 2对应的计数器不能超过1,此 时,Interface tunnel 2对应的计数器值为2,超过了预设的阈值,则将Interface Tunnel 2置于非工作状态。以上步骤901 步骤906独立地构成了本发明实施例中对路由设备接口状态控制 的流程。通过上述对路由设备接口状态控制的流程,为路由设备接口设置计数器并对计数 器值进行监控,由于Interface Tunnel 2处于非工作状态,因此路由设备Router A是无法 将报文送达Turmel 2,从而从源头上避免了报文的多重嵌套封装。而现有技术方案中,是先 将报文送到Turmel 2中,由Turmel 2封装完成之后,交给Tunnel 1封装,并在封装完成后 判断报文是否超过嵌套层数,若超过限定的嵌套层数,则丢弃报文,这无疑加大了路由设备 的负担。本发明实施例中,在将路由设备接口置于非工作状态后,进一步可以各网络接口 的配置信息对路由设备接口的状态进行维护,具体地,可以通过对隧道目的地址进行监控 的方式实现对路由设备接口状态的维护,如图10所示,包括如下过程步骤1001、监控为各路由设备接口配置的隧道目的地址。
该步骤中,监控的路由设备接口包括处于工作状态的路由设备接口,也包括被设 置为非工作状态的路由设备接口。步骤1002、判断为各路由设备接口配置的隧道目的地址是否有更新,若是,执行步 骤1003,否则返回步骤1001 ;步骤1003、针对更新后的隧道目的地址重新选路,并根据选路结果更新相应路由 设备接口对应的计数器值。该步骤1003中,根据选路结果更新相应路由设备接口对应的计数器值的过程与 上述步骤903的具体执行原理一致,此处不再赘述。以上步骤1001 步骤1003独立地构成了本发明实施例中对路由设备接口状态进 行监控的流程。
通过上述对路由设备接口状态进行监控的流程,能够对各路由设备对应的计数器 进行及时更新,并及时调整各路由设备接口对应的状态。具体地,通过上述对路由设备接口状态进行监控的流程,确定满足对Interface tunnel 2激活(即将Interface tunnel 2由非工作状态配置处于工作状态)的条件,即满 足该接口对应的计数器的计数值更新为小于等于预设值。例如,根据上述对路由设备接口状态控制的实施例,Interface tunnel 2由于其 对应的计数器值为2而被设置为非工作状态,Interface tunnel 2对应的计数器的阈值为 1,则在以下情况下需要更新该计数器的值用户手工修改隧道目标地址,引起路由设备重新选择隧道目的出口。如图5中,如 果Turmel 2的隧道目标地址修改成RouterB的地址,根据该目的地址选路的选路结果确 定接口变为 Interface Fast Ethernet 0/0,此时,Interface tunnel2 对应的计数器就为 FastEthernet 0/0的0加上1,即更新Interface tunnel 2对应的计数器值为1。本发明实施例中,在将路由设备接口置于非工作状态后,进一步可以各网络接口 的配置信息对路由设备接口的状态进行维护,具体地,可以通过对路由器中的路由表进行 监控的方式实现对路由设备接口状态的维护,具体地,监控第一路由设备接口所在路由设 备中的路由表,当该路由表发生变化时,根据变化后的路由表重新选路,并根据选路结果更 新第一路由设备接口对应的计数器值。一般情况下,在路由器中的路由表发生变动时,同时会改变该路由器的隧道目 的接口,从而需要重新选择用于承载隧道的路由设备接口。例如,图5中,如果出现一条 隧道目的地址为2001: :3/128的隧道,即Tunnel 2,该隧道的出口指向Interface Fast Ethernet 0/0,那么Tunnel 2的隧道目的接口也会自动调整为Interface FastEthernet 0/0,此时Interface tunnel 2对应的计数器就为Fast Ethernet0/0对应的计数器值(该 接口对应的计数器值恒为0)加上1,即将Interface tunnel2对应的计数器值更新为1。根据本发明实施例提供的上述技术方案,在有效控制路由设备接口状态层数的基 础上,还能够避免无限递归嵌套隧道的产生,例如,网络管理员由于误操作将Tunnel 1的 隧道目的地址配置成2002::2,那么Tunnel 1的隧道目的接口就会选择成Turmel 2,而 Tunnel 2的隧道目的接口是Tunnel 1,根据现有技术方案,就出现了无限递归嵌套隧道。 而根据本发明实施例,Interface tunnel 1以及Interface tunnel 2分别对应的计数器就会不断累加上去,在超过预先设置的嵌套层数限制阈值时,Interface tunnel 1以及 Interface tunnel 2就会同时置成非工作状态,并且提醒网络管员判断是否有配置错误。根据本发明实施例,为各路由设备接口对应的计数器设置的嵌套层数限制阈值, 可以优选地设置为 4,即 RFC 2473 (Generic Packet Tunneling in IPv6Specification)的 推荐值。以上实施例中为方便描述将Interface tunnel 2对应的计数器的阈值设为1,实 际不影响本发明实施例的实现原理。本发明实施例提供的上述技术方案为方便理解,以路由设备为路由器为例进行说 明,应当理解,本发明实施例提供的技术方案同样适用于交换机、防火墙等设备,具体实现 原理与采用路由器实现的原理类似,此处不再赘述。 相应地,与上述方法流程对应,本发明实施例还提供了一种控制路由设备接口状 态的装置,如图11所示,该装置包括接口确定单元1101、计数器更新单元1102以及状态配置单元1103 ;其中接口确定单元1101,用于根据为当前隧道对应的第一路由设备接口配置的隧道目 的地址进行选路,确定用于承载所述隧道的第二路由设备接口 ;计数器更新单元1102,用于根据接口确定单元1101确定的第二路由设备接口对 应的计数器值,更新所述第一路由设备接口对应的计数器值;状态配置单元1103,用于在确定计数器更新单元1102更新的第一路由设备接口 对应的计数器值达到设定阈值时,配置所述第一路由设备接口为非工作状态。如图12所示,本发明优选实施例中,图11所示的装置还可以进一步包括状态确定单元1104,用于确定所述第二路由设备接口的状态;计数器更新单元1102,具体在状态确定单元1104确定第二路由设备接口处于工 作状态时,根据所述第二路由设备接口对应的计数器值,更新所述第一路由设备接口对应 的计数器值;接口确定单元1101,还用于在所述状态确定单元确定所述第二路由设备接口处于 非工作状态时,根据为当前隧道对应的第一路由设备接口配置的隧道目的地址重新选路。如图13所示,本发明优选实施例中,图11所示的装置还可以进一步包括阈值确定单元1105,用于确定所述第一路由设备接口对应的计数器值是否达到设 定阈值;所述计数器更新单元1102,具体在阈值确定单元1105的确定结果为否时,根据所 述第二路由设备接口对应的计数器值,更新所述第一路由设备接口对应的计数器值。状态配置单元1103,具体在阈值确定单元1105的确定结果为是时,直接配置所述 第一路由设备接口为非工作状态。如图14所示,本发明优选实施例中,图11所示的装置还可以进一步包括地址监控单元1106,用于监控为当前隧道对应的第一路由设备接口配置的隧道目 的地址;以及,监控所述第一路由设备接口所在路由设备中的路由表;相应地,接口确定单元1101,还用于在所述地址监控单元监控到所述隧道目的地 址发生变化时,根据变化后的隧道目的地址重新选路;或在所述地址监控单元监控到所述 路由表发生变化时,根据变化后的路由表重新选路;
计数器更新单元1102,还用于根据所述接口确定单元的选路结果更新所述第一路 由设备接口对应的计数器值。本发明优选实施例中,图14所示的装置包括的计数器更新单元1102,具体用于 根据选路结果中确定的用于承载所述隧道的第三路由设备接口对应的计数器值, 更新所述第一路由设备接口对应的计数器值。本发明优选实施例中,图11所示的装置包括的状态配置单元1103,具体用于在确定所述计数器更新单元更新的第一路由设备接口对应的计数器值达到设定 阈值时,将所述第一路由设备接口对应的状态值更新为非工作状态对应的状态值。应当理解,以上实施例提供的控制路由设备接口状态的装置包括的单元仅为根据 该装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且以 上实施例提供的控制路由设备接口状态的装置所实现的功能与上述实施例提供的控制路 由设备接口状态的方法流程一一对应,对于该装置所实现的更为详细的处理流程,在上述 方法实施例中已做详细描述,此处不再详细描述。通过本发明实施例提供的上述至少一个技术方案,根据为当前隧道对应的第一路 由设备接口配置的隧道目的地址进行选路,确定用于承载该隧道的第二路由设备接口,根 据确定的第二路由设备接口对应的计数器值,更新该第一路由设备接口对应的计数器值, 并在确定第一路由设备接口对应的计数器值达到设定阈值时,配置该第一路由设备接口为 非工作状态。根据该技术方案,能够及时地将达到阈值的计数器对应的路由设备接口配置 为非工作状态,从而在源头上避免了报文的多重嵌套封装,在控制隧道嵌套层数的基础上, 避免路由设备进行多重报文封装的无效操作,提高路由设备的运作效率。并且,能够有效的 预防无限递归嵌套隧道的产生,避免路由设备性能急骤下降甚至不可用,而且能够实现在 IPv4 over IPv4、IPv6 over IPv4、IPv4 over IPv6等包括IPv4协议的隧道中进行隧道嵌 套。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种控制路由设备接口状态的方法,其特征在于,包括通过对当前隧道对应的第一路由设备接口配置的隧道目的地址进行选路,来确定用于承载所述隧道的第二路由设备接口;根据确定的所述第二路由设备接口对应的计数器值,更新所述第一路由设备接口对应的计数器值;在确定所述第一路由设备接口对应的更新后的计数器值达到设定阈值时,配置所述第一路由设备接口为非工作状态。
2.如权利要求1所述的方法,其特征在于,根据所述第二路由设备接口对应的计数器 值,更新所述第一路由设备接口对应的计数器值之前,还包括确定所述第二路由设备接口的状态;若所述第二路由设备接口处于工作状态,则执行根据所述第二路由设备接口对应的计 数器值,更新所述第一路由设备接口对应的计数器值的步骤;若所述第二路由设备接口处于非工作状态,则在通过对当前隧道对应的第一路由设备 接口配置的隧道目的地址进行重新选路来确定用于承载所述隧道的第二路由设备接口后, 执行根据所述第二路由设备接口对应的计数器值,更新所述第一路由设备接口对应的计数 器值的步骤。
3.如权利要求1所述的方法,其特征在于,在根据所述第二路由设备接口对应的计数 器值,更新所述第一路由设备接口对应的计数器值之前,还包括确定所述第一路由设备接口对应的计数器值是否达到设定阈值;若否,则执行根据所述第二路由设备接口对应的计数器值,更新所述第一路由设备接 口对应的计数器值的步骤;若是,则直接执行配置所述第一路由设备接口为非工作状态的步骤。
4.如权利要求1所述的方法,其特征在于,在根据确定的所述第二路由设备接口对应 的计数器值,更新所述第一路由设备接口对应的计数器值后,还包括监控为当前隧道对应的第一路由设备接口配置的隧道目的地址,在监控到所述隧道目 的地址发生变化时,根据变化后的隧道目的地址重新选路,并根据选路结果更新所述第一 路由设备接口对应的计数器值;或监控所述第一路由设备接口所在路由设备中的路由表,当所述路由表发生变化时,根 据变化后的路由表重新选路,并根据选路结果更新所述第一路由设备接口对应的计数器 值。
5.如权利要求4所述的方法,其特征在于,根据选路结果更新所述第一路由设备接口 对应的计数器值,包括根据选路结果中确定的用于承载所述隧道的第三路由设备接口对应的计数器值,更新 所述第一路由设备接口对应的计数器值。
6.一种控制路由设备接口状态的装置,其特征在于,包括接口确定单元,用于通过对当前隧道对应的第一路由设备接口配置的隧道目的地址进 行选路,来确定用于承载所述隧道的第二路由设备接口 ;计数器更新单元,用于根据所述接口确定单元确定的第二路由设备接口对应的计数器 值,更新所述第一路由设备接口对应的计数器值;状态配置单元,用于在确定所述计数器更新单元更新的第一路由设备接口对应的计数 器值达到设定阈值时,配置所述第一路由设备接口为非工作状态。
7.如权利要求6所述的装置,其特征在于,还包括状态确定单元,用于确定所述第二路由设备接口的状态;所述计数器更新单元,具体在所述状态确定单元确定所述第二路由设备接口处于工作 状态时,根据所述第二路由设备接口对应的计数器值,更新所述第一路由设备接口对应的 计数器值;所述接口确定单元,还用于在所述状态确定单元确定所述第二路由设备接口处于非工 作状态时,通过对当前隧道对应的第一路由设备接口配置的隧道目的地址进行重新选路, 来确定用于承载所述隧道的第二路由设备接口。
8.如权利要求6所述的装置,其特征在于,还包括阈值确定单元,用于确定所述第一路由设备接口对应的计数器值是否达到设定阈值;所述计数器更新单元,具体在所述阈值确定单元的确定结果为否时,根据所述第二路 由设备接口对应的计数器值,更新所述第一路由设备接口对应的计数器值;所述状态配置单元,具体在所述阈值确定单元的确定结果为是时,配置所述第一路由 设备接口为非工作状态。
9.如权利要求6所述的装置,其特征在于,还包括地址监控单元,用于在所述计数器更新单元更新所述第一路由设备接口对应的计数器 值后,监控为当前隧道对应的第一路由设备接口配置的隧道目的地址;以及,监控所述第一 路由设备接口所在路由设备中的路由表;所述接口确定单元,还用于在所述地址监控单元监控到所述隧道目的地址发生变化 时,根据变化后的隧道目的地址重新选路;或在所述地址监控单元监控到所述路由表发生 变化时,根据变化后的路由表重新选路;所述计数器更新单元,还用于根据所述接口确定单元的选路结果更新所述第一路由设 备接口对应的计数器值。
10.如权利要求9所述的装置,其特征在于,所述计数器更新单元,具体用于根据选路结果中确定的用于承载所述隧道的第三路由设备接口对应的计数器值,更新 所述第一路由设备接口对应的计数器值。
全文摘要
本发明公开了一种控制路由设备接口状态的方法,主要技术方案包括通过对当前隧道对应的第一路由设备接口配置的隧道目的地址进行选路,来确定用于承载所述隧道的第二路由设备接口;根据所述第二路由设备接口对应的计数器值,更新所述第一路由设备接口对应的计数器值;在确定所述第一路由设备接口对应的计数器值达到设定阈值时,配置所述第一路由设备接口为非工作状态。根据该技术方案,在源头上避免了报文的多重嵌套封装,提高路由设备的运作效率。并且,能够有效的预防无限递归嵌套隧道的产生,能够实现在IPv4 over IPv4、IPv6 over IPv4、IPv4 over IPv6等包括IPv4协议的隧道中进行隧道嵌套。
文档编号H04L12/56GK101873246SQ201010205038
公开日2010年10月27日 申请日期2010年6月11日 优先权日2010年6月11日
发明者王晓峰 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1