一种避免中间系统邻居关系震荡的方法及装置制造方法及图纸

技术编号:9644165 阅读:122 留言:0更新日期:2014-02-07 04:42
本发明专利技术实施例提供一种避免中间系统邻居关系震荡的方法及装置,该方法包括:本地IS在邻居IS的当前Hello周期内判断出发送队列中的LSP报文数量符合设定条件时,向邻居IS发送带有LSP突发标识的Hello报文;并确定是否收到邻居IS发送的Hello报文,在收到的Hello报文中带有LSP延迟发送标识或未收到时,延长邻居维持时间和发送队列中LSP报文的当前发送周期,将延长后的发送周期作为当前发送周期,将邻居IS的下个Hello周期作为当前Hello周期,返回确定是否收到Hello报文的步骤,直到将所有LSP报文发送完。本发明专利技术避免了在IS负载较重,且瞬时发送大量LSP报文时出现的邻居关系震荡问题。

【技术实现步骤摘要】
一种避免中间系统邻居关系震荡的方法及装置
本专利技术涉及计算机网络通讯领域,尤其涉及一种避免中间系统邻居关系震荡的方法及装置。
技术介绍
中间系统到中间系统路由协议(IntermediateSystemtoIntermediateSystem,IS-IS),是一种链路状态协议,通常采用最短路径优先算法(ShortestPathFirst,SPF)进行路由计算,IS-IS协议是一种重要的内部网关协议(InteriorGatewayProtocol,IGP),可用于自治系统内部。下面简要介绍IS-IS协议中的一些术语:中间系统(IntermediateSystem,IS):IS是IS-IS协议中生成路由和传播路由信息的基本单元,在国际标准化规范(InternationalOrganizationforStandardization,ISO)中,一个路由器就是一个IS,因此,IS-IS协议是提供路由器和路由器之间通信的协议;链路状态数据库(LinkStateDataBase,LSDB):所有的网络内链路状态组成了链路状态数据库,在每一个IS中都至少有一个LSDB,IS使用SPF算法,利用LSDB来生成自己的路由。IS-IS报文主要包括:(1)、Hello报文:用于建立和维持邻居关系,根据IS所在链路类型的不同,Hello报文还进一步区分为LANHello与P2PHello这两种报文,LANHello报文主要是在广播链路上收发,P2PHello报文主要是在点对点链路上收发;(2)、链路状态报文(LinkStatePacket,LSP):是用来交换链路状态信息的,本地IS和邻居IS的LSP报文均存储于各自的链路状态数据库(LinkStateDataBase,LSDB),IS-IS协议通过同步机制确保网络中所有IS的LSDB中LSP报文一致,实现每台IS基于相同的拓扑生成无环路的路由;(3)、完全时序报文(CompleteSequenceNumberPacket,CSNP):CSNP包括IS的LSDB中所有LSP报文的摘要信息,这样,IS根据邻居IS发来的CSNP报文,判断本地LSDB中的LSP报文是否过期或有丢失,在过期或丢失的情况下,则向邻居IS发送部分时序报文(PartialSequenceNumberPacket,PSNP),以保证所有IS的LSPD中的LSP报文都一样;具体地,CSNP报文在不同链路上的发送情况是不一样的,例如在IS的广播链路上,由指定的IS定期发送;在IS的点到点链路上,CSNP报文只在邻居关系成功建立时发送一次,其他时间不发送。(4)、PSNP:在广播网络中,PSNP报文的作用是向DIS请求缺少的LSP报文;而在P2P网络中,PSNP报文则用来确认从邻居IS接收到的LSP报文。如图1所示,是现有IS-IS协议实际运行网络的一个拓扑架构示意图,在图1中,有两个自治系统AS10和AS11,H1表示AS10中的路由器;R1至Rn表示AS11中的路由器,自治系统AS11中R1至Rn的数量可能超过几百台,甚至上千台。在这里,AS10和AS11之间运行BGP协议学习路由,AS10和AS11内部运行IS-IS协议学习路由,且边界设备进行两个自治系统路由的交互,例如H1和R1进行路由交互。以R1为例,简要说明一下运行IS-IS协议的基本流程:首先,R1在自身运行IS-IS协议的接口上收发Hello报文,与其他IS建立邻居关系,例如,与图1中的R2至Rn建立邻居关系;然后,在邻居关系成功建立之后,根据通过该接口从其他邻居IS学到的IP路由前缀创建LSP报文,并泛洪给所有的邻居IS,同时还将通过该接口接收到的邻居IS发来的LSP报文泛洪给其他接口上的邻居IS,例如LSP报文可包括本地IP路由信息和邻居IS相关信息等;R1自身的LSP报文和从邻居IS收到的LSP报文组成LSDB,并使用CSNP和PSNP报文进行数据库同步,确保网络中所有IS的LSDB中的LSP报文都一样;最后,根据LSDB中的LSP报文启用SPF路由计算,生成用于指导报文转发的路由表。在图1中,如果H1发送给R1大量的BGP协议路由信息,那么,R1将接收到的BGP路由信息重分布给IS-IS协议,即R1这一侧将产生大量的LSP报文,同时,由于R1与R2至Rn建立邻居关系,在这种情况下也会产生大量的LSP报文,并且如果R1是在广播链路上与其他IS建立的邻居关系,那么R1还会产生一个虚拟LSP报文。前述这几种情形均导致R1这一侧产生大量的LSP报文。在上述几种情形下,R1通常是按照一定的时间间隔发送LSP报文,例如时间间隔为33毫秒,即一条链路上默认1秒之内最多只能连续发送30个LSP报文,这样一来,在R1的邻居IS例如R2的设备性能较低或者负载较高的情况下,R1侧突然增加的LSP报文将导致R2的接收队列迅速爆满,进而导致R1发来的Hello报文被丢弃或者来不及处理,导致R2还未处理完R1的LSP报文,与R1的邻居维持时间已到,这时,与R1断开连接,在这种情况下,R1需要重新与R2建立邻居关系,重新传输LSP报文,之后再次因邻居维持时间超时断开,造成R1与R2的邻居关系不停震荡。对于上述问题,目前通常采用下述方式解决:(1)、扩大IS的IS-IS报文的接收和发送队列。这种方式可以缓解报文队列满导致邻居关系震荡问题,但不能根本解决,因为不可能无限地扩大IS-IS报文的接收和发送队列,周性期更新的LSP报文会随着网络的扩大和路由的增多成线性增长,当增长到一定程度时IS-IS报文接收和发送队列还是会满。(2)、优先处理Hello报文,努力保持IS-IS邻居关系。这种方式需要区别出Hello报文与其他IS-IS报文,而Hello报文与LSP报文和CSNP报文是很难简单区分,需要深度检测才能区分,因此,这种方式对设备硬件的要求很高。同时,IS-IS报文接收队列满时,优先处理Hello报文会造成LSP报文丢弃,造成LSP重传,进而导致LSDB同步困难,这时,会有更多的IS-IS报文需要处理,增加了设备的处理负担。(3)、将Hello报文的发送间隔拉长,即增加邻居维持时间。这种方式可以缓解邻居关系震荡,但在IS-IS报文队列满的情况下仍无法避免邻居关系震荡的问题。(4)、使用PSNP报文更新LSP报文。这种方式只能解决LSP报文周期更新且LSP报文内容不变情况下邻居关系震荡的问题,如果LSP报文内容有变化,采用这种方式容易出现路由黑洞。从上述几种解决方式可以看出,当一个IS与多个IS之间建立IS-IS邻居关系时,且IS这一侧突发性地产生大量LSP更新报文时,不管采用上述哪一种解决方式,均无法从根本上解决邻居关系震荡的问题。
技术实现思路
本专利技术实施例提供了一种避免中间系统邻居关系震荡的方法及装置,用以解决IS的LSP报文突发时导致的IS-IS邻居关系震荡的问题。基于上述问题,本专利技术实施例提供的一种避免中间系统邻居关系震荡的方法,包括:本地IS在邻居IS的当前Hello周期内,判断出自身发送队列中的LSP报文数量不小于第一设定数量时,向所述邻居IS发送携带有LSP突发标识的Hello报文,并确定自身是否收到所述邻居IS发送的Hel本文档来自技高网
...
一种避免中间系统邻居关系震荡的方法及装置

