MPLS TE技术白皮书
关键词:MPLS,MPLS TE,RSVP TE,CR LDP,CSPF,OSPF TE,IS-IS TE
摘 要:本文介绍了MPLS TE的技术特色和H3C的实现方案,并给出了相关的组网应用。
缩略语:
缩略语 | 英文全名 | 中文解释 |
BFD | Bidirectional Forwarding Detection | 双向转发检测 |
CR LDP | Constraint-based Routing LDP | 基于约束路由的LDP |
CSPF | Constraint-based Shortest Path First | 受约束的最短路径优先算法 |
FEC | Forwarding Equivalence Class | 转发等价类 |
FRR | Fast ReRoute | 快速重路由 |
IGP | Interior Gateway Protocol | 内部网关协议 |
IS-IS | Intermediate System-to-Intermediate System intra-domain routing information exchange protocol | 中间系统到中间系统的域内路由信息交换协议 |
LDP | Label Distribution Protocol | 标签分发协议 |
LSP | Label Switched Path | 标签交换路径 |
L3VPN | Layer 3 VPN | 三层VPN |
L2VPN | Layer 2 VPN | 二层VPN |
MPLS | MultiProtocol Label Switching | 多协议标签交换 |
MPLS TE | MPLS Traffic Engineering | MPLS流量工程 |
OSPF | Open Shortest Path First | 开放路径最短优先 |
RSVP | Resource reSerVation Protocol | 资源预留协议 |
RSVP-TE | RSVP Traffic Engineering extension protocol | RSVP流量工程扩展协议 |
TEDB | Traffic Engineering DataBase | 流量工程数据库 |
TE | Traffic Engineering | 流量工程 |
VPN | Virtual Private Network | 虚拟私有网 |
目 录
2.9.1 自动路由(IGP Shortcut)... 15
2.9.2 转发邻接(Forwarding Adjacency)... 15
2.10 MPLS L3/L2 VPN Over TE. 15
路由器根据传统路由协议计算出的最短路径转发流量,即使某条路径发生拥塞,也不会将流量切换到其他的路径上。在网络流量比较小的情况下,这种问题不是很严重,但是随着Internet的应用越来越广泛,传统的最短路径优先的路由问题暴露无遗。

如图1中所示,假设每条链路的Metric值相同,则从Router A到Router H的最短路径为Router A-Router C-Router G-Router F-Router H。尽管存在Router C-Router D-Router E-Router F-Router H这条路径,但是流量转发只会从最短路径Router A-Router C-Router G-Router F-Router H上经过。这样就有可能形成一条路径Router A-Router C-Router G-Router F-Router H过载,一条链路Router A-Router C-Router D-Router E-Router F-Router H闲置。
可以通过负载分担,即修改Metric值使得到达同一目的地存在多条开销相同路由的方法,解决上述问题。但是这种方法可能会引起其他链路拥塞。在拓扑复杂的网络中,Metric值的调整更加困难,一条链路的改动可能会引起多条路由变动。
通过流量工程,服务提供商可以精确地控制流量流经的路径,从而可以避开拥塞的节点,解决一部分路径过载,另一部路径空闲的问题,使现有的带宽资源得到充分利用。如图2所示,从Router A到Router H存在两条路径:Router A-Router C-Router G-Router F-Router H和Router A-Router C-Router D-Router E-Router F-Router H,前者的带宽为40M,后者的带宽为100M。流量工程可以根据带宽等因素合理地分配流量,从而有效地避免链路拥塞。例如,Router A到Router H存在两种业务,流量分别为40M和70M,流量工程可以把前者分配到带宽为40M的路径上,将后者分配到带宽为100M的路径上。

