基于OSPF协议的NSSA-External-LSA携带Forwording Address的优化

2018-04-04 07:49王琦进经默然安徽新华学院信息工程学院安徽合肥230088
关键词:外网路由表网段

王琦进,经默然(安徽新华学院信息工程学院,安徽 合肥 230088)

OSPF是由网络工程任务组织(IETF)开发的一种基于链路状态的内部网关路由协议,有OSPF Version 2(RFC2328)和OSPF Version 3(RFC2740)2个版本。早期网络上广泛使用基于距离矢量算法的RIP(routing information protocol)作为内部路由协议;但是RIP不适用于大规模网络,且存在着收敛慢、路由环路等问题,因此逐渐被OSPF取代。OSPF具有支持无类型域间路由(CIDR)、报文加密以及组播形报文等优点;然而随着OSPF V2的广泛运用,其收敛速度、路径选择以及路由表大小等方面开始呈现出不同问题,针对OSPF的优化机制也在不断地增加与完善[1-4]。

本文主要研究NSSA-External-LSA携带FA地址的优化机制。通过场景设计、抓包分析,研究路径优化的过程和原理,同时探讨了NSSA-External-LSA携带FA地址后仍不能做到路径优化的场景及外部路由无法计算的原因。仿真实验结果表明,优化后的OSPF路由路径更优,路由传输效率更高。

1 OSPF协议优化方式

1.1 网络收敛和路由计算

1.1.1OSPF与BFD联动

双向转发检测BFD(bidirectional forwarding detection)是一种用于检测转发引擎之间通信故障的检测机制[5]。OSPF与BFD联动就是将BFD和OSPF协议关联起来,一旦与邻居之间的链路出现故障,就将BFD对链路故障的快速感应通知OSPF协议,从而加快OSPF协议对于网络拓扑变化的响应。

1.1.2优先级收敛

OSPF按优先级收敛是指在大量路由情况下,能够让某些特定的路由优先收敛的一种技术[6]。用户可以把和关键业务相关的路由配置成相对较高的优先级,使这些路由更快的收敛,从而使关键业务受到的影响减小。

1.1.3增量最短路径优先算法I-SPF

增量最短路径优先算法I-SPF(incremental SPF)是指当网络拓扑改变时,只对受影响的节点进行路由计算,加快路由计算速度,缩短计算时间[7]。I-SPF改进了原算法,除第1次计算需要全部节点外,每次只计算受影响的节点,最后生成最短路径树SPT(shortest path tree)。I-SPF的计算结果与原算法相同,但降低了CPU占用率,提高了网络收敛速度。

1.1.4部分路由计算PRC

PRC(partial route calculation)对发生变化的路由进行重新计算[8]。它不需要计算节点路径,而是根据SPT更新路由。如果I-SPF计算后的SPT改变,PRC只处理那个变化节点上的所有叶子;如果SPT并没有变化,PRC只处理变化的叶子信息。

1.1.5智能定时器

在进行SPF计算和产生LSA时用到智能定时器。SPF智能定时器既可以对少量外界突发事件进行快速响应,又可以避免过度占用CPU[9]。若OSPF网络稳定则不会频繁进行路由计算,如果拓扑变化比较频繁,智能定时器会随着计算次数的增加,间隔时间也会逐渐延长,从而避免占用大量CPU资源。

1.2 流量工程和路径优化

1.2.1OSPF TE

OSPF TE(OSPF traffic engineering)是为了支持MPLS TE,支持建立和维护TE的标签交换路径LSP(label switch path)而在OSPF协议基础上扩展的新特性[10]。在MPLS TE架构中,OSPF扮演着信息发布组件的角色,负责收集扩散MPLS TE信息。除网络拓扑信息外,流量工程还需知道网络的约束信息。OSPF现有功能不能满足这些要求,因此需要对现有OSPF进行扩展,引入新类型的LSA发布这些信息。

1.2.2转发地址FA

转发地址FA(forwarding address)是OSPF中AS-External-LSA(Autonomous system external LSA)和NSSA-External-LSA携带的一个特殊字段,用来防止经SPF算法后计算出次优路由。本文重点对NSSA-External-LSA进行研究。

2 NSSA-External-LSA携带FA地址优化

2.1 理论分析

