一种路由器及路由器发布路由信息的方法

文档序号:7645061阅读:128来源:国知局
专利名称:一种路由器及路由器发布路由信息的方法
技术领域
本发明涉及通信领域,尤其涉及一种路由器及路由器发布路由信息的方法。
背景技术
路由协议作为TCP/IP协议族中重要成员之一,其选路过程实现的好坏会影响整个Internet网络的效率。按应用范围的不同,路由协议可分为两类在一个自治系统(AS,Autonomous System)内的路由协议称为内部网关协议(IGP,interior gateway protocol)。AS之间的路由协议称为外部网关协议(EGP,exteriorgateway protocol)。一个自治系统,是指有权自主地决定在本系统中应采用何种路由选择协议的网络。现在正在使用的内部网关路由协议包括距离矢量路由协议和链路状态路由协议两种,其中,距离矢量路由协议包括路由消息协议(RIP,Routing Information Protocol)、内部网关路由协议(IGRP,interior gatewayRouting Protocol)、扩展内部网关路由协议(EIGRP,enhanced interior gatewayRouting Protocol)。链路状态路由协议包括最短路径优先协议(OSPF,OpenShortest Path First)和中间系统到中间系统协议(IS-IS,Intermediate System toIntermediate System)。
在一个AS内部,链路状态路由协议通过链路状态宣告(LSA,Link StateAdertisements或LSP,Link State PDU)来描述路由,AS中所有的路由器都维护一个相同的通过链路状态宣告来描述这个AS结构的数据库,路由器通过该数据库中的链路状态宣告来了解AS内部网络拓扑现状,进行路由计算。链路状态路由协议允许将一些网络组合在一起构成区域Area,一个AS系统包括多个Area,一个骨干Area和多个非骨干Area,有多个接口连接到不同的Area的路由器称之为边缘路由器,边缘路由器与没有全部包含在任何一个非骨干Area中的路由器共同组成骨干Area,负责在非骨干Area之间传播路由信息。每个Area内的结构和拓扑对外界是不可见的,且Area内的路径信息并不传播到Area之外。
在一般情况下,属于同一个Area的路由器通过链路状态路由协议发布的链路状态宣告即可准确进行路由计算和查找,但在某些特殊的组网应用或者网络故障时,一个网络可能分离成几个具有相同网络地址的子网络,这时不同的子网路会发布携带相同网络地址的链路状态宣告,通过发布的链路状态宣告进行路由计算时将会有多个相同的目的地址,会导致路由错误,最终导致报文数据不能准确发送到目的子网段。

发明内容
本发明实施例所要解决的技术问题在于,提供一种路由器发布路由信息的方法,能在网络分离情况下,正确发布路由信息,保证路由器准确进行路由计算和查找,最终保证报文数据准确发送到各个分离子网段。
为了解决上述技术问题,本发明实施例提供了一种路由器发布路由信息的方法,包括接收链路状态宣告;根据所接收的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识;向邻居接口发布链路状态宣告,并为带有分离标识的接口发布主机路由。
相应的,本发明实施例提供了一种路由器,包括宣告接收单元,用于接收链路状态宣告;其特征在于,还包括检测执行单元,与所述宣告接收单元相连,用于根据所述接收的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识。
路由发布单元,与所述检测执行单元相连,用于向邻居接口发布链路状态宣告及为所述检测执行单元输出的带有分离标识的接口发布主机路由。
本发明实施例根据接收到的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识,并为更新后带有分离标识的接口发布主机路由,能在网络分离情况下,正确发布路由信息,保证路由器准确进行路由计算和查找,最终保证报文数据准确发送到各个分离子网段。