流量工程关注网络整体性能的优化,其主要目标是方便地提供高效、可靠的网络服务,优化网络资源的使用,优化网络流量。流量工程分两个层面:一是面向流量的,关注如何提高网络的服务质量;二是面向资源的,关注如何优化网络资源的使用,最主要是带宽资源的有效利用。通过实施流量工程,可以减少网络的管理成本,使网络资源充分有效的使用,可以在网络拥塞或者抖动的情况下动态调节资源,同时还可以实现增值服务和附加业务。
流量工程可以通过在IGP上使用重叠模型来实现,如IP over ATM、IP over FR等。重叠模型在网络的物理拓扑结构之上提供了一个虚拟拓扑结构,从而扩展了网络设计的空间,为支持流量与资源控制提供了许多重要功能,可以实现多种流量工程策略。然而,由于协议之间往往存在很大差异,重叠模型在可扩展性方面存在不足。
为了在大型骨干网络中部署流量工程,必须采用一种可扩展性好、简单的解决方案。MPLS TE就是为这一需求而提出的。
MPLS本身具有一些不同于IGP的特性,其中就有实现流量工程所需要的,例如:
l MPLS支持显式LSP路由;
l LSP较传统单个IP分组转发更便于管理和维护;
l CR-LDP可以容易地集成约束路由,实现流量工程的各种策略;
l 基于MPLS的流量工程的资源消耗较其它实现方式更低。
MPLS TE结合了MPLS技术与流量工程,具备以下优势:
l 在建立LSP隧道的过程中,可以预留资源,保证服务质量;
l LSP隧道有优先级、抢占等多种属性,可以方便地控制LSP隧道的行为;
l 通过备份路径和快速重路由技术,在链路或节点失败的情况下,提供保护;
l 建立LSP隧道的负荷小,不会影响网络的正常业务。
正是这些优势,使得MPLS TE成为非常吸引人的流量工程方案。通过MPLS TE技术,服务提供商能够充分利用现有的网络资源,提供多样化的服务。同时可以优化网络资源,进行科学的网络管理。
l 支持静态建立LSP隧道
l 支持显式路径建立LSP隧道
l 支持链路着色
l 支持LSP隧道优先级
l 支持LSP隧道抢占
l 支持LSP隧道的优化
l 支持LSP隧道的备份
l 支持快速重路由
l 支持自动带宽调节
l 支持自动路由发布
l 支持MPLS L2VPN和MPLS L3VPN
类似于在路由中,静态路由不需要路由协议,而是逐跳配置。静态LSP隧道是指不需要动态信令协议(LDP、CR-LDP、RSVP-TE),通过在隧道经过的每个路由器上配置资源、标签等信息,而建立的LSP隧道。这种方式建立的LSP不受信令的影响,只要不删除,一直存在,最为稳定。
通过显式路径技术,可以指定到达某个目的地所必须经过的路径、不经过的路径等。将显示路径作为约束条件,可以动态计算出所规划的LSP路径。

所谓的严格显式路径,就是下一跳与前一跳直接相连。
通过严格显式路径,可以最精确地控制LSP所经过的路径。在图3中,“Router B strict”表示该LSP必须经过Router B,并且Router B的前一跳是Ingress LSR(Router A),“Router C strict”表示该LSP必须经过Router C,并且Router C的前一跳是Router B。

松散方式可以指定路径上必须经过哪些节点,但是该节点和前一跳之间可以存在其他路由器。在图4中,“Router E loose”表示该LSP必须经过Router E,但是Router E与Ingress LSR(Router A)之间可以经过多个路由器,不必直接相连。

严格方式与松散方式可以混合使用。在图5中,“Router B strict”表示该LSP必须经过Router B,并且Router B与Ingress LSR(Router A)必须直接相连;“Router E loose”表示该LSP必须经过Router E,但是Router E与Router B之间可以经过多个路由器,不必直接相连。
通过赋予链路以颜色属性,可以帮助选择链路。每条链路最多支持32种颜色。在指定路径时,可以增加一种颜色的约束,要求所经历的路径是某种颜色,或要求所经历的路径不是某种颜色。

在图6中,LSP要求所经历的路径的颜色不能是Bronze,在进行路径计算时,就会把链路属性为Bronze的链路删掉,然后计算,从而避开这种属性的链路。
LSP隧道有一个建立优先级,一个保持优先级。优先级的范围从0到7,7为最低优先级。需要建立多个LSP隧道的情况下,建立优先级高的LSP隧道优先占有资源、优先建立。当带宽等资源不够时,保持优先级低的、已建立的LSP隧道的带宽资源可能被一个建立优先级高的并且资源不够的LSP隧道抢占。