NSSA-External-LSA被称为7类LSA和AS-External-LSA(5类LSA)作用几乎相同,用来向OSPF的NSSA区域通告外部网络路由信息。它由NSSA区域ASBR产生,只能在NSSA区域内泛洪。与AS-External-LSA不同的是,NSSA-External-LSA无论如何都会携带FA地址。其原因是与ASBR同区域的ABR收到NSSA-External-LSA后会进行7转5操作,将NSSA-External-LSA转换成AS-External-LSA向OSPF区域内部泛洪,此时这台ABR就充当了ASBR的角色,从而掩盖了网络中真实ASBR的身份和位置,次优路径产生的可能性大,因此NSSA-External-LSA无论是否满足AS-External- LSA的3个条件(引入外部路由的对应接口加入OSPF进程、对应接口没有设置成Passive-Interface以及对应接口OSPF接口网络类型为Broadcast或NBMA),都会携带FA地址。携带的内容分2种情况。

1)若满足AS-External-LSA的3个条件,那么携带内容和AS-External-LSA一致;

2)若不满足,那么在此ASBR上选择一个加入OSPF进程的活动接口地址作为FA地址,环回口地址优先。

通常,外部路由引入后,NSSA区域的ASBR会生成关于外网路由的NSSA -External- LSA,与此ASBR同区域的ABR会进行7转5操作。如果有2台ABR存在,那么由Router ID较大的那台进行7转5操作,在转换过程中,新产生的AS-External- LSA会继承原NSSA-External-LSA中的FA字段,并向区域内部泛洪。区域内部路由器收到此AS-External-LSA后会根据其中的FA地址计算自身到外部网络的最优路径,从而避免次优路径产生。

2.2 实验分析

实验设计场景如图1所示。

图1 实验场景图

图1中,AR1的GE0/0/0、GE0/0/1,AR2的GE0/0/0,AR3的GE0/0/0在OSPF area 0的骨干区域中,AR2的GE0/0/1,AR3的GE0/0/1,AR4的GE0/0/0、GE0/0/1在NSSA区域中,AR4和AR5间使用RIPV2互相学习路由,AR5模拟外网。2台设备(Y,Z)间互连地址规划方式为10.1.YZ.Y、10.1.YZ.Z,AR1和AR3链路之间的OSPF Cost为100。在AR4上将RIP重分布到OSPF中,使得AR1能够通过OSPF学习到外网5.5.5.5的路由。网络中有2台处在NSSA区域的ABR,当它们收到NSSA-External-LSA后,会由Router ID大的AR3进行7转5操作,生成新的AS-External-LSA,通告给AR1。

由于NSSA-External-LSA始终携带FA地址,为验证实验效果,在生成新AS-External-LSA的AR3上使用“nssa suppress-forwarding-address zero-address-forwarding”命令将FA强制改为0.0.0.0。此时在AR1上的GE0/0/1接口开启Wireshark抓包,找到AS-External- LSA,如图2所示。

图2 修改后AR3生成的AS-External- LSA

由图2可以看出,由AR3通告给AR1有关外网5.5.5.5路由的AS-External-LSA中FA地址已经被强制改成了0.0.0.0。由于拓扑设置了Cost值,AR1和AR3之间OSPF链路开销远大于AR1和AR2之间链路,因此最佳访问外网路径应为AR1-AR2-AR4-AR5。查看AR1的路由表,显示AR1上访问外网5.5.5.5的下一跳指向10.1.13.3(AR3),访问路径为AR1-AR3-AR4-AR5。由于7转5生成的新AS-External- LSA没有携带FA地址,AR3作为能够生成5类LSA的新ASBR产生的AS-External-LSA掩盖了AR4这个ASBR的真实身份和位置,AR1便只能根据AR3去访问外网,从而产生AR1-AR3-AR4-AR5的次优路径。删除AR3上强制修改的FA配置信息,再次在AR1上的G0/0/1接口开启Wireshark抓包,找到AS-External- LSA,图3所示。

图3 携带FA的AS-External-LSA

此时AR1收到的LSA已经携带了值为4.4.4.4的FA,AR1会根据当初NSSA- External- LSA生成时写入的FA值,通过SPF算法计算自身到这个地址的最优路径作为自身访问外网5.5.5.5的最优内部路径。携带FA地址后,通过路由表查看及路径走向测试,其结果表明,由于NSSA-External-LSA携带了FA地址,使得7转5操作新生成的AS-External- LSA成功继承了FA值,AR1不用再依据ASBR位置确定访问外网路径,从而避免了次优路径。

3 优化可能出现的问题

作为一种优化机制,NSSA-External-LSA无论何时都会携带FA地址,那么是否会出现即使携带了FA地址,也无法执行最优路径的问题。本文实验设计了如图4的仿真场景。

图4 实验场景图

