一种路由信息传播方法和路由器的制作方法

文档序号:7665070阅读:89来源:国知局
专利名称:一种路由信息传播方法和路由器的制作方法
技术领域
本发明涉及开放最短路径优先(OSPF)路由协议技术,特别涉及一种 路由信息传播方法和路由器。
背景技术
OSPF是IETF组织开发的一个基于链路状态的内部网关协议。应用 OSPF协议的路由器间通过链路状态报告(LSA)互相传递路由信息,每一 台运行OSPF协议的路由器总是将本地网络的连接状态,如可用接口信息、 可达邻居信息等用LSA描述,并广播到整个自治系统中去。这样,每台路 由器都收到了自治系统中所有路由器生成的LSA,所有LSA的集合组成链 路状态数据库(LSDB)。由于每一条LSA是对一台路由器周边网络拓朴的 描述,则整个LSDB就是对该自治系统网络拓朴的真实反映。其中,LSA共 分为七类。
图1为一种典型的通信网络组网示意图,包括核心层、汇聚层和接入层。 其中,核心层由图中的C0RRT1、 CORRT2、 CORRT3和CORRT4组成, 汇聚层包括图中的汇聚层路由器MRT1、 MRT2、 MRT3和MRT4,接入层
包括图中的路由器RT1、 RT2..... RTN。在各层之间,如汇聚层与接入层
之间的链^各,对汇聚层来说就是下行链路,MRT1、 MRT2、 MRT3和MRT4 为接入层路由器RT1、 RT2..... RTN的上行邻居路由器。
目前,在网络中应用OSPF协议时,通常将整个网络分成不同的区域, 同一区域内的各个路由器间保持LSDB同步。在图1所示的组网环境中, AREA100为一个OSPF区域,该区域内的MRT1、 MRT2、 MRT3、 MRT4、 RT1 、 RT2 、... 、 RTN间保持LSDB同步,这些路由器均根据自身保存的LSDB ,
应用SPF路由算法计算到达各个目的节点的路由。具体地,区域内任意路由 器的LSDB中通常包括该路由器自身和区域内其他路由器产生的一类 LSA(Router LSA), 二类LSA (NetWork LSA),本区域引入的外部路由信 息LSA,还有区域间路由信息LSA和其他区域引入的外部路由信息LSA。 路由器间会互相向邻居路由器发布本LSDB中的LSA。
考虑到进行的业务处理和成本等问题, 一般在图l所示的组网环境中, 将汇聚层路由器配置为高端路由器,而将接入层路由器配置为中低端路由 器,因此接入层路由器的内存和处理能力都低于汇聚层路由器。当区域内的 路由器数目众多时,会造成区域内的LSA数量众多,形成的LSDB规模也 更大,接入层路由器的内存和处理能力在运行OSPF协议时,往往无法达到 要求,从而使得在中低端路由器上无法正常应用OSPF协议进行路由。
基于此,当区域内路由器数目达到一定数量后,目前的处理方式为不 在接入层的中低端路由器上应用OSPF,而是如图2所示进行网络配置,将 AREA100区域缩小,在接入层路由器上运行RIP。这时,需要在汇聚层路 由器(MRT1,MRT2)的OSPF接口引入RIP,将相关路由发布到OSPF区域; 同时在接入层路由器的RIP接口引入OSPF,将OSPF路由发布到RIP。
具体地,接入层路由器的RIP接口,每隔一段时间向相邻路由器发送本 地路由表,运行RIP协议的相邻路由器在收到报文后,对本地路由进行维护, 选择一条最佳路由,再向其各自相邻网络发送更新信息。在上述方案中,需 要在MRT1,MRT2中与RT1至RTN相连的三层接口上使能RIP。由于RT1 至RTN可能存在200个以上路由器,所以,在MRT1,MRT2需要在很多接 口使能RIP。这样多的接口频繁发送RIP路由信息,会造成路由器CPU间 歇性繁忙,造成很多隐患,如,报文丢失等。
可见,在图1和图2所示的组网环境中,在接入层路由器中应用OSPF 和RIP协议均存在问题,无法保证在接入层的中低端路由器中稳定地运行路 由协议,完成才艮文3各由。