图7 LSP抢占
图7标明了链路的带宽(假设两个方向的带宽相同),每个链路的Metric值都相同。存在两条TE隧道,Tunnel1:Router A-Router B-Router E,带宽需求为155M,优先级为0;Tunnel2:Router C-Router B-Router F,带宽需求为155M,优先级为7。
假设Router B-Router E的链路down了,Router B通过信令通知Router A链路错误,Router A会计算出新的路径Router A-Router B-Router F-Router E。显然链路Router B-Router F的带宽不够Tunnel1、Tunnel2共同使用,Tunnel2会被抢占。新的Tunnel1建立过程为:
Tunnel2上如果存在流量,这个拆除将会导致流量的丢失。可以通过make-before-break机制,在拆除Tunnel2之前为其建立新的隧道,从而避免流量丢失。
流量工程一个主要的目标就是优化网络上流量的分布。隧道建立之后,可以根据网络上的带宽变化、流量变化、管理策略变化等对已经建立的LSP隧道进行优化。
对于某条隧道而言,当发现更优的路径时进行优化。所谓更优,至少需要满足Metric值小、跳数更小并且不会引起抢占等条件。
在优化时,用户的业务流不中断是非常重要的。即新的LSP隧道必须先建立,业务在旧的LSP隧道被拆除前切换到新的LSP隧道上。在新旧LSP隧道共享的链路上,由于旧的LSP隧道使用的资源不能在新的LSP隧道建立前释放,共享链路上资源不能被重复计算,否则可能会由于资源缺乏而导致新的LSP隧道无法建立。
RSVP-TE信令的SE预留风格能够非常好的解决这个问题,SE预留风格允许新旧的LSP隧道共享资源,使新的LSP隧道不会因为链路资源缺乏而必须等到旧的LSP隧道拆除才能完成。
对于重要的LSP隧道,需要进行备份。可以为一条CR-LSP隧道创建备份的CR-LSP。作为流量保护的一个重要组成部分,在主LSP隧道失败后,系统可以把业务流量切换至备份隧道上,当主CR-LSP恢复时,再把业务切换回来。

图8 LSP及其备份
主隧道LSP是期望的最优的路径,它是隧道备份的对象。主隧道LSP失败后,流量会切换,然后发起重建主隧道LSP。
热备份隧道LSP在主隧道LSP建成之后,发起建立。当主隧道LSP失败消息传到入口路由器后,流量会切换到热备份隧道LSP。当主隧道LSP恢复后,将流量切换回去。
热备份通过建立额外的LSP,消耗成倍的资源,来保证主隧道发生故障时快速进行切换。热备份适用于对时延敏感的业务。
普通备份隧道LSP在主隧道LSP失败消息传到入口路由器后,发起建立。建立成功后,将流量切换到该隧道LSP上。当主隧道LSP恢复后,将流量切换回去。
普通备份中备份隧道和主隧道通过的路径不同,从而绕过可能的失效链路。但是由于没有提早建立备份隧道,普通备份的切换速度较慢,适用于对时延不敏感的业务。
快速重路由(Fast ReRoute),也称为快速恢复(Fast RestorRation),是MPLS TE中用于链路保护和节点保护的机制。
当CR-LSP链路或者节点失效时,在发现失败的节点上进行保护,这样可以允许流量继续从保护链路或者节点的隧道中通过以使得数据传输不至于中断。同时头节点就可以在数据传输不受影响的同时继续发起主隧道的重建。FRR的最终目的就是利用Bypass隧道绕过失败的链路或者节点从而达到保护主路径的功能。FRR快速恢复的时间小于50毫秒,这是一些时延敏感的业务如VoIP等可以容忍的范围。

图9中,主隧道LSP路径为Router A-Router B-Router D-Router F-Router G。隧道Router A-Router C-Router D对节点Router B及对链路Router A-Router B进行保护,隧道Router B-Router C-Router F对节点Router D及对链路Router B-Router D进行保护,隧道Router D-Router C-Router E-Router G对节点Router F及对链路Router D-Router F进行保护。当链路Router B-Router D发生故障后,流量则通过Router A-Router B-Router C-Router F-Router G。