【技术保护点】
一种避免中间系统邻居关系震荡的方法,其特征在于,包括:本地中间系统IS在邻居IS的当前Hello周期内,判断出自身发送队列中的链路信息状态LSP报文数量不小于第一设定数量时,向所述邻居IS发送携带有LSP突发标识的Hello报文,并确定自身是否收到所述邻居IS发送的Hello报文,所述当前Hello周期为自身根据所述邻居IS最近发来的Hello报文中携带的邻居维持时间确定出的;在确定为是,且确定出收到的Hello报文中携带有LSP延迟发送标识,或者在确定为否时,延长所述邻居维持时间和发送队列中LSP报文的当前发送周期,并将延长后的发送周期作为当前发送周期,将所述邻居IS的下一个Hello周期作为当前Hello周期,返回确定是否收到所述邻居IS发送的Hello报文的步骤,直到将发送队列中的所有LSP报文发送给所述邻居IS。

【技术特征摘要】
1.一种避免中间系统邻居关系震荡的方法,其特征在于,包括:本地中间系统IS在邻居IS的当前Hello周期内,判断出自身发送队列中的链路信息状态LSP报文数量不小于第一设定数量时,向所述邻居IS发送携带有LSP突发标识的Hello报文,并确定自身是否收到所述邻居IS发送的Hello报文,所述当前Hello周期为自身根据所述邻居IS最近发来的Hello报文中携带的邻居维持时间确定出的;在确定为是,且确定出收到的Hello报文中携带有LSP延迟发送标识,或者在确定为否时,延长所述邻居维持时间和发送队列中LSP报文的当前发送周期,并将延长后的发送周期作为当前发送周期,将所述邻居IS的下一个Hello周期作为当前Hello周期,返回确定是否收到所述邻居IS发送的Hello报文的步骤,直到将发送队列中的所有LSP报文发送给所述邻居IS;还包括:在首个当前Hello周期内,如果所述本地IS确定出自身收到所述邻居IS发送的Hello报文,且确定出未携带有LSP延迟发送标识,确定自身的CPU使用率是否小于第二设定百分比;若是,缩短发送队列中LSP报文的当前发送周期,并按照缩短后的发送周期向所述邻居IS发送LSP报文。2.如权利要求1所述的方法,其特征在于,所述本地IS收到的携带有LSP延迟发送标识的Hello报文,为所述邻居IS在收到携带有LSP突发标识的Hello报文后,判断出自身接收队列中已接收LSP报文数与可接收LSP报文总数的比值不小于第一设定阈值、且自身的CPU使用率和内存使用率均不小于第一设定百分比时向所述本地IS发出的。3.如权利要求1或2所述的方法,其特征在于,在所述本地IS向所述邻居IS发送携带有LSP突发标识的Hello报文之后,还包括:如果所述本地IS判断出自身发送队列中的LSP报文数量不大于第二设定数量,向所述邻居IS发送未携带有LSP突发标识的Hello报文,并按照发送队列中LSP报文的当前发送周期向所述邻居IS发送LSP报文。4.如权利要求1或2所述的方法,其特征在于,还包括:在所述当前Hello周期内,如果所述本地IS确定出自身收到的Hello报文中未携带有LSP延迟发送标识,且之前收到的Hello报文中携带有LSP延迟发送标识,则缩短发送队列中LSP报文的当前发送周期,将缩短后的发送周期作为当前发送周期,并将所述邻居IS的下一个Hello周期作为当前Hello周期,返回确定是否收到所述邻居IS发送的Hello报文的步骤。5.如权利要求4所述的方法,其特征在于,所述本地IS接收到的未携带有LSP延迟发送标识的Hello报文,为所述邻居IS在收到携带有LSP突发标识的Hello报文后,判断出自身接收队列中已接收LSP报文数与可接收LSP报文总数的比值不大于第二设定阈值、且自身的CPU使用率和内存使用率均不大于第三设定百分比时向所述本地IS发出的。6.如权利要求1或2所述的方法,其特征在于,还包括:所述本地IS在判断出自身发送队列中的LSP报文数量不小于所述第一设定数量时,不启动路由计算任务,直到将发送队列中的所有LSP报文发送给所述邻居IS,且确定出自身的链路状态数据库同步完成后,启动路由计算任务。7.一种避免中间系统邻居关系震荡的装置,其特征在于,包括:判断模块,用于在邻居中间系统IS的当前Hello周期内,判断所述装置的发送队列中的链路信息状态LSP报文数量是否不小于第一设定数量,所述当前Hello周期为所述...

【专利技术属性】
技术研发人员:兰加兴
申请(专利权)人:福建星网锐捷网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1