发明内容
有鉴于此,本发明提供一种路由信息传播方法和路由器,使接入层的中
低端路由器能够稳定运行OSPF协议。
为实现上述目的,本发明采用如下的技术方案 一种路由信息传播方法,包括
a、 在目标路由器的上行邻居路由器中生成缺省LSA;所述缺省LSA为 代表缺省路由信息的区域间LSA或外部LSA;
b、 在所述上行邻居路由器向所述目标路由器发布LSA时,仅将所述缺 省LSA与该上行邻居路由器产生的Router LSA发布给所述目标路由器;发 布给目标路由器的所述缺省LSA,用于为目标路由器提供缺省路由,使所述 目标路由器根据所述缺省LSA将未找到匹配路由的报文转发给所述上行邻 居路由器。
较佳地,所述在目标路由器的上行邻居路由器中生成缺省LSA的过程 包括
在所述上行邻居路由器中,将所述上行邻居路由器与目标路由器间的 OSPF接口设置为下行链路;
对于设置为下行链路的OSPF接口 ,生成代表缺省路由信息的区域间 LSA或外部LSA,将该生成的LSA作为缺省LSA。
较佳地,所述将所述上行邻居路由器与目标路由器间的OSPF接口设置 为下刊-4连3各包括
预先在所述上行邻居路由器中的OSPF接口管理部分,为该上行邻居路 由器的各个OSPF接口增加下行链路lowlink字段;
将上行邻居路由器与目标路由器间的OSPF接口的lowlink字段设置为 有效。
较佳地,所述对于设置为下行链路的OSPF接口 ,生成代表缺省路由信 息的区域间LSA或外部LSA包括
将下行链路所在的OSPF设置为区域边界路由器ABR;
所述生成代表缺省路由信息的区域间LSA或外部LSA为生成路由信 息为缺省路由信息的三类LSA。
较佳地,所述对于设置为下行链路的OSPF接口 ,生成代表缺省路由信 息的区域间LSA或外部LSA包括
当下行链路所在OSPF的区域为非STUB区时,将该OSPF设置为自治 系统边界路由器ASBR;
所述生成代表缺省路由信息的区域间LS A或外部LSA为,生成路由信 息为缺省路由信息的五类或七类LSA。
较佳地,该方法进一步包括对于设置为下行链路的OSPF接口 ,为该 接口所在OSPF的区域产生虚拟LSDB,并将所述缺省LSA和所述上行邻居 路由器自身产生的Router LSA加入所述虛拟LSDB中;
所述仅将所述缺省LSA与该上行邻居路由器产生的Router LSA发布给 所述目标路由器为将所述虚拟LSDB中的所有LSA发布给所述目标路由 器。
较佳地,在所述将虚拟LSDB中的所有LSA发布给所述目标路由器后,
状态请求消息时,仅在所述虚拟LSDB中查找所述连接状态请求消息对应的 LSA,并根据查找结果应答所述连接状态请求消息。
较佳地,在所迷将虚拟LSDB中的所有LSA发布给所述目标路由器后, 该方法进一步包括当所述上行邻居路由器收到连接状态更新消息时,
对连接状态更新消息中包括的LSA进行判断,若该LSA中的LSID与 所述缺省LSA的LSID相同,且该LSA为通过下行链路接收的三类、五类 或七类LSA,则丢弃该连接状态更新消息,直接返回LSACK;否则,向正 常LSDB中添加所述LSA;所述正常LSDB中保存该路由器生成的Router LSA和区域内其他路由器产生的LSA。
较佳地,该方法进一步包括当所述虚拟LSDB中的LSA更新时,通
过所述下行链路向所述目标路由器同步更新后的LSA。
较佳地,当所述下行链路的链路类型为Broadcast或NBMA时,该方法 进一步包括设置该下行链路的指定路由器DR选举优先级为最低;
当所述下行链路所属的网段进行DR选举时,所述下行链路不能作为该 网段的DR和备份指定路由器BDR。
较佳地,在执行所述设置下行链路的操作后、为该接口的OSPF生成缺 省LSA前,该方法进一步包括
断开所述下行链路的所有邻居,重新建立邻居关系。
较佳地,当所迷目标路由器存在同层邻居路由器、且该同层邻居路由器 与所述目标路由器具有相同的上行邻居路由器时,该方法进一步包括将所 述同层邻居路由器作为所述目标路由器,执行所述步骤a和b。
一种基于OSPF的路由器,包括LSA处理单元、存储单元和OSPF接口 单元;
所述LSA处理单元,用于生成缺省LSA,所述缺省LSA为代表缺省路 由信息的区域间LSA或外部LSA;所述缺省路由信息表示通过所述上行邻 居路由器能够到达任意网段;还用于生成本路由器的RouterLSA;将所述缺 省LSA和本路由器的Router LSA保存到所述存储单元中;在向所述目标路 由器发布LSA时,仅将所述存储单元中保存的缺省LSA和Router LSA通过 所述OSPF接口单元发布给所述目标路由器;
所述存储单元,用于保存缺省LSA和本路由器的Router LSA;
所迷OSPF接口单元包括多个OSPF接口 ,分别与网络中的其他路由器 相连,收集网络中其他路由器的LSA信息,向所述目标路由器发布缺省LSA 和Router LSA。
较佳地,所述路由器进一步包括控制单元,用于将所述OSPF接口单元 中与目标路由器相连的OSPF接口设置为下行链路;
所述LSA处理单元,在产生缺省LSA时,针对下行链路的接口所在的 OSPF进行。
较佳地,所述存储单元包括虚拟LSDB子单元和正常LSDB子单元;所 述虛拟LSDB子单元,用于保存缺省LSA和本路由器的Router LSA;所述 正常LSDB子单元,用于保存本路由器的Router LSA和OSPF接口单元接 收的其他路由器产生的LSA;所迷LSA处理单元,进一步用于在接收到通过所述下行链路接收的连 接状态请求消息后,从所述虚拟LSDB子单元中查找LSA;在接收到所述 OSPF接口单元转发的连接状态更新消息后,对该消息中包括的LSA进行判 断,若该LSA中的LSID为0.0.0.0,且该LSA为通过下行链路接收的三类、 五类或七类LSA,则丢弃该连接状态更新消息,通知OSPF接口单元返回 LSACK;否则,在所述正常LSDB子单元中保存该连接状态更新消息中包 括的LSA,不在所述虚拟LSDB子单元中〗呆存该LSA;在所述虚拟LSDB 子单元中的LSA更新时,通过所述下行链路向所述目标路由器同步更新后 的LSA。由上述技术方案可见,本发明中,对于需要限制LSDB规模的目标路由 器(例如图1中接入层的中低端路由器RT1 ),在该目标路由器的上行邻居 路由器(例如图1中的汇聚路由器MRT1)中生成缺省LSA,其中,缺省 LSA为代表缺省路由信息的区域间LSA或外部LSA,并且缺省路由信息表 示通过所述上行邻居路由器能够到达任意网段。当上行邻居路由器向目标路 由器发布LSA时,仅将缺省LSA和该上行邻居路由器自身产生的Router LSA发布给目标路由器,而不会像背景技术中提到的将上行邻居路由器 LSDB中所有LSA发布给目标路由器,从而大大减少目标路由器收到的LSA 数量,降低目标路由器中LSDB的规模。同时,当目标路由器进行报文转发 时,若未找到与报文目的地址相匹配的路由,则可以通过缺省LSA,将到达 任意网段的报文转发给上行邻居路由器,不会影响报文的路由和转发。可见, 通过本发明的上述方式,在保证报文正常转发的前提下,减少了目标路由器 中的LSA数量,降低了目标路由器中LSDB的规模,从而使OSPF路由运 算对于路由器硬件的要求降低,进而保证能够在目标路由器上运行OSPF协议。