图4中,AR5、AR3的E0/0/1接口及环回口在OSPF Area 0 中,AR1、AR2、AR3、AR5都属于OSPF Area 1,Area 1被设置为NSSA区域。AR1的GE0/0/1和AR3的GE0/0/0 也加入OSPF Area 1 进程,AR2和AR1间OSPF Cost为100,AR4模拟外网,与AR1和AR3之间通过RIPV2互相学习路由。3台路由器(AR1、AR3、AR4)通过交换机连接在一起,由于设备在同一网段,设备间的互连地址规划方式为10.1.XYZ.X/Y/Z。在AR1上将外网4.4.4.4路由引入到OSPF区域中,使得AR5可以计算出外网路由。

3.1 携带FA地址却无法优化路径

单从链路上看,AR5访问AR4,有3种途径:AR5-AR3-AR4、AR5-AR2-AR3-AR4以及AR5-AR2-AR1-AR4。文章第2部分已证明NSSA -External-LSA无论何时都会携带FA地址在OSPF自治系统内做到路径优化。就路径开销而言,AR5-AR3-AR4这条路径开销最小,为最优路径。此时查看AR5路由表,显示通向外网4.4.4.4路由的下一跳指向AR2,并不是最优路径里的AR3。由于AR1是ASBR,此时路径也指向AR1所在方向,因此怀疑FA字段出现问题。

仿真场景中,AR1作为ASBR,其配置符合AS-External- LSA携带FA地址的3个条件,其生成的NSSA-External-LSA携带的FA地址是自身到外网路由的下一跳,值应为10.1.134.4。此时在AR5的E0/0/0接口开启Wireshark抓包,找到由AR2通告给AR5的NSSA-External-LSA信息,如图5所示。

图5 AR5的NSSA-External-LSA

图5显示FA字段正常,可能的原因是:

1)AR5在计算到达外网路径时出现某种问题导致最终没有使用此字段;

2)AR5计算到达外网路径时此字段被正常使用,但在最终计算时路径被更优先的机制覆盖。

进行路径跟踪测试,排除了第1种可能。考虑原因二,在路径计算时,FA字段已计算在内,AR5上也计算了自身到达10.1.134.0/24网段的最优路径。再次开启Wireshark抓包,找到向AR5通告10.1.134.0/24网段的LSA,如图6所示。

图6 AR5接口E0/0/0的LSA信息

AR5接收用来描述10.1.134.0/24网段LSA的是Router-LSA和Network-LSA。在LSA的一条Summary-LSA中找到了关于10.1.134.0/24网段的描述,证明由Area 0传来的描述10.1.134.0/24网段的LSA是由AR3的Summary-LSA产生。对OSPF路由器而言,能够使用Router-LSA和Network-LSA计算出的路由,不会选择用Summary-LSA计算,因此,AR5在计算到达10.1.134.0/24网段路径时,采用的是NSSA区域的Router-LSA和Network-LSA,计算出的是在NSSA区域中的最短路径,和AR5与AR3之间属于Area 0的链路无关。在这种部署下,发现FA工作正常,但是到达ASBR的路径受到OSPF域内路由计算机制限制,并未达到优化效果,从而产生了AR5-AR2-AR3-AR4的次优路径;因此,在实际OSPF部署中,应尽量避免这种“NSSA区域包围Area 0”的结构,以防出现上述路径选择不优的问题。

3.2 携带FA地址外部路由无法计算

在2.1节中,AR5优选了NSSA区域描述10.1.134.0/24网段的Router-LSA和Network-LSA来计算到达外网4.4.4.4的OSPF内部路径,使得AR1产生的NSSA-External-LSA即使携带了FA地址,也没有做到路径优化。那么如果OSPF Area 0通告给AR5描述此网段的也是Router-LSA和Network-LSA,在AR5计算路由时平等对待这2个区域传来的LSA,在计算最优路径时,是否会得到AR5-AR3-AR4这条最小开销路径。

在图4仿真场景基础上,将AR3的GE0/0/0接口从NSSA区域释放,加到OSPF Area 0中,此时GE0/0/0接口所在的10.1.134.0/24网段对于Area 0不再是区域外部路由,而是区域内部路由;因此,AR3通过Area 0通告给AR5的10.1.134.0/24网段将由Router-LSA和Network-LSA来描述。在AR5的E0/0/1接口开启Wireshark抓包,找到描述此网段的相关LSA,如图7所示。

图7 AR5接口E0/0/1的LSA信息

图7表明,此时AR3通过Area 0通告给AR5的10.1.134.0/24网段已由Router-LSA和Network-LSA来描述,在路由计算时会比较路径开销,此时AR5-AR3-AR4这条路径应被优选,测试路径显示此时外网路由不可达。查看AR5路由表,外网路由4.4.4.4消失,此时外网路由在AR5上无法计算。可能的原因是AR2通告给AR5的NSSA-External-LSA或者Router-LSA出现问题。抓包结果如图8所示。

