兰加兴
摘要:在路由协议IS-IS中,无论是IS-IS自身的路由信息,还是MPLS TE链路带宽信息,均通过三元组TLV封装在链路状态报文LSP中泛洪给邻居。文章提供一种解决方案,通过对MPLS TE链路带宽信息变化情况进行标识,改进现有的路由计算算法,避免了IS-IS在发布MPLS TE链路带宽信息过程中因不必要的路由计算以及计算中的不必要操作引起的网络震荡,提高了路由计算效率。
关键词:IS-IS;MPLS TE;路由计算;网络震荡方法;链路状态 文献标识码:A
中图分类号:TP393 文章编号:1009-2374(2016)21-0010-04 DOI:10.13535/j.cnki.11-4406/n.2016.21.005
1 背景技术
MPLS TE是基于MPLS的流量工程技术,利用MPLS天然的隧道特性,通过建立多条隧道并根据带宽使用情况将报文分配给不同的隧道转发,提高网络资源的有效利用率。
图1是MPLS TE隧道进行负载均衡的示意图。
使用MPLS TE隧道之前,IP报文按照最短路径转发,站点1(Site1)到达站点2(Site2)的IP报文都通过LSRB,而另外一条路径(LERA→LSRD→LSRE→LERC)处于空闲状态。使用MPLS TE隧道之后,在LERA上建立两条到达LERC的TE隧道,一条隧道经过LSRB,另外一条经过LSRD、LSRE到达LERC。这样从站点1到达站点2的报文流量可以通过定义的策略分别引入到这两条TE隧道中进行转发,从而充分利用了网络的带宽,避免网络资源浪费。
MPLS TE由以下四个部分组成:
1.1 信息发布
即将MPLS TE链路带宽信息通过链路状态路由协议(比如IS-IS)的链路状态报文(比如IS-IS的LSP报文)封装后发布到网络中,形成流量工程数据库(Traffic Engineering Database,简称为TED)。
1.2 路径计算
根据网络管理员指定的隧道带宽等条件,由链路状态路由协议,使用流量工程数据库TED中存储的链路带宽等信息在原有最短路径SPF算法基础上增加隧道带宽等条件判断,计算出符合建立隧道条件的最短路径,该算法也称为约束最短路径优先算法(Constraint Shortest Path First algorithm,CSPF)。由于增加了隧道带宽等条件,最早建立的隧道优先使用最短路径的带宽,后续的隧道由于最短路径带宽被之前建立的隧道占用,将使用其他路径建立,这样就保证了不同路径都会被利用,避免网络资源浪费。
1.3 TE隧道建立
MPLS TE信令协议沿着CSPF计算出的路径建立MPLS TE隧道。隧道成功建立之后,通知链路状态路由协议MPLS TE链路带宽信息发生变化(因为带宽被刚建立的TE隧道占用了),链路状态路由协议更新链路状态报文,并泛洪给邻居。
1.4 报文转发
通过流量策略,报文被引入符合规则的不同隧道转发。
IS-IS协议是MPLS TE可用于路径计算的两种链路状态路由协议之一。在IS-IS协议中,所有的路由信息均封装在三元组TLV中并通过LSP报文泛洪给邻居,然后根据一致的LSP报文进行SPF路由计算。在MPLS TE技术中,MPLS TE链路带宽信息也是封装在三元组TLV中并通过LSP报文泛洪给邻居,IS-IS协议进行隧道的CSPF计算也是基于LSP报文进行。
2 现有机制的网络震荡问题
从上文描述可知,无论是IS-IS自身的最短SPF路由计算,还是为MPLS TE进行CSPF路由计算,都是基于LSP报文进行。由于IS-IS自身的最短SPF路由计算不关心MPLS TE链路带宽信息,而为MPLS TE进行的CSPF路由计算则需要MPLS TE链路带宽信息,在现有机制下存在以下缺陷:
第一,MPLS TE任何链路带宽信息变化都会导致LSP报文更新并泛洪给邻居,邻居收到后,首先会触发SPF计算,由于路由信息无变化,因此所进行的SPF计算是多余的,白白浪费设备系统资源;其次会触发MPLS TE隧道的重优化计算(即使用CSPF计算更优的路径)或重试计算(即之前因带宽等条件不满足的隧道重新进行计算),而无论重优化或重试计算只有在可用链路带宽变大或新增链路情况下才有可能成功,否则都是多余的计算,比如链路带宽配置变小或者其他隧道正常建立占用带宽导致可用带宽变小。在存在大量隧道的网络中,这些多余的路由计算可能导致设备处理繁忙、内存不足,从而引发网络震荡。
第二,在规模比较大的网络中,每台设备的LSP报文一般都有多条,而大部分LSP报文只携带SPF或CSPF计算无需关心IP路由信息,然而每次SPF或CSPF计算都要遍历并检索所有的LSP报文,在设备处理压力比较大的情况下,这些多余的操作同样可能导致网络震荡。
综合前面的描述,IS-IS现有机制的缺陷可以总结为一句话:由于无法识别LSP报文携带的MPLS TE链路带宽信息的变化情况,触发了不必要的SPF/CSPF路由计算以及路由计算中的不必要操作,在特定情况下,将导致设备处理繁忙、内存不足,引起网络震荡。
3 避免网络震荡方法的研究
本文描述了一种避免网络震荡的解决方案,该技术方案包括两个方面:
第一,识别MPLS TE链路带宽信息的变化情况,并在LSP报头进行标记。
第二,改进现有SPF/CSPF算法,取消不必要的计算以及计算过程中不必要的操作。
下文分别进行说明:
3.1 MPLS TE链路带宽信息变化标记
3.1.1 在非选举节点LSP报文更新时,根据三元组TLV的内容变化情况,将之识别为以下八种情况:
第一,只包含IP路由TLV,并发生改变。
第二,包含邻居TLV,并且所有邻居TLV均无MPLS TE链路带宽信息,并发生变化。
第三,包含邻居TLV,并且其中一个或多个包含MPLS TE链路带宽信息,链路带宽因隧道建立变小。
第四,包含邻居TLV,并且其中一个或多个包含MPLS TE链路带宽信息,链路带宽因管理员配置变小。
第五,包含邻居TLV,并且其中一个或多个包含MPLS TE链路带宽信息,链路带宽因隧道关闭变大。
第六,包含邻居TLV,并且其中一个或多个包含MPLS TE链路带宽信息,链路带宽因管理员配置变大。
第七,包含邻居TLV,并且其中一个或多个包含MPLS TE链路带宽信息,非链路带宽值发生变化或者路由ID(router-id)TLV发生变化。
第八,其他TLV(除IP路由TLV、邻居TLV、路由ID TLV之外的TLV)发生变化。
3.1.2 定义五种优先级从小到大的标识并复用LSP报头五个比特保留位来表示:IP路由标识、无MPLS TE链路带宽信息标识、MPLS TE链路带宽变小标识、MPLS TE链路带宽变大标识、MPLS TE非链路带宽变化标识。优先级高的标识直接覆盖优先级低的,已经有优先级高或相同的标识,直接跳过,无需设置,同时按以下规则设置标识位:
(1)IP路由标识。符合第一种情况,打上该标识。
(2)无MPLS TE链路带宽信息标识。符合第二种情况,打上该标识,直接覆盖IP路由标识。
(3)MPLS TE链路带宽变小标识。适合第三、四种情况,打上该标识,直接覆盖优先级低的标识。
(4)MPLS TE链路带宽变大标识。适合第五、六种情况,打上该标识,直接覆盖优先级低的标识。
(5)MPLS TE非链路带宽变化标识。适合第七种情况,打上该标识,直接覆盖优先级低的标识。
(6)第八种情况,无需打标识。
3.1.3 对LSP报文封装机制做如下改进:在LSP报文插入或更新TLV时,首先对TLV进行分类,如果是IP路由TLV,则判断是否已经设置了高优先级的标识,如果没有,则设置IP路由标识;如果有,则无需修订;如果是邻居TLV,接着分析判断是否包含链路带宽信息,如无,则设置无MPLS TE链路带宽信息标识,如果有,是否是第一次添加,如果是,则设置MPLS TE非链路带宽变化标识,如果不是第一次添加,则对比前后链路带宽信息和非链路带宽信息,根据变化情况设置MPLS TE链路带宽变大或变小标识或非链路带宽变化标识。路由ID TLV变化直接设置非链路带宽变化标识。LSP报文泛洪给邻居之后,如果报头标识是后面四种,则清零,IP路由标识保留。
图2是LSP报文封装机制改进扩展流程图:
3.2 SPF/CSPF计算算法改进
在现有机制中,IS-IS协议收到邻居的LSP报文之后,分别存入LSP报文状态数据库LSPD和流量工程数据库TED中,然后分别进行SPF/CSPF计算。本文所描述的解决将分别对SPF/CSPF路由计算算法别做如下改进:
3.2.1 SPF。
触发机制改进:判断LSP报文类型,如果是非选举节点的LSP报文,则进一步判断LSP报头标识,如果携带MPLS TE链路带宽变小标识、MPLS TE链路带宽变大标识、MPLS TE非链路带宽变化标识,则直接跳过,无需触发新的SPF计算,其他情况按现有流程处理。
算法改进:在LSP报文遍历时,判断LSP报文类型,如果是非选举节点的LSP报文,则进一步判断LSP报头标识,如果携带IP路由标识,则直接跳过,不遍历具体内容,其他情况按现有流程处理。
图3为SPF算法改进流程图:
3.2.2 CSPF。
触发机制改进:判断LSP报文类型,如果是非选举节点的LSP报文,则进一步判断LSP报头标识,如果携带MPLS TE链路带宽变小标识、无MPLS TE链路带宽信息标识、IP路由标识,则直接跳过,无需触发重优化计算和重试计算,如果携带MPLS TE链路带宽变大标识、MPLS TE非链路带宽变化标识,则需触发重优化计算和重试计算,其他情况按现有流程处理。
算法改进:在LSP报文的遍历过程中,判断LSP报文类型,如果是非选举节点的LSP报文,则进一步判断LSP报头标识,如果携带IP路由标识或无MPLS TE链路带宽信息标识,则直接跳过,不遍历具体内容,其他情况按现有流程处理。
CSPF算法改进流程与SPF算法改进流程类似,这里不再给出改进流程图。
4 结语
综上所述,本文所描述的方法,通过对MPLS TE链路带宽信息变化情况进行识别并标识,改进现有的SPF和CSPF计算算法,避免了IS-IS协议在发布MPLS TE链路带宽信息过程中因不必要的路由计算或计算过程不必要的操作引起的网络震荡,同时也提高了路由计算效率。
参考文献
[1] Eric Osborne,张辉,等.基于MPLS的流量工程(修订版)[M].北京:人民邮电出版社,2012.
[2] ISO/IEC 10589 2002-Intermediate System to Intermediate System Intra-domain routing informationexchange protocol[S].
[3] IETF RFC 1195 1990-Use of OSI IS-IS for Routing in TCP/IP and Dual Environments[S].
[4] IETF RFC 5305 2008-IS-IS Extensions for Traffic Engineering[S].
(责任编辑:黄银芳)