图10 Router B-Router D链路失败后的流量切换
快速重路由需要的时间由两部分组成:
l 一部分是链路/节点失效的检测时间,可以通过硬件检测、BFD或RSVP hello来进行检测。检测的时间相差比较大,SDH/SONET链路失效比GE链路失效检测快,而节点失效检测则比链路失效检测更慢。失效检测速度从高到低依次为硬件检测、BFD检测和RSVP hello检测。
l 另一部分是切换流量的时间,该时间主要由CPU以及系统的负载程度来决定。
FRR的保护是一种临时性措施,因为它可能无法提供足够的带宽等资源,或者会给其他链路带来拥塞。在被保护LSP恢复正常后,FRR将不起作用。
FRR的Bypass隧道不能够提供首尾节点的保护,这种保护可以通过前面介绍的备份LSP来实现。
另外,同时有多个链路/节点失败的情况下,FRR本身也可能失效。
建立LSP隧道时,会为其分配一定的带宽。在基于以往该LSP隧道上的流量统计基础上,自动带宽分配技术允许对该隧道占用的带宽进行调节,这种调节不会影响当前通过隧道的流量。
通过定时(比如5分钟)采样,可以获得在一个采样周期通过该隧道的平均带宽。通过一段时间(比如24小时)的多次采样然后,获得采样的最大值,然后用其作为带宽,发起建立一条新的LSP隧道。建立成功后,将流量切换到新的LSP隧道上,同时拆除原来的LSP隧道;如果建立不成功,则流量继续沿原来的LSP隧道转发,在下一个采样周期结束后再做调节。
为了减少不必要的调节,可以配置调节阈值。只有本次的最大平均带宽与上次的最大平均带宽变化百分比达到一定的阈值,才发起调节。同时,还可以配置带宽的最小值和最大值,所调节的带宽必须在这个范围之内。
自动路由发布包括IGP Shortcut和Forwarding Adjacency两种方式,他们的原理都是使TE Tunnel接口参与IGP SPF计算。在TE Tunnel的头节点,TE Tunnel可以看作他的直连接口,配置合适的Metric,使TE Tunnel远端(TE尾节点后面的网络)在路由表中体现为通过TE Tunnel进行转发,也就是说使用CR-LSP作为出接口。在这种应用中,CR-LSP被看做点到点链路。
在IGP Shortcut应用中,使能此特性的路由器使用CR-LSP作为出接口,但它不将这条链路发布给邻居路由器,因此,其他路由器的路由表中不存在这条路由信息,当然也不能使用。
自动路由是基于单个路由器的,只有入口路由器才可以在IGP计算中利用该TE隧道。比如在图11中,IGP Shortcut只能在IGP计算Router B到其他节点的路由时使用LSP隧道Router B-Router G。而在计算Router A到Router G的路由时,尽管使用LSP隧道Router B-Router G的Metric为20,小于Router A-Router C-Router E-Router G的Metric 30,但是由于Router A不知道该LSP的存在,Router A到Router G的路由计算不能使用该隧道。

使能Forwarding Adjacency特性的路由器在使用CR-LSP作为出接口的同时,为了取得全网最优的路径,也将这条CR-LSP作为一条普通的LSA/LSP发布给邻居路由器,宣告该隧道的存在。通过宣告这个单向的链路,在链路状态数据库中维护这些链路状态。同时为了SPF的双向需求,需要一个从Router G到Router B的链路。从Router A到Router G的IGP路由选择则为Router A-LSP Router B-Router G。
TE也可以支持目前主流的MPLS L3/L2 VPN应用。TE隧道可以作为VPN应用的公网隧道,为VPN用户提供带宽保证。
以下四个功能配合使用,可以实现MPLS TE:
l 信息发布:负责搜集网络信息,通过IS-IS/OSPF TE来实现。
l 路径选择:负责路径的计算,通过CSPF来实现。
l 信令协议:通过RSVP TE或CR-LDP协议建立LSP。
l 数据转发:实现MPLS转发。