图1是本发明实施例的路由器发布路由信息的方法流程图;图2是图1中步骤S111中根据一个网络地址及携带所述网络地址的一个链路状态宣告进行路由器归属的区域中接口分离标识的更新的步骤流程图;图3是本发明实施例的路由器的组成示意图;图4是图3中检测执行单元的组成示意图;图5是图4中更新子单元的组成示意图。
具体实施例方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例作进一步地详细描述。
图1,是本发明实施例的路由器发布路由信息的方法流程图。如图所示,本发明实施例的方法具体包括以下步骤步骤S100,接收链路状态宣告。链路状态路由协议通过LSA/LSP(OSPF使用LSA,IS-IS使用LSP)来描述区域的网络拓扑,路由器借助这些LSA/LSP来了解网络拓扑和进行路由计算。该步骤是路由器更新链路状态数据库信息,并发布新的路由信息的触发步骤。
步骤S101,判断链路状态数据库中是否存储有所述链路状态宣告的副本,如果判断为是,执行步骤S102;如果判断为否,执行步骤S103。由链路状态路由协议可知,AS中所有的路由器都维护一个相同的通过链路状态宣告来描述这个AS结构的数据库,称之为链路状态数据库。该数据库中存储了一个AS系统中所有路由器发布的链路状态宣告,并根据网络状态的改变进行数据更新,所述副本是指和当前接收到的链路状态宣告类型相同,产生的路由器IP地址也相同,并已经存储在所述数据库中的链路状态宣告。
步骤S102,判断接收到的链路状态宣告是否过期,如果判断为是,执行步骤S104;如果判断为否,执行步骤S105。在链路状态宣告中有个AGE字段,用于记录链路状态宣告存在的时间长短,当该字段记录的时间大于等于一个小时,认为链路状态宣告过期。
步骤S103,获取所述链路状态宣告携带的网络地址,然后执行步骤S111。
步骤S104,解除所述链路状态宣告的副本与第一分离链表的关联关系,所述第一分离链表包括与所述副本相关联的所有分离链表,然后执行步骤S107。
步骤S105,解除所述链路状态宣告的副本与第二分离链表的关联关系,所述第二分离链表包括与所述链路状态宣告的副本相关联的且相关联的网络地址未在所述链路状态宣告中携带的所有分离链表。当步骤S102判断结果为否时,执行该步骤。
在本发明实施例中,采用给接口添加分离标识的方式来指示接口处于分离网络中,并用分离链表来记录处于同一分离网络的接口。同时,为实现检测路由器归属的区域中分离网络的状态是否发生变化,需将携带处于同一网络中的接口的网络地址的链路状态宣告及所述网络地址通过关联指针或者存储在分离链表中的方式与分离链表进行关联,解除关联则是解除关联指针,或者从分离链表中消除存储的链路状态宣告及网络地址。这样每个分离链表将唯一对应一个分离网络。具体实现中,Router LSA中的2类LINK(Transit link)携带相连路由器的路由器IP地址,将之与接口的掩码进行计算,即可得到网络地址;3类LINK(Stub link)本身就携带接口所在网络的网络地址。将LSA/LSP能够计算得出网络地址的功能称之为其携带有网络地址。
步骤S106,获取所述链路状态宣告携带且所述副本未携带的网络地址。获取网络地址的过程就是计算得到LSA/LSP携带的网络地址的过程。
步骤S107,解除所述分离链表与相关联的网络地址的关联关系及清除所述分离链表中记录的所有接口的分离标识。
步骤S108,判断是否存在与所述分离链表相关联的链路状态宣告,如果判断为是,执行步骤S109;如果判断为否,执行步骤S110。
步骤S109,获取与所述分离链表解除了关联关系的网络地址。执行步骤S111。
步骤S110,删除所述分离链表。一旦一条分离链表不再与任何LSA/LSP相关联的时候,就删除掉这条分离链表。
步骤S111,根据获取的每一网络地址及携带所述网络地址的每一链路状态宣告,进行路由器归属的区域中接口分离标识的更新。该步骤是一个循环步骤,对获取的每个网络地址都将跟携带所述网络地址的每个链路状态宣告组合,每次根据获取的一个网络地址及携带所述网络地址的一个链路状态宣告,进行路由器归属的区域中接口分离标识的更新。所述区域中接口分离标识的更新是指清除所述接口的分离标识或者为所述接口添加分离标识。
步骤S112,向邻居接口发布链路状态宣告,并为带有分离标识的接口发布主机路由。
具体实现中,在步骤S100之后还可以增加以下步骤判断所述接收到的链路状态宣告是否为本路由器产生的,如果判断为否,执行步骤S101,或判断是否启动对区域中网络分离状态进行更新的功能,如果判断为是,执行步骤S101。其中,是否启动所述更新功能可以通过开关控制,也可以预先设定启动更新功能的链路状态类型,当接收到的链路状态宣告与所述类型匹配时,启动更新功能。
在进行路由计算时,当检测到链路状态宣告无效时,解除所述链路状态宣告与所有分离链表的关联关系,执行步骤S107。
步骤S111中,根据获取的每一网络地址及携带所述网络地址的每一链路状态宣告,进行路由器归属的区域中接口分离标识的更新的步骤具体参考图2,该步骤具体包括步骤S300,将所述网络地址标记为当前网络地址及将所述链路状态宣告标记为当前链路状态宣告。每获取一个网络地址及携带该网络地址的一个链路状态宣告时,将所述网络地址标记为当前网络地址及将所述链路状态宣告标记为当前链路状态宣告。
步骤S301,判断是否存在与当前网络地址相关联的分离链表,如果判断为是,执行步骤S302;如果判断为否,执行步骤S305。
步骤S302,解除所述当前链路状态宣告与相关联的分离链表的关联关系后,将所述当前链路状态宣告与所述当前网络地址相关联的分离链表相关联。
步骤S303,判断产生所述链路状态宣告的路由器是否存在邻居接口,如果判断为是,执行步骤S304;如果判断为否,执行步骤S308。
步骤S304,为所述接口添加分离标识,将所述接口记录在所述当前网络地址相关联的分离链表中,执行步骤S308。
步骤S305,判断产生所述链路状态宣告的路由器是否存在网络地址与当前网络地址相同的非邻居接口,如果判断为是,执行步骤S306;如果判断为否,执行步骤S308。
步骤S306,为所述非邻居接口及所述路由器的所有邻居接口添加分离标识,并创建一个新的分离链表记录所述非邻居接口和邻居接口。
具体实现中,通过查看路由器存储的链路状态数据库信息了解路由器是否存在邻居接口和/或非邻居接口及所述接口的网络地址的具体数值,将查找到的所述路由器的邻居接口记录在一个临时链表中,比如记录在src临时链表中;将查找到的网络地址与当前网络地址相同的所述路由器的非邻居接口记录在另一个临时链表中,比如sam临时链表中;当sam临时链表为空时,结束本次更新,当sam临时链表不为空时,依次从sam和src链表中取出接口,为接口添加分离标识,并创建一个新的分离链表记录取出的接口。每次更新完成后,临时链表将自动删除。
步骤S307,解除当前网络地址的所述标记及解除当前链路状态宣告的所述标记和解除当前链路状态宣告与相关联的分离链表的关联关系,将所述当前网络地址和所述当前链路状态宣告与所述新的分离链表相关联。
步骤S308,判断是否存在与所述当前链路状态宣告解除了关联关系的分离链表相关联的链路状态宣告,如果判断为是,执行步骤S310;如果判断为否,执行步骤S309。
步骤S309,删除所述分离链表。
步骤S310,结束本次更新。
相应的,本发明实施例提供了一种使用上述方法发布路由信息的路由器,图3,是本发明实施例的路由器的组成示意图。如图所示,本发明实施例的路由器包括宣告接收单元5、检测执行单元6以及路由发布单元7,其中宣告接收单元5,用于接收链路状态宣告。
检测执行单元6,与所述宣告接收单元5相连,用于根据所述宣告接收单元接收的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识。在一个区域中,网络状态会动态发生变化,比如某个接口从分离网络中脱离,某个路由器从网络中移出以及区域中的某个接口加入某个分离网络中。
路由发布单元7,与所述检测执行单元6相连,用于向邻居接口发布链路状态宣告及为所述检测执行单元更新后带有分离标识的接口发布主机路由。
具体实现中,本发明实施例的路由器还包括一路由来源判断单元,用于判断所述接收到的链路状态宣告是否为本路由器产生的,并将否定的判断结果发送给所述检测执行单元。以及一启动判断单元,用于判断是否启动检测区域中网络分离状态的变化的功能,并将肯定的判断结果发送给所述检测执行单元,所述检测执行单元6接收到所述路由来源判断单元输出的否定判断结果时且收到所述启动判断单元输出的肯定判断结果时,根据所述宣告接收单元接收的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识。其中,所述判断是否启动检测区域中网络分离状态的变化的功能包括确定控制该功能的开关是否处于开启状态。或者判断所述链路状态宣告是否为预设的用于启动对区域中网络分离状态进行更新的功能的链路状态宣告类型。
图4,是图3中检测执行单元的组成示意图。如图所示,本发明实施例中检测执行单元包括第一判断单元60、第一解除单元61、第二解除单元62、第三解除单元63、第二判断单元64、地址获取单元65以、更新子单元66以及第一删除单元67,其中第一判断单元60,与所述宣告接收单元5相连,用于判断接收到的链路状态宣告是否过期,输出肯定或否定的判断结果;在链路状态宣告中有个AGE字段,用于记录链路状态宣告存在的时间长短,当该字段记录的时间大于等于一个小时,认为链路状态宣告过期。
第一解除单元61,与所述第一判断单元60相连,用于接收所述第一判断单元60输出的肯定判断结果,解除所述链路状态宣告的副本与第一分离链表的关联关系,所述第一分离链表包括与所述副本相关联的所有分离链表。在本发明实施例中,采用给接口添加分离标识的方式来反映接口处于分离网络中,并将处于同一分离网络的接口记录在一个分离链表中,这样每一条分离链表唯一对应一个网络地址。副本与分离链表的关联关系可以通过关联指针建立,或者将所述副本存储在分离链表中,解除关联则是解除关联指针,或者从分离链表中消除存储的副本。
第二解除单元62,与所述第一判断单元60相连,用于接收所述第一判断单元60输出的否定判断结果,解除所述副本与第二分离链表的关联关系,所述第二分离链表包括与所述链路状态宣告的副本相关联的且相关联的网络地址未在所述宣告中携带的所有分离链表。
第三解除单元63,分别与所述第一解除单元61及所述第二解除单元62相连,用于解除所述第一分离链表或所述第二分离链表与相关联的网络地址的关联关系及清除所述分离链表中记录的所有接口的分离标识;第二判断单元64,与所述第三解除单元63相连,用于判断是否存在与所述第一分离链表或所述第二分离链表相关联的链路状态宣告,输出肯定或否定的判断结果;地址获取单元65,分别与所述第一判断单元60及所述第二判断单元64相连,用于接收所述第一判断单元60输出的否定判断结果,获取所述链路状态宣告携带且所述副本未携带的网络地址;及接收所述第二判断单元64输出的肯定判断结果,获取与所述第一分离链表或所述第二分离链表解除了关联关系的网络地址。根据链路状态路由协议可知,LSA/LSP具有描述网络地址的功能,如OSPF协议中,Router LSA中的2类LINK(Transit link)携带相连路由器的路由器IP地址,将之与接口的掩码进行计算,即可得到网络地址;3类LINK(Stublink)本身就携带接口所在网络的网络地址。将LSA/LSP能够计算得出网络地址的功能称之为其携带有网络地址。获取网络地址的过程就是计算得到LSA/LSP携带的网络地址的过程。
更新子单元66,与所述地址获取单元65相连,根据获取的每一网络地址及携带所述网络地址的每一链路状态宣告,进行路由器归属的区域中接口分离标识的更新。该单元完成的工作是一个循环步骤,对获取的每个网络地址都将跟携带所述网络地址的每个链路状态宣告组合,每次根据获取的一个网络地址及携带所述网络地址的一个链路状态宣告,进行路由器归属的区域中接口分离标识的更新。所谓区域中接口分离标识的更新是指清除所述接口的分离标识或者为所述接口添加分离标识。
第一删除单元67,与第二判断单元64相连,用于接收所述第二判断单元64输出的否定判断结果,删除所述第一分离链表或所述第二分离链表。
图5,是图4中更新子单元的组成示意图。如图所示,本发明实施例中更新子单元包括标记单元660、第三判断单元661、第一关联单元662、第四判断单元663、第一添加单元664、第五判断单元665、第二添加单元666、第二关联单元667、第六判断单元668以及第二删除单元669,其中标记单元660,与所述地址获取单元65相连,用于依次将获取的每一网络地址标记为当前网络地址及依次将携带所述网络地址的每一链路状态宣告标记为当前链路状态宣告。因为更新子单元66完成的是一个循环步骤,针对每次的网络地址及链路状态宣告有必要进行标记。
第三判断单元661,与所述标记单元660相连,用于判断是否存在与当前网地址相关联的分离链表,输出肯定或否定的判断结果;第一关联单元662,与所述第三判断单元661相连,用于接收所述第三判断单元661输出的肯定判断结果,解除所述当前链路状态宣告与相关联的分离链表的关联关系,将所述当前链路状态宣告与所述与当前网络地址相关联的分离链表相关联;第四判断单元663,与所述第一关联单元662相连,用于判断产生所述当前链路状态宣告的路由器是否存在邻居接口,输出肯定或否定的判断结果;第一添加单元664,与所述第四判断单元663相连,用于接收所述第四判断单元663输出的肯定判断结果,为所述接口添加分离标识,将所述接口记录在与当前网络地址相关联的所述分离链表中;第五判断单元665,与所述第三判断单元661相连,用于接收所述第三判断单元661输出的否定判断结果,判断产生所述当前链路状态宣告的路由器是否存在网络地址与所述当前网络地址相同的非邻居接口,输出肯定或否定的判断结果;第二添加单元666,与所述第五判断单元665相连,用于接收所述第五判断单元665输出的肯定判断结果,为所述非邻居接口及所述路由器的所有邻居接口添加分离标识,并创建一个新的分离链表记录所述非邻居接口和邻居接口;具体实现中,通过查看路由器存储的链路状态数据库信息了解路由器是否存在邻居接口和/或非邻居接口及所述接口的网络地址的具体数值,将查找到的所述路由器的邻居接口记录在一个临时链表中,比如记录在src临时链表中;将查找到的网络地址与当前网络地址相同的所述路由器的非邻居接口记录在另一个临时链表中,比如sam临时链表中;当sam临时链表为空时,结束本次更新,当sam临时链表不为空时,依次从sam和src链表中取出接口,为接口添加分离标识,并创建一个新的分离链表记录取出的接口。每次更新完成后,临时链表将自动删除。
第二关联单元667,与所述第二添加单元666相连,用于将所述解除了标记的当前网络地址及解除了标记且解除了与相关联的分离链表的关联关系的所述当前链路状态宣告,将所述当前网络地址和所述当前链路状态宣告与所述新的分离链表相关联。
第六判断单元668,分别与所述第一关联单元662和所述第二关联单元667相连,用于判断是否存在与所述当前链路状态宣告解除了关联关系的分离链表相关联的链路状态宣告,输出肯定或否定的判断结果;第二删除单元669,与所述第六判断单元668相连,用于接收所述第六判断单元668输出的否定判断结果,删除所述分离链表。
本发明实施例可以适应各种网络分离情况,包括异型分离、隔离子网、相连子网以及各种情形混合的分离模式。
本发明实施例有一种备选方案,为确保网络分离情况下路由计算的准确,在生成LSA/LSP时,为区域内每个接口发布主机路由。
本发明实施例根据接收到的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识,并为更新后带有分离标识的接口发布主机路由,能在网络分离情况下,正确发布路由信息,保证路由器准确进行路由计算和查找,最终保证报文数据准确发送到各个分离子网段。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
权利要求
1.一种路由器发布路由信息的方法,其特征在于,包括接收链路状态宣告;根据所接收的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识;向邻居接口发布链路状态宣告,并为带有分离标识的接口发布主机路由。
2.如权利要求1所述的方法,其特征在于,所述根据所接收的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识的步骤具体包括B0、判断所述接收到的链路状态宣告是否过期,如果判断为是,解除所述链路状态宣告的副本与第一分离链表的关联关系,所述第一分离链表包括与所述副本相关联的所有分离链表,执行步骤B2;如果判断为否,解除所述副本与第二分离链表的关联关系,所述第二分离链表包括与所述链路状态宣告的副本相关联的且相关联的网络地址未在所述宣告中携带的所有分离链表;B1、获取所述链路状态宣告携带且所述副本未携带的网络地址;B2、解除所述分离链表与相关联的网络地址的关联关系及清除所述分离链表中记录的所有接口的分离标识;B3、判断是否存在与所述分离链表相关联的链路状态宣告,如果判断为是,获取与所述分离链表解除了关联关系的网络地址,执行步骤B4;如果判断为否,删除所述分离链表;B4、根据获取的每一网络地址及携带所述网络地址的每一链路状态宣告,进行路由器归属的区域中接口分离标识的更新。
3.如权利要求2所述的方法,其特征在于,所述接收链路状态宣告之后还包括A0、判断链路状态数据库中是否存储有所述接收到的链路状态宣告的副本,如果判断为是,执行步骤B0;如果判断为否,获取所述链路状态宣告携带的网络地址,执行步骤B4。
4.如权利要求2或3所述的方法,其特征在于,步骤B4中根据一个网络地址及携带所述网络地址的一个链路状态宣告进行路由器归属的区域中接口分离标识的更新的步骤包括S0、将所述网络地址标记为当前网络地址及将所述链路状态宣告标记为当前链路状态宣告,判断是否存在与当前网络地址相关联的分离链表,如果判断为是,解除所述当前链路状态宣告与相关联分离链表的关联关系,将所述当前链路状态宣告与所述当前网络地址相关联的分离链表相关联,执行步骤S1;如果判断为否,执行步骤S2;S1、判断产生所述当前链路状态宣告的路由器是否存在邻居接口,如果判断为是,为所述接口添加分离标识,将所述接口记录在当前网络地址相关联的所述分离链表中,结束本次更新;如果判断为否,结束本次更新;S2,判断产生所述当前链路状态宣告的路由器是否存在网络地址与所述当前网络地址相同的非邻居接口,如果判断为是,执行步骤S3;如果判断为否,结束本次更新;S3、为所述非邻居接口及所述路由器的所有邻居接口添加分离标识,并创建一个新的分离链表记录所述非邻居接口和邻居接口;S4、解除当前网络地址的所述标记及解除当前链路状态宣告的所述标记和解除当前链路状态宣告与相关联的分离链表的关联关系,将所述当前网络地址和所述当前链路状态宣告与所述新的分离链表相关联,结束本次更新。
5.如权利要求4所述的方法,其特征在于,所述的在结束本次更新前还包括判断是否存在与所述当前链路状态宣告解除了关联关系的分离链表相关联的链路状态宣告,如果判断为否,删除所述分离链表。
6.如权利要求1所述的方法,其特征在于,所述接收链路状态宣告之后还包括判断是否启动检测区域中网络分离状态的变化的功能,如果判断为是,根据所接收的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识。
7.如权利要求6所述的方法,其特征在于,所述判断是否启动检测区域中网络分离状态的变化的功能包括确定控制该功能的开关是否处于开启状态。
8.如权利要求6所述的方法,其特征在于,所述判断是否启动检测区域中网络分离状态的变化的功能包括判断所述链路状态宣告是否为预设的用于启动对区域中网络分离状态进行更新的功能的链路状态宣告类型。
9.一种路由器,其特征在于,包括宣告接收单元,用于接收链路状态宣告;检测执行单元,与所述宣告接收单元相连,用于根据所述接收的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识;路由发布单元,与所述检测执行单元相连,用于向邻居接口发布链路状态宣告及为所述检测执行单元输出的带有分离标识的接口发布主机路由。
10.如权利要求9所述的路由器,其特征在于,所述检测执行单元包括第一判断单元,与所述宣告接收单元相连,用于判断接收到的链路状态宣告是否过期,输出肯定或否定的判断结果;第一解除单元,与所述第一判断单元相连,用于接收所述第一判断单元输出的肯定判断结果,解除所述链路状态宣告的副本与第一分离链表的关联关系,所述第一分离链表包括与所述副本相关联的所有分离链表;第二解除单元,与所述第一判断单元相连,用于接收所述第一判断单元输出的否定判断结果,解除所述副本与第二分离链表的关联关系,所述第二分离链表包括与所述链路状态宣告的副本相关联的且相关联的网络地址未在所述链路状态宣告中携带的所有分离链表;第三解除单元,分别与所述第一解除单元及所述第二解除单元相连,用于解除所述第一分离链表或所述第二分离链表与相关联的网络地址的关联关系及清除所述分离链表中记录的所有接口的分离标识;第二判断单元,与所述第三解除单元相连,用于判断是否存在与所述第一分离链表或所述第二分离链表相关联的链路状态宣告,输出肯定或否定的判断结果;地址获取单元,分别与所述第一判断单元及所述第二判断单元相连,用于接收所述第一判断单元输出的否定判断结果,获取所述宣告携带且所述副本未携带的网络地址;及接收所述第二判断单元输出的肯定判断结果,获取与所述第一分离链表或所述第二分离链表解除了关联关系的网络地址;第一删除单元,与所述第二判断单元相连,用于接收所述第二判断单元输出的否定判断结果,删除所述第一分离链表或所述第二分离链表;更新子单元,与所述地址获取单元相连,根据获取的每一网络地址及携带所述网络地址的每一链路状态宣告,进行路由器归属的区域中接口分离标识的更新。
11.如权利要求10所述的路由器,其特征在于,所述更新子单元包括标记单元,与所述地址获取单元相连,用于依次将获取的每一网络地址标记为当前网络地址及依次将携带所述网络地址的每一链路状态宣告标记为当前链路状态宣告;第三判断单元,与所述标记单元相连,用于判断是否存在与当前网地址相关联的分离链表,输出肯定或否定的判断结果;第一关联单元,与所述第三判断单元相连,用于接收所述第三判断单元输出的肯定判断结果,解除所述当前链路状态宣告与相关联分离链表的关联关系,将所述当前链路状态宣告与所述当前网络地址相关联的分离链表相关联;第四判断单元,与所述第一关联单元相连,用于判断产生所述当前链路状态宣告的路由器是否存在邻居接口,输出肯定或否定的判断结果;第一添加单元,与所述第四判断单元相连,用于接收所述第四判断单元输出的肯定判断结果,为所述接口添加分离标识,将所述接口记录在与当前网络地址相关联的所述分离链表中;第五判断单元,与所述第三判断单元相连,用于接收所述第三判断单元输出的否定判断结果,判断产生所述当前链路状态宣告的路由器是否存在网络地址与所述当前网络地址相同的非邻居接口,输出肯定或否定的判断结果;第二添加单元,与所述第五判断单元相连,用于接收所述第五判断单元输出的肯定判断结果,为所述非邻居接口及所述路由器的所有邻居接口添加分离标识,并创建一个新的分离链表记录所述非邻居接口和邻居接口;第二关联单元,与所述第二添加单元相连,解除当前网络地址的所述标记及解除当前链路状态宣告的所述标记和解除当前链路状态宣告与相关联的分离链表的关联关系,将所述当前网络地址和所述当前链路状态宣告与所述新的分离链表相关联。
12.如权利要求11所述的路由器,其特征在于,所述更新子单元还包括第六判断单元,分别与所述第一关联单元和所述第二关联单元相连,用于判断是否存在与所述当前链路状态宣告解除了关联关系的分离链表相关联的链路状态宣告,输出肯定或否定的判断结果;第二删除单元,与所述第六判断单元相连,用于接收所述第六判断单元输出的否定判断结果,删除所述分离链表。
13.如权利要求9所述的路由器,其特征在于,还包括第八判断单元,与所述宣告接收单元相连,用于判断是否启动检测区域中网络分离状态的变化的功能,并输出肯定的判断结果给所述检测执行单元。
全文摘要
本发明公开了一种路由器发布路由信息的方法,包括接收链路状态宣告;根据所接收的链路状态宣告,检测路由器归属的区域中分离网络的状态是否发生变化,当检测到所述区域中分离网络的状态发生变化时,更新所述区域中接口的分离标识;向邻居接口发布链路状态宣告,并为带有分离标识的接口发布主机路由。本发明还公开了一种路由器。采用本发明,具有能在网络分离情况下,正确发布路由信息,保证路由器准确进行路由计算和查找,最终保证报文数据准确发送到各个分离子网段的优点。
文档编号H04L12/02GK101060478SQ20071002730
公开日2007年10月24日 申请日期2007年3月27日 优先权日2007年3月27日
发明者魏秀刚, 程辉辉 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1