优化发布LSAmetric的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种优化发布LSA metric的方法及装置。
背景技术
OSPFv3(最短路径优先)是IETF组织开发的一个基于链路状态的自治系统内部路由协议,协议的工作机制是各设备之间通过周期性的通告Hello报文建立并维持邻居关系,在形成邻接关系的设备之间互相扩散描述链路状态的LSA(链路状态通告),并且各设备最终形成相同的LSDB(链路状态数据库),在LSDB基础上进行路由计算生成路由信息保存到RIB中,RIB选取最优路由并下发给FIB用于指导报文转发。它具有适应范围广、收敛速度快、无环路、支持路由分级等特点,是世界上目前应用最为广泛的IGP协议。
发明内容
有鉴于此,本发明提供一种优化发布LSA metric的方法及设备,应用于OSPF网络中的边界路由设备上,该方法包括:
步骤A、接收第一路由设备发布的7类LSA,从7类LSA中获取第一cost值;
步骤B、获取第一路由设备到本路由设备的第二cost值;
步骤C、根据所述第一cost值与所述第二cost值生成第三cost值,并将7类LSA转换为5类LSA;
步骤D、向第三路由设备发布携带有第三cost值的5类LSA。
进一步地,当第一cost值为Type1时,向第三路由设备发布5类LSA的cost值为所述第一cost值与所述第二cost值的总和。
进一步地,当第一cost值为Type2时,将第二cost值转换为Type2的cost值。
优选地,所述转换后的cost值为Type2的最小cost值。
本发明还提供了一种优化发布LSA metric的装置,应用于OSPF网络中的路由设备上,包括路由接收单元、开销获取单元、开销计算单元、开销发布单元,其特征在于,该装置包括:
路由接收单元用于接收第一路由设备发布的7类LSA,从7类LSA中获取第一cost值;
开销获取单元用于获取第一路由设备到本路由设备的第二cost值;
开销计算单元用于根据所述第一cost值与所述第二cost值生成第三cost值,并将7类LSA转换为5类LSA;
开销发布单元用于向第三路由设备发布携带有第三cost值的5类LSA。
进一步地,当第一cost值为Type1时,向第三路由设备发布5类LSA的cost值为所述第一cost值与所述第二cost值的总和。
进一步地,当第一cost值为Type2时,将所述第二cost值转换为Type2的cost值。
优选地,转换后的cost值为Type2的最小cost值。
本发明通过在metric的计算过程中累加7类LSA转5类LSA发布者到7类LSA生成者间的链路cost,在网络上设备能够准确计算出来路由的最优路径,从而避免产生次优路由。
附图说明
图1是本发明中优化发布LSA metric的流程框图;
图2是本发明中优化发布LSA metric的装置逻辑结构图;
图3是本发明实施例中7类LSA转5类LSA发布metric的组网示意图。
具体实施方式
5类LSA(自治系统外部LSA)它是由ASBR(自治系统边界路由设备)产生的,用来通告自治系统外部的路由,它在整个OSPF自治系统内泛洪。所以管理员应该尽量在ASBR上进行路由汇总。
7类LSA(NSSA外部LSA)是指在非纯末梢区域内由ASBR发出的通告外部AS的LSA。仅仅在这个非纯末梢区域内泛洪,不能在整个自治系统内泛洪。NSSA网络中的ABR会将这个7类LSA转换为5类LSA告诉主干区域。
在OSPFv3的ABR(区域边界路由设备)设备上进行7类LSA转5类LSA时,如果转换后没有携带FA地址,会致使发布的5类LSA中的metric使用了原来7类LSA中携带的metric(最佳路径的计量标准),这个metric不能有效反映实际链路的状态,可能造成在路由计算过程中造成选择非最优路径。本发明提供一种新的技术方案来解决目前遭遇的困境和挑战,为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明实施例的技术方案应用于包括第一路由设备、第二路由设备和第三路由设备的系统中。所述的“第一”、“第二”和“第三”并非用于限定,而只是用于区分多个路由设备。以下本发明将分别以第一路由设备、第二路由设备和第三路由设备的路由接收、转换以及发布过程为例,对本发明在7类LSA转为5类LSA时发布LSA metric的方法进行说明。
在OSPFv3协议中,7类LSA和5类LSA的内容基本一样,而且是可以相互转换的。NSSA区域允许所有ASBR存在,把外部路由重分发进NSSA区域后,将产生第7类LSA,7类LSA只会在始发该LSA的NSSA区域中传递,当要传递到其他的区域时,ABR会将7类LSA转换为5类LSA,再传到OSPF其他的Area。
Metric被称作度量值,是用于确定最佳路径的计量标准的,metric值等于每个入接口的cost值之和。路由的cost值(开销值)有两种类型,分别为Type1和Type2,当cost值为Type1时表示LSA为区域内部路由发布的,cost值为Type2时表示LSA为区域外部路由发布的。由于这两种类型的量化方式不同,Type2的数量级会远远高于Type1,在metric的选择上Type1的级别比Type2优,因此在选择路径时通常优选Type1。当NSSA区域的第一路由设备接收引入路由的7类LSA的cost值为Type1时,将会把携带有引入路由原有链路的cost值发布给第二路由设备,该第二路由设备为连接多个区域的边界路由设备(ABR)。当要向其他区域的第三路由设备发布该7类LSA的cost值时,由于7类LSA只会在始发该LSA的NSSA区域中传递,因此首先要将7类LSA转换为5类LSA后再行发布。
FA(Forwarding Address)是ASBR(自治系统边界路由器)通告的5类LSA中的字段,它的作用是告诉OSPF域内的路由设备如何能够更快捷地到达5类LSA所通告路由的下一跳地址。以免OSPF内部路由设备在广播网络上以ASBR为下一跳,再由ASBR自己转发到正确的下一跳,而产生额外的路由。但是由于协议中的某些限定,或是其他的设备不支持,会存在转换时丢失FA的可能。在OSPFv3的第二路由设备(ABR)上进行7类LSA转5类LSA时,如果在转换时没有携带FA,此时转换后的5类LSA中发布的cost值使用了原来7类LSA中携带的cost值,这个cost值不能有效反映实际链路的状态;同样,当cost值的属性与上述Type1的情况一样,但NSSA区域的第一路由设备接收到引入路由发布的cost值为Type2时,在第二路由设备(ABR)上进行7类LSA转5类LSA后向其他区域的第三路由设备发布5类LSA时,第三路由设备学习到的5类LSA的cost值同样不能有效反映实际链路的状态。由此可见,现有在OSPFv3的ABR设备上进行7类LSA转5类LSA时,如果在转换时没有携带FA,使发布的5类LSA中的cost值不能有效反映实际链路的状态,可能会造成路由链路计算不准确,致使在选择路由路径时选择次优路由。
本发明实施例中,为了实现在ABR上进行7类LSA转5类LSA发布的cost值的选择上,能反映引入路由实际链路的metric,而提供了针对7类LSA转5类LSA中没有携带FA的情况下发布metric的优化方案,实现了在网络上能够准确计算出路由的最优路径。在本方案中还提供了一种优化发布LSA metric的装置,请参考图2,该装置应用于OSPF网络中连接多个区域的边界路由设备上,所述路由设备的基本硬件环境包括CPU、内存、非易失性存储器以及其他硬件。该装置在逻辑上包括:路由接收单元、开销获取单元、开销计算单元以及开销发布单元,请参考图1,该装置在运行过程中执行如下处理流程:
步骤101、路由接收单元用于接收第一路由设备发布的7类LSA,从7类LSA中获取第一cost值;
步骤102、开销获取单元用于获取第一路由设备到本路由设备的第二cost值;
步骤103、开销计算单元用于根据所述第一cost值与所述第二cost值生成第三cost值,并将7类LSA转换为5类LSA;
步骤104、开销发布单元用于向第三路由设备发布携带有第三cost值的5类LSA。
在OSPF路由协议中,可以将一个路由域或者一个自治系统AS划分为几个区域。由按照一定的OSPF路由法则组合在一起的一组网络或路由器的集合称为区域(Area)。组网相同的情况下,在NSSA区域的ABR上进行7类LSA转5类LSA后并发布5类LSA给Area-0区域,该接收区域并不限定于Area-0区域,也可以为其他区域。当在两个不同区域(非Area-0)发布LSA metric的情况下,ABR也可以是PE(运营商边缘路由器)设备。本发明只针对Area-0区域进行描述,其他区域也可采取类似的处理方式。
以下分别以两个实施例说明当引入路由的cost值为Type1和Type2两种情况时的计算方法。
实施例一
下面参考图3所示组网进行说明,当NSSA区域的第一路由设备接收到域外引入路由的7类LSA的cost值为Type1时,将携带有cost值的7类LSA发布给第二路由设备,第二路由设备为连接NSSA区域和Area-0区域的边界路由设备(ABR),并获取第一路由设备到第二路由设备的cost值,当所述7类LSA的cost值发布给Area-0区域的第三路由设备时,由于7类LSA只会在始发该LSA的NSSA区域中传递,因此要先将7类LSA在第二路由设备(ABR)上转为5类LSA后再行发布,此时在第二路由设备上7类LSA转5类LSA后发布的5类LSA的metric为7类LSA中发布的cost值加上第二路由设备到第一路由设备的链路cost值(即7类LSA转5类LSA发布者到7类LSA生成者间的链路cost值)。此时在第三路由设备上学习到的引入路由,为7类LSA中发布的cost值加上第二路由设备到第一路由设备的链路cost值与第三路由设备到第二路由设备的链路cost值的累加。
对于同时存在多个7类LSA发布源时,其发布metric=MIN{7类LSA中发布的costi+7类LSA转5类LSA发布者到7类LSA生成者间的链路costi}。
假设,NSSA区域的第一路由设备接收引入路由发布的7类LSA的cost值为100,该cost值类型为Type1,在第二路由设备(ABR)上进行7类LSA转5类LSA后,所发布给NSSA区域外的第三路由设备的5类LSA属性为:Type1,cost值为107,此cost值的计算方式为7类LSA中发布的cost值加上第二路由设备到第一路由设备的链路cost值(100+7),此时在第三路由设备上学习到的引入路由,Type为1,cost值为110,即7类LSA中发布的cost值加上第二路由设备到第一路由设备的链路cost值与第三路由设备到第二路由设备的链路cost值的累加(100+7+3)。
实施例二
下面仍参考图3所示组网进行说明,当NSSA区域的第一路由设备接收到域外引入路由的7类LSA的cost值为Type2时,将会把携带有7类LSA的cost值发布给第二路由设备,第二路由设备为NSSA区域和Area-0的边界路由设备(ABR),由于7类LSA中携带的cost值为Type2表示域外的cost值,因此需要将第二路由设备到第一路由设备的链路cost值也转换为Type2(域外)区间内的最小值后再进行发布。7类LSA在第二路由设备上转为5类LSA后发布给Area-0区域的第三路由设备时,此时发布的5类LSA的cost值为7类LSA中发布的cost值+1(即将7类LSA转5类LSA发布者到7类LSA生成者间的链路cost值转换为Type2区间内的最小值)。
假设,在NSSA区域的第一路由设备上引入域外路由的7类LSA为Type2,cost值为100,需要说明的是,由于Type1、Type2两种类型的量化方式不同,Type2的数量级远远高于Type1,因此7类LSA为100的cost值在Type2时实际上远远大于实施例一中7类LSA的cost值为Type1时所述为100的cost值。在第二路由设备(ABR)上进行7类LSA转5类LSA后,所发布给Area-0区域的第三路由设备的5类LSA属性为:Type2,cost值为101,即7类LSA中发布的cost值+Type2的最小cost值1(100+1),此时在第三路由设备上学习到最初的引入路由时,其Type为2,cost值为101。
对于同时存在多个7类LSA发布源时,在转换后发布的5类LSA的metric=MIN{7类LSA中发布的costi+1}。
但是,变换以上组网,将不同路由区域修改为同一个路由区域时,就无需进行7类LSA转5类LSA。在引入路由Type不同,其他属性相同的情况下,第三路由设备学习到引入路由的属性分别为Type1,cost值110和Type2、cost值10/100(10表示域内的cost值/100表示域外的cost值)。
在以上实施例中,由于Type1、Type2两种类型的量化方式不同,Type2的数量级会远远高于Type1,Type2区间的最小值比Type1区间的最大值要大。在metric的选择上Type1的级别比Type2优,因此在选择路径时通常优选Type1。本发明通过在metric的计算过程中累加7类LSA转5类LSA发布者到7类LSA生成者间的链路cost值,在网络上设备能够准确计算出路由的最优路径,从而避免了产生环路的可能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。