图12 MPLS TE实现框架
除了网络的拓扑信息外,流量工程还需要知道网络上各链路和TE相关属性以及负载信息。为此,信息发布功能通过对现有的IGP进行扩展,来发布链路状态信息,包括最大链路带宽、最大可预留带宽、当前预留带宽、链路颜色等。这些承载的信息,借助于IGP得以在网络上泛洪,在需要进行CSPF计算的设备上形成流量工程(TE)使用的链路状态数据库TEDB。和普通OSPF LSDB数据库类似,TEDB数据库中不仅收集了网络拓扑信息,还增加了TE所关心的链路属性,使用TEDB可以监控整个网络中使能了TE功能的链路状态,并通过CSPF算法计算出以自己为根节点的、基于限制的到目的网络的路径。
对于OSPF协议而言,它使用Type 9、10、11三种类型Opaque LSA来承载TE相关的链路属性。接口上的TE相关属性变化会及时通过这三类LSA更新并泛洪到OSPF的其它邻居,最终在每个运行TE的LSR上形成TEDB。通常,使用Type 10类LSA在一个Area内部承载并泛洪扩展的链路属性信息。
同样的,对于标准的IS-IS协议,也对其进行扩展来承载TE所需要的各种信息。IS(Router)通过IS-IS Link State Protocol Data Units(LSPs)发布路由信息,在LSP中增加新的TLV用于承载构建TE Tunnel所用的链路附加信息,例如,TLV Type 22为扩展IS可达TLV;TLV Type 134为TE Router ID TLV;TLV Type 135为扩展IP可达TLV。
通过IGP扩展,在每个路由器上维护网络的链路属性和拓扑属性,并泛洪形成TEDB,利用TEDB,可以计算出满足各种约束的路径。
MPLS TE利用CSPF算法,根据通过IS-IS TE或OSPF TE扩展产生的TEDB,计算符合带宽、颜色、抢占/保持优先级、显示路径等约束条件的路径。
CSPF是一种改进的最短路径优先算法,在计算通过网络的最短路径时,将特定的约束也考虑进去。CSPF基于资源的可用性和所选部分是否违反用户策略约束,在当前拓扑结构中删除不满足条件的节点和链路,然后再通过SPF算法计算出一条满足约束条件的最短路径,包括一组LSR地址。
路径计算的具体过程为:
l 对比TEDB中的每一个链路,裁减不满足带宽和颜色等要求的链路;
l 在剪切以后的拓扑中采用最短路径算法(SPF算法),得到一条满足LSP的约束条件的最短路径;
l 如果仍有多条路径,选择跳数最少的路径;
l 如果仍有多条路径,根据配置的负载分担策略进行选择。
IS-IS或OSPF的SPF计算出来的下一跳就是直接的下一跳,每一个路由器都需要运行SPF算法。而CSPF计算的结果是一条满足约束条件的完全明确的路由,它通常只在需要建立的LSP的入口点(TE的头节点)进行计算。在TE的头节点上,CSPF计算出来的路由被看作逻辑接口,它们可以提供一条到达目的端(TE的尾节点)的LSP,称为TE Tunnels(Traffic Engineering Tunnels,TE隧道)。
MPLS信令协议把CSPF计算出来的完全明确路径通过信令中的明确路径传到下游节点,沿着路径中的LSR建立TE隧道。TE隧道建立成功以后,把需要进入这个TE隧道的IP包在TE隧道入节点打上相应的MPLS标签,沿着TE隧道进行MPLS转发,直到到达TE隧道的出口。
信令协议用来预留资源,建立LSP。Comware支持RSVP-TE和CR LDP两种动态信令协议,还支持静态CR-LSP。RSVP-TE和CR LDP这两种信令都使用DoD模式(下游设备按需分配)进行标签发布。通过信令协议可以实现LSP的建立、显式路由、资源信息携带等功能。
RSVP是为Integrated Service模型而设计的,用于在一条路径的各节点上进行资源预留。RSVP工作在传输层,但不参与应用数据的传送,是一种Internet上的控制协议,类似于ICMP。
RSVP经扩展后可以支持MPLS标签的分发,并在传送标签绑定消息的同时携带资源预留信息,这种扩展后的RSVP称为RSVP-TE,作为一种信令协议用于在MPLS TE中建立LSP隧道,可以实现:
l TE LSP的建立和维护
l TE LSP路径的拆除
l 错误通告
(1) 软状态
“软状态”是指在RSVP中,通过消息的定时刷新来维持节点上保存的资源预留状态。
资源预留状态包括由路径状态(Path State)和预留状态(Reservation State)。这两种状态分别由Path消息和Resv消息定时刷新。对于某个状态,如果连续一定的次数没有收到刷新消息,这个状态将被删除,TE LSP也会被删除。
(2) 资源预留类型
资源预留类型(Reservation Style)是指RSVP-TE协议在建立的LSP时,预留带宽资源的方式。TE LSP使用的资源预留方式,由隧道的首端决定,并通过RSVP协议在路径上的各个节点实现。
Comware支持以下两种预留类型:
l FF(Fixed-Filter style):固定过滤器类型。为每个发送者单独预留资源,不能与同一会话中其他发送者共享资源。