图8表明,AR5收到的NSSA-External-LSA描述了外网路由4.4.4.4并携带了FA地址,Router-LSA也描述了作为FA地址的10.1.134.0/24网段;但是AR5仍无法计算外网路由。就其原因可能为AR5优选了由开销较小的Area 0中的Router-LSA和Network-LSA计算出的结果,但却没有加入路由表中,导致不可用。若要使AR5优选NSSA本区域的Router-LSA和Network-LSA来计算NSSA区域内的NSSA-External-LSA所描述的外网路由,外网路由才可被计算并添加,应修改Cost值。

对于图4仿真场景,修改AR5的E0/0/1接口,将OSPF Cost 改为800,使得Area 0通告给AR5的Router-LSA和Network-LSA计算出的路径开销远大于NSSA区域通告给AR5,此时AR5在计算时会优选NSSA本区域内的Router-LSA和Network-LSA。再次进行仿真试验,查看路由表发现,AR5路由表存在去往外网的4.4.4.4路由, 证明外网路由成功被计算且可用,路径测试结果显示外网路由可达,AR5此时访问外网路径为AR5-AR2-AR3-AR4。尽管仍是次优路径(OSPF区域部署问题),但是解决了此状态下外网路由无法计算的问题并得出结论:NSSA区域的ABR要通过本区域的Router-LSA和Network-LSA计算出FA的路由被优选,才能计算NSSA-External-LSA描述的外部路由。

图8 AR5在NSSA区域收到的信息

因此,在实际部署中遇到NSSA-External-LSA通告的外部路由无法被计算时,可通过修改相关接口OSPF Cost保证NSSA区域的ABR要通过本区域的Router-LSA和Network-LSA计算出FA的路由被优选来解决此问题。

4 结束语

OSPF通过NSSA-External-LSA携带Forwarding Address字段来防止访问外网的次优路径出现的优化机制是合理且成熟的。本文在研究其优化原理,证明此机制优化后的OSPF路由路径更优,路由传输效率更高的同时,也发现了NSSA-External-LSA携带FA地址后仍不能做到优化路径的场景和NSSA-External-LSA通告的外部路由无法计算的问题,为此,提出了“应尽量避免这种NSSA区域包围Area 0的结构,以防出现路径选择不优问题”的OSPF部署建议,得出了“NSSA区域的ABR要通过本区域的Router-LSA和Network-LSA计算出FA的路由被优选,才能计算NSSA-External-LSA描述外部路由”的研究结论。

[1]TANTSURA J, GREDLER H, GINSBERG L, et al. OSPFv2 Link traffic engineering (TE) attribute reuse[EB/OL].(2017-06-23).[2017-10-26].https://tools.ietf.org/html/draft-ppsenak-ospf-te-link-attr-reuse-05.

[2]王琦进, 施欢. OSPF高效路由协议的设计与优化[J]. 哈尔滨师范大学(自然科学学报), 2016, 32(5):36.

[3]史玉锋, 赵燕, 李明. 解析ospf协议中常用的7类LSA[J]. 电子测试, 2016(1):39.

[4]YANG Y,RETANA A E,NG J,et al.Apparatus and method to hide transit only multi-access networks in ospf,US9356856[P].2016-05-31.

[5]JOHN T. OSPF complete implementation (paperback)[M]. [S.l.]:Addison-Wesley Professional,2008.

[6]MAGNANI D B, CARVALHO I A, NORONHA T F. Robust optimization for OSPF Routing [J].IFAC Papers on Line, 2016, 49 (12) :461.

[7]梁洪泉,吴巍.利用节点可信度的安全链路状态路由协议[J].西安电子科技大学学报,2016,43(5):121.

[8]康威.OSPF路由协议安全性分析与研究[D].北京:北京邮电大学,2010.

[9]张春青, 张宏科. OSPF动态路由协议中的路由计算[J]. 北京交通大学学报, 2013, 27(3):100.

[10]马素刚. 路由协议OSPF的研究与仿真[J]. 计算机系统应用, 2016, 25(5):228.

猜你喜欢
外网路由表网段
内网和外网间的同名IP地址转换技术及应用
基于OSPF特殊区域和LSA的教学设计与实践
基于MP-BGP EVPN的VXLAN实现中的故障
单位遭遇蠕虫类病毒攻击
研究路由表的查找过程
配置局域网访问方式
可变编组动车组制动系统TCN网络信号传输需求研究*
电子政务外网的安全管理研究
内外网隔离条件下如何实现邮件转发
IP 路由技术与RIP 协议探析