图1为运行OSPF协议的组网示意图。图2为运行OSPF和RIP协议的组网示意图。图3为本发明中路由信息传播方法的总体流程图。图4为本发明提供的路由器总体结构图。图5为本发明实施例中路由信息传播方法的具体流程图。图6为本发明实施例中路由器的具体结构图。
具体实施方式
为使本发明的目的、技术手段和优点更加清楚明白,以下结合附图,对 本发明做进 一 步详细描述。本发明的基本思想为减少中低端路由器中的LSA数量,降低LSDB 的规模,从而降低路由计算过程的计算量,使中低端路由器能够正常运行 OSPF协议进行^各由。具体地,本发明中控制中低端路由器中LSA数量的具体方式为在保 证报文正常转发的前提下,减少该中低端路由器的上行邻居路由器下发的 LSA数量。图3为本发明中提供的路由信息传播方法的总体流程图。如图3所示, 该方法包括步骤301,在目标路由器的上行邻居路由器中生成缺省LSA。 其中,目标路由器是指需要限制LSDB规模的中低端路由器,缺省LSA 是指代表缺省路由信息的区域间LSA或外部LSA,而缺省路由信息表示通 过所述上行邻居路由器能够到达任意网段。这里生成的缺省LSA是为该上 行邻居路由器与所述目标路由器间的OSPF接口所在的OSPF生成的。步骤302,在上行邻居路由器向目标路由器发布LSA时,仅将缺省LSA
本步骤中,上行邻居路由器向目标路由器发送Router LSA和缺省LSA, 而不发送非上行邻居路由器产生的RouterLSA。而事实上,当区域内的路由 器数目很多时,非上行邻居路由器产生的Router LSA的数目巨大,采用本 发明的路由信息传递方法后,会大大减少发送给目标路由器的LSA数量, 降低LSDB的规模,减少OSPF路由算法的计算量。同时,如前所述,缺省 LSA代表的路由信息为,通过上行邻居路由器到达任意网段的缺省路由。这 样,目标路由器收到上行邻居发布的LSA后,若在报文转发时没有找到与 报文目的地址匹配的路由,则可以将该才艮文,利用缺省LSA转发给上4亍邻 居路由器,然后由上行邻居路由器将报文转发到其他网段。由上述可见,虽然目标路由器中的LSA数量减少了, LSDB的规模降 低了,但是仍然能够通过OSPF进行正常的报文转发,从而保证了在处理能 力较弱的中低端路由器上能够应用OSPF进行报文路由。图4为本发明提供的基于OSPF的路由器总体结构图。如图4所示,该 路由器包括LSA处理单元、存储单元和OSPF接口单元。在该路由器中,LSA处理单元,用于生成缺省LSA,所述缺省LSA为 代表缺省路由信息的区域间LSA或外部LSA;所述缺省路由信息表示通过 所述上行邻居路由器到达任意网段的缺省路由;还用于生成本路由器的 Router LSA;将所述缺省LSA和本路由器的Router LSA保存到所述存储单 元中;在向所述目标路由器发布LSA时,将所述存储单元中保存的缺省LSA 和Router LSA通过所述OSPF接口单元发布给所述目标路由器,不将非该 上行邻居^各由器产生的Router LSA发布给所述目标路由器。存储单元,用于保存缺省LSA和本路由器的Router LSA。OSPF接口单元包括多个OSPF接口 ,分别与网络中的其他路由器相连, 接收其他路由器发布的LSA信息,向所述目标路由器发布缺省LSA和本路 由器产生的Router LSA。以上是对本发明提供的基于OSPF的路由信息传递方法和路由器的总体 概述,下面通过具体实施例说明本发明的具体实施方式
。 实施例在本实施例中,以图1所示的典型组网环境为例,将其中的汇聚层路由器MRT1作为上行邻居路由器,将接入层路由器RT1作为目标路由器,对 本发明的方法和路由器的具体实现进行详述。其中,MRT1中可能运行多个OSPF进程,每个OSPF进程可能包括多 个OSPF接口 ,假定与RT1相连的OSPF接口为接口 A。由于RT1的处理 能力较弱,因此需要应用本发明实施例的方法对该RT1中的LSDB规模进 行限制,以保证其能够正常运行OSPF。图5为本发明实施例中路由信息传播方法的具体流程图。如图5所示, 该方法包4舌步骤501,在MRT1中,将MRT1与RT1相连的接口 A设置为下行链路。本步骤中,具体设置下行链路的方式可以为预先在MRT1的OSPF接 口管理部分中,为MRT1的各个OSPF接口增加下行链路(lowlink)字段, 用于标识该OSPF接口是否为下行链路,规定当该lowlink字段被置为有效 时,则代表该OSPF接口为下行链^各,当该lowlink字段被置为无效时,则 代表该OSPF接口不是下行链路;然后,将MRT1中与RTl间的接口 A对 应的lowlink字段设置为有效,以表明该接口 A为下行链路。步骤502,对于下行链路,为该接口所在的OSPF的区域产生虛拟LSDB。 如前所述,通常一个路由器上可以运行多个OSPF进程,而多个OSPF 进程间是相互隔离、互不影响的,它们可以属于不同的OSPF区域。假定下 行链路的接口所在的OSPF进程为OSPFl,那么为OSPF1的区域产生虚拟 LSDB。这里,虚拟LSDB是本发明提出的一种LSDB,其中包括LSA信息, 虚拟LSDB与背景技术中提到的LSDB类似,只是其中包括的LSA信息有 所差异。路由器MRTl配置了下行链路后,路由器MRTl产生的LSA (非虚拟 LSDB中的LSA)不会通过其他途径传播到下行链路邻居;同样虚拟LSDB 中的LSA不能通过非下行链路传播回路由器MRTl。接下来在MRTl中产生缺省LSA。其中,缺省LSA为区域间LSA或外 部LSA。在OSPF协议中,应用OSPF的网络可以-故分成不同的区域和自治 系统。自治系统内部可以包括多个OSPF区域,OSPF区域分为多种不同的 类型。OSPF协议还规定了七类LSA,根据LSA的类型不同,产生该LSA 的实体和产生的信息内容均不同。具体针对不同类型的LSA产生实体而言,OSPF协议规定,只有区域边 界路由器(ABR)才能生成区域间LSA (三类LSA),只有自治系统边界 路由器(ASBR)才能生成外部LSA (即五类或七类LSA)。因此,需要首 先在MRTl中设置ABR或ASBR,以生成缺省LSA。步骤503,根据OSPF1所在区域的类型,将OSPF1设置为区域边界路 由器(ABR)或自治系统边界路由器(ASBR ),并产生缺省LSA。本步骤中,对于MRTl的接口 A所在的OSPF1,无论该区域的类型为 哪一种,均可以将该OSPF1设置为ABR,产生的缺省LSA为代表缺省路由 信息的三类LSA。该缺省路由信息表示能够通过MRTl到达任意网段。具 体地,在一般的路由器中,0.0.0.0/0的路由信息代表可以到达任意网段,路 由器在转发报文时,如果没有找到与目的地址匹配的路由,那么就会釆用 0.0.0.0/0这条^各由进行净艮文转发。本实施例中,将缺省路由信息设置为 0.0.0.0/0,该路由信息由MRTl产生,因此当利用该路由进行报文转发时, 报文会先#1转发到MRTl,再通过MRTl到达任意网,殳。或者,若OSPFl所在区域为非STUB区(即为普通区域和NSSA区), 则可以将OSPF1设置为ASBR,产生的缺省LSA为路由信息是0.0.0.0/0的 五类或七类LSA。其中,路由信息0.0.0.0/0表示通过MRTl到达任意网段 的缺省3各由。由上述可见,缺省LSA表示向收到该LSA的路由器宣告,MRTl为本 OSPF的Router ID,也就是说,经过MRTl可以到达任意网段。
步骤504,将产生的缺省LSA加入虚拟LSDB中,并将MRT1自身产 生的Router LSA (即一类LSA)加入虚拟LSDB中。本步骤中,将一类LSA和缺省LSA加入虚拟LSDB中,也就是说,该 虚拟LSDB包括两条LSA。其中, 一类LSA由任意运行OSPF协i义的路由 器产生,其中通告了路由器所有的链路和接口,并指明了它们的状态和沿每 条链路方向出站的代价。除上述虛拟LSDB夕卜,在MRT1的OSPF区域还存在背景技术中描述的 LSDB,称为正常LSDB,正常LSDB中包括该路由器自身的Router LSA和 本区域内其他路由器产生的LSA、 NetWorkLSA、本区域引入的外部路由信 息LSA,还有区域间路由信息LSA和其他区域引入的外部路由信息LSA。 其中,虚拟LSDB中的Router LSA与正常LSDB中的Router LSA —致。在 正常LSDB更新Router LSA时,虚拟LSDB中的Router LSA也一同进行更 新。由上述过程可见,本发明实施例中,在MRT1中包括两个LSDB,分别 为虚拟LSDB和正常LSDB。其中,虚拟LSDB是本实施例中新加入的LSDB, 它的规模比正常LSDB小很多,包括本身产生的Router LSA和缺省LSA, MRT1利用该虚拟LSDB与中低端路由器RT1进行同步,从而保证RT1中 LSDB规模受到限制。步骤505,在MRT1向RT1发布LSA时,仅将缺省LSA和自身产生的 Router LSA发布给RT1,不将非MRT1产生的LSA发布给RTl。LSA的发布过程可以利用路由器间的LSDB同步完成。本步骤中,可 以在MRT1与RT1同步LSDB时,使用MRT1的虚拟LSDB中的LSA进行。 也就是,使RT1获取到MRT1中的Router LSA和缺省LSA。在背景技术介绍的方案中,进行LSDB同步时,利用正常LSDB中的 LSA进行,如前所述,正常LSDB中包括该路由器自身的Router LSA和本 区域内其他路由器产生的LSA、 NetWorkLSA、本区域引入的外部路由信息 LSA,还有区域间路由信息LSA和其他区域引入的外部路由信息LSA。因
此,在进行LSDB同步即LSA发布时,RTl接收到正常LSDB中的所有LSA, 因此其接收的LSA数量巨大。但是4姿照上述本发明实施例的方法,在进行LSDB同步时,利用虚拟 LSDB中的LSA进行,也就是说,RTl接收到的是MRTl产生的Router LSA 和一条缺省LSA。可见,这种情况下RTl接收的LSA数量大大少于与正常 LSDB同步时接收的LSA数量,从而能够大大降低RT1中的LSA数量。同时,由于缺省LSA代表通过MRTl到达任意网段,因此RTl可以将 未匹配到目的地址的才艮文先发送到MRTl,再由MRTl转发到该报文的目的 地。可见,虽然LSA数量减少了,但是并未影响报文转发,只是在RTl中 不再记录过多详细路由,而是只记录到达任意网段的聚合路由。至此,基于OSPF的路由信息传递方法的基本流程结束。显然,本发明 的方法大大减少接入层等中低端路由器中LSA的数量,减小内存占用,减 少中低端路由器之间LSA的泛洪,减少路由计算,减轻了CPU负担,保证 OSPF协议在中低端3各由器上正常运行。并且,在一些组网应用中,可以采 用OSPF协议替代RIP协议,从而避免大量接口使能RIP造成的CPU间歇 性繁忙,避免了很多隐患,也减少了链路中路由协议的开销。在本发明的具体实施过程中,针对OSPF协议中存在的连接状态更新和 连接状态请求等操作,为保证RT1中的LSA数量保持稳定,不会由于上述 操作而增加LSA数量,同时保证其他路由器不会受到虚拟LSDB的影响, 本发明实施例的方法还可以进一步包括如下处理1、 当MRTl收到RTl发送的连接状态请求(LSR)消息时,MRTl从 虚拟LSDB中查找LSA,而不从正常LSDB中查找,以保证RTl中始终不 会引入非MRTl产生的LSA。2、 当MRTl收到连接状态更新(LSU)消息时,对该消息中包括的LSA 进行判断,若该LSA中的LSID为0.0.0.0,且该LSA为通过MRTl与RTl 间的接口 A接收的三类、五类或七类LSA,即表明该LSA为虚拟的缺省LSA, 则丢弃该连接状态更新消息,直接返回LSACK;否则,向所述正常LSDB
中添加连接状态更新消息中的LSA,而不向虚拟LSDB中添加。这里,丢弃虚拟的缺省LSA的原因是当两个上行邻居路由器(例如 MRT1和MRT2 )都与目标路由器(例如RT1 )存在下行链路时,RT1可以 从两个上行邻居路由器MRT1和MRT2分别接收到一条缺省LSA,分别为 LSA1和LSA2,这两条缺省LSA互不相同,但是由于其代表的路由信息都 是0.0.0.0/0,因此其中的LSID均为0.0.0.0;当RT1与MRT1同步LSDB时, 很可能将MRT1中没有的LSA2发送给MRT2,同理,也会将LSA1发送给会影响二者间报文的正常路由),也就是说,MRT1中不引入MRT2产生的 缺省LSA2, MRT2不引入MRT1产生的缺省LSA1,因此,将MRT1从接 口 A接收的LSID为0.0.0.0的LSA丢弃,而将其他的LSA保留。3、在MRT1的虚拟LSDB中的LSA更新时,通过下行链路(即接口 A) 向RT1同步更新后的LSA。这里,根据OSPF协议的规定,LSA是具有一定生命周期的,当生命周 期结束时,产生的LSA会被丢弃,并根据当前的网络状况重新生成相应的 LSA,这一过程称为LSA的更新。因此,MRT1中产生的缺省LSA会在一 定时间后被丢弃,这时,需要重新产生新的缺省LSA,该LSA与之前的LSA 相同,也是路由信息为0.0.0.0/0的区域间LSA或外部LSA,从而实现缺省 LSA的更新。然后,在MRT1中的缺省LSA更新后,通过下行链路向RT1 同步更新后的LSA。本发明实施例还提供了基于OSPF的路由器具体结构。该路由器是图4 所示路由器的具体实施方式
。本实施例中,具体为上行邻居路由器MRTl。 图6为该路由器的具体结构图。如图6所示,该路由器包括控制单元、LSA 处理单元、存储单元和OSPF接口单元。其中,LSA处理单元、存储单元和 OSPF接口单元具有与图4所示路由器相同的结构和功能。除此之外,进一 步地,图6所示路由器中还增加了控制单元,存储单元进一步包括虚拟LSDB 子单元和正常LSDB子单元。并且,在LSA处理单元中加入了增强型的功
能。具体地,在该路由器中,控制单元,用于将所迷OSPF接口单元中与目标路由器相连的OSPF接 口设置为下行链路。存储单元中的虚拟LSDB子单元,用于保存缺省LSA和本路由器的 Router LSA。正常LSDB子单元,用于保存本路由器的Router LSA和OSPF 接口单元接收的其他路由器产生的LSA。LSA处理单元,在产生缺省LSA时,针对下行链路的接口所在的OSPF 进行;并且,进一步用于在接收到通过所述下行链路接收的连接状态请求消 息后,从所述虚拟LSDB子单元中查找LSA;在接收到所述OSPF接口单元 转发的连接状态更新消息后,对该消息中包括的LSA进行判断,若该LSA 中的LSID为0.0.0.0,且该LSA为通过下行链路接收的三类、五类或七类 LSA,则丢弃该连4妄状态更新消息,通知OSPF接口单元返回LSACK;否 则,在所述正常LSDB子单元中保存该连接状态更新消息中包括的LSA,不 在所述虚拟LSDB子单元中保存该LSA;在所述虚拟LSDB子单元中的LSA 更新时,通过所述下行链路向所述目标路由器同步更新后的LSA。在上述本发明实施例中,在设置完下行链路后,直接执行后续步骤创建 虚拟LSDB,加入缺省LSA和Router LSA。事实上,在某些情况下,若设 置下行链路前,上行邻居路由器中已经保存了其他路由器产生的Router LSA,就有可能已经将这些LSA发布给目标路由器了,显然,这将对目标 路由器的LSDB规模限制造成不利影响。因此,优先的方式为,在设置完下 行链路后,上行邻居路由器断开下行链路的所有邻居,重新建立邻居关系, 从而保证不将非上行邻居路由器产生的LSA发布给目标路由器。经过上述本发明实施例的具体操作,在图1中,将MRT1和MRT2与 RT1间的接口配置为lowlink,那么在邻居建立后,RT1就只从MRT1收到 两条LSA ,只从MRT2收到两条LSA,但是,由于通过MRT1和MRT2能 够到达图1中所示的其他任何设备,因此,虽然RT1中的LSDB规模降低, 但同样可将报文路由到该网络中的任何设备。更重要的是,由于RT1中只 有四条LSA,因此应用OSPF协议进行路由计算的计算量大大降低,对内存 和CPU的要求也大大降低,因此中低端路由器RT1完全能够正常运行0SPF。另外,在图1中,各个接入层路由器间不存在邻居关系,因此,RT1只 能从上行邻居路由器处进行区域内LSDB的同步。而通过上述实施方式,显 然由上行邻居路由器中同步的LSDB为虚拟LSDB,其中包括的LSA数量大 大减少,从而降低了在RT1中进行路由计算的复杂度,使处理能力较差的 RT1仍然能够正常运行OSPF协议进行报文转发。但是如果RT1存在同层邻 居路由器,也就是RT1与其他接入层路由器(例如RT2)直连,如果该路 由器具有与RT1相同的上行邻居路由器(例如MRT1 ),那么RT1可能会 从该同层邻居路由器获取上行邻居路由器中的正常LSDB,这样的话,也会 导致RT1中的LSDB规模过大,RT1无法正常运行OSPF协议的问题。针对上述问题,优选地,在RT1存在同层邻居路由器、且该同层邻居 路由器与RT1具有相同的上行邻居路由器时,例如RT2满足上述条件,那 么需要将RT2也作为需要限制LSDB规模的路由器,并进行与RT1相同的 处理,具体处理过程与上述实施例中描述的相同,这里就不再赘述。上述的实施方式中,假定各个接入层路由器均处于不同的网段,因此不 涉及到网段内指定路由器(DR)的选举。所谓DR是指在一个网段内的一 个特殊路由器,它负责收集网段内所有路由器的LSA,并向区域内所有路由 器发布其他路由器产生的LSA。只有在OSPF区域内的链路类型为Broadcast 或NBMA时,需要设置DR。当多个接入层路由器与上行邻居路由器位于同一网段时,例如RT1、 RT2和MRT1位于同 一 网段,并且网段内的链路类型为Broadcast或NBMA, 那么优选地,将RT1与MRT 1间的接口 A设置为下行链路后,将该下行链 路的DR选举优先级设为0,即此下行链路不能做DR或BDR。其中,BDR 为备份的DR,在DR出现故障时升级为DR。例如,将RT2作为DR,那么 RT1仍然可以从RT2接收本区域内的LSA,这样,能够保证RT1正常从DR 接收到本区域内其他路由器产生的LSA,使得在本区域内的报文路由不需要
一定经过MRT1的转发。以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应 包含在本发明的保护范围之内。
权利要求
1、一种路由信息传播方法,其特征在于,该方法包括a、在目标路由器的上行邻居路由器中生成缺省LSA;所述缺省LSA为代表缺省路由信息的区域间LSA或外部LSA;b、在所述上行邻居路由器向所述目标路由器发布LSA时,仅将所述缺省LSA与该上行邻居路由器产生的Router LSA发布给所述目标路由器;发布给目标路由器的所述缺省LSA,用于为目标路由器提供缺省路由,使所述目标路由器根据所述缺省LSA将未找到匹配路由的报文转发给所述上行邻居路由器。
2、 根据权利要求1所述的方法,其特征在于,所述在目标路由器的上行邻 居路由器中生成缺省LSA的过程包括在所述上行邻居路由器中,将所述上行邻居路由器与目标路由器间的OSPF 接口设置为下行链路;对于i殳置为下行链^各的OSPF接口,生成代表缺省路由信息的区域间LSA 或外部LSA,将该生成的LSA作为缺省LSA。
3、 根据权利要求2所述的方法,其特征在于,所述将所述上行邻居路由器 与目标路由器间的OSPF接口设置为下行链路包括预先在所述上行邻居路由器中的OSPF接口管理部分,为该上行邻居路由 器的各个OSPF接口增加下行链路lowlink字段;将上行邻居路由器与目标路由器间的OSPF接口的lowlink字段设置为有效。
4、 根据权利要求2所述的方法,其特征在于,所述对于设置为下行链路的 OSPF接口,生成代表缺省路由信息的区域间LSA或外部LSA包括将下行链路所在的OSPF设置为区域边界路由器ABR; 所述生成代表缺省路由信息的区域间LSA或外部LSA为生成路由信息 为缺省路由信息的三类LSA。
5、 根据权利要求2所述的方法,其特征在于,所述对于设置为下行链路的OSPF接口 ,生成代表缺省路由信息的区域间LSA或外部LSA包括当下行链路所在OSPF的区域为非STUB区时,将该OSPF设置为自治系统边界路由器ASBR;所述生成代表缺省路由信息的区域间LSA或外部LSA为,生成路由信息为缺省路由信息的五类或七类LSA。
6、 根据权利要求2所述的方法,其特征在于,该方法进一步包括对于设 置为下行链路的OSPF接口,为该接口所在OSPF的区域产生虚拟LSDB,并将 所迷缺省LSA和所述上行邻居路由器自身产生的Router LSA加入所述虚拟 LSDB中;所述仅将所述缺省LSA与该上行邻居路由器产生的Router LSA发布给所 述目标路由器为将所述虚拟LSDB中的所有LSA发布给所述目标路由器。
7、 根据权利要求6所述的方法,其特征在于,在所述将虛拟LSDB中的所 有LSA发布给所述目标路由器后,该方法进一步包括当所述上行邻居路由器 收到所述目标路由器发送的连接状态请求消息时,仅在所述虛拟LSDB中查找 所述连接状态请求消息对应的LSA,并根据查找结杲应答所述连接状态请求消
8、 根据权利要求6所述的方法,其特征在于,在所述将虛拟LSDB中的所 有LSA发布给所述目标路由器后,该方法进一步包括当所述上行邻居路由器 收到连接状态更新消息时,对连接状态更新消息中包括的LSA进行判断,若该LSA中的LSID与所述 缺省LSA的LSID相同,且该LSA为通过下行链路接收的三类、五类或七类 LSA,则丟弃该连接状态更新消息,直接返回LSACK;否则,向正常LSDB中 添加所述LSA;所述正常LSDB中保存该路由器生成的Router LSA和区域内其 他路由器产生的LSA。
9、 根据权利要求6所述的方法,其特征在于,该方法进一步包括当所述 虚拟LSDB中的LSA更新时,通过所述下行链路向所述目标路由器同步更新后 的LSA。
10、根据权利要求2所述的方法,其特征在于,当所述下行链路的链路类 型为Broadcast或NBMA时,该方法进一步包括i殳置该下行i连路的指定路由 器DR选举优先级为最低;当所述下行链路所属的网段进行DR选举时,所述下行链路不能作为该网 段的DR和备份指定路由器BDR。
11、根据权利要求2所述的方法,其特征在于,在执行所述设置下行链路 的操作后、为该接口的OSPF生成缺省LSA前,该方法进一步包括断开所迷下行链路的所有邻居,重新建立邻居关系。
12、 根据权利要求1所述的方法,其特征在于,当所述目标路由器存在同 层邻居路由器、且该同层邻居路由器与所迷目标路由器具有相同的上行邻居路 由器时,该方法进一步包括将所述同层邻居路由器作为所迷目标路由器,执 4亍所述步骤a和b。
13、 一种基于OSPF的路由器,其特征在于,所述路由器包括LSA处理单 元、存储单元和OSPF接口单元;所述LSA处理单元,用于生成缺省LSA,所述缺省LSA为代表缺省路由 信息的区域间LSA或外部LSA;所述缺省路由信息表示通过所述上行邻居路由 器能够到达任意网段;还用于生成本路由器的Router LSA;将所述缺省LSA和 本路由器的Router LSA保存到所述存储单元中;在向所述目标路由器发布LSA 时,仅将所述存储单元中保存的缺省LSA和Router LSA通过所述OSPF接口 单元发布给所述目标路由器;所述存储单元,用于保存缺省LSA和本路由器的Router LSA;所迷OSPF接口单元包括多个OSPF接口 ,分别与网络中的其他路由器相 连,收集网络中其他路由器的LSA信息,向所述目标路由器发布缺省LSA和 Router LSA。
14、 根据权利要求13所迷的路由器,其特征在于,所述路由器进一步包括 控制单元,用于将所述OSPF接口单元中与目标路由器相连的OSPF接口设置 为下4于l连i 各; 所述LSA处理单元,在产生缺省LSA时,针对下行链路的接口所在的OSPF 进行。
15、根据权利要求14所述的路由器,其特征在于,所述存储单元包括虚拟 LSDB子单元和正常LSDB子单元;所述虚拟LSDB子单元,用于保存缺省LSA 和本路由器的Router LSA;所述正常LSDB子单元,用于保存本路由器的Router LSA和OSPF接口单元接收的其他路由器产生的LSA;所述LSA处理单元,进一步用于在接收到通过所述下行链路接收的连接状 态请求消息后,从所述虚拟LSDB子单元中查找LSA;在接收到所述OSPF接 口单元转发的连接状态更新消息后,对该消息中包括的LSA进行判断,若该 LSA中的LSID为0.0.0.0,且该LSA为通过下行链鴻4妻收的三类、五类或七类 LSA,则丢弃该连接状态更新消息,通知OSPF接口单元返回LSACK;否则, 在所述正常LSDB子单元中保存该连接状态更新消息中包括的LSA,不在所述 虚拟LSDB子单元中保存该LSA;在所述虚拟LSDB子单元中的LSA更新时, 通过所述下行链路向所述目标路由器同步更新后的LSA。
全文摘要
本发明公开了一种路由信息传播方法,包括对需要限制LSDB规模的目标路由器,在该目标路由器的上行邻居路由器中生成缺省LSA;在上行邻居路由器向目标路由器发布LSA时,仅将所述缺省LSA与该上行邻居路由器产生的RouterLSA发布给所述目标路由器;发布给目标路由器的所述缺省LSA,用于为目标路由器提供缺省路由,使所述目标路由器根据所述缺省LSA将未找到匹配路由的报文转发给所述上行邻居路由器。本发明还公开了一种路由器,包括OSPF接口单元、存储单元和LSA处理单元。应用本发明,能够在中低端路由器上运行OSPF协议。
文档编号H04L12/56GK101150523SQ20071017711
公开日2008年3月26日 申请日期2007年11月9日 优先权日2007年11月9日
发明者赵昌峰 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1