MPLS TE技术白皮书
Copyright © 2021 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
路由器根据传统路由协议计算出的最短路径转发流量,即使某条路径发生拥塞,也不会将流量切换到其他的路径上。在网络流量比较小的情况下,这种问题不是很严重,但是随着Internet的应用越来越广泛,传统的最短路径优先的路由问题暴露无遗。
如图1所示,假设每条链路的Metric值相同,则从Device A到Device H的最短路径为Device A-Device C-Device G-Device F-Device H。尽管存在Device A-Device C-Device D-Device E-Device F-Device H这条路径,但是流量转发只会从最短路径Device A-Device C-Device G-Device F-Device H上经过。这样就有可能形成一条路径Device A-Device C-Device G-Device F-Device H过载,一条链路Device A-Device C-Device D-Device E-Device F-Device H闲置。
可以通过负载分担,即修改Metric值使得到达同一目的地存在多条开销相同路由的方法,解决上述问题。但是这种方法可能会引起其他链路拥塞。在拓扑复杂的网络中,Metric值的调整更加困难,一条链路的改动可能会引起多条路由变动。
通过流量工程,服务提供商可以精确地控制流量流经的路径,从而可以避开拥塞的节点,解决一部分路径过载,另一部路径空闲的问题,使现有的带宽资源得到充分利用。如图2所示,从Device A到Device H存在两条路径:Device A-Device C-Device G-Device F-Device H和Device A-Device C-Device D-Device E-Device F-Device H,前者的带宽为40M,后者的带宽为100M。流量工程可以根据带宽等因素合理地分配流量,从而有效地避免链路拥塞。例如,Device A到Device H存在两种业务,流量分别为40M和70M,流量工程可以把前者分配到带宽为40M的路径上,将后者分配到带宽为100M的路径上。
流量工程关注网络整体性能的优化,其主要目标是方便地提供高效、可靠的网络服务,优化网络资源的使用,优化网络流量。流量工程分两个层面:一是面向流量的,关注如何提高网络的服务质量;二是面向资源的,关注如何优化网络资源的使用,最主要是带宽资源的有效利用。通过实施流量工程,可以减少网络的管理成本,使网络资源充分有效的使用,可以在网络拥塞或者抖动的情况下动态调节资源,同时还可以实现增值服务和附加业务。
流量工程可以通过在IGP上使用重叠模型来实现,如IP over ATM、IP over FR等。重叠模型在网络的物理拓扑结构之上提供了一个虚拟拓扑结构,从而扩展了网络设计的空间,为支持流量与资源控制提供了许多重要功能,可以实现多种流量工程策略。然而,由于协议之间往往存在很大差异,重叠模型在可扩展性方面存在不足。
为了在大型骨干网络中部署流量工程,必须采用一种可扩展性好、简单的解决方案。MPLS TE就是针对这一需求而提出的。
MPLS本身具有一些不同于IGP的特性,其中就有实现流量工程所需要的,例如:
· MPLS支持显式LSP路由;
· LSP较传统单个IP分组转发更便于管理和维护;
· 基于MPLS的流量工程的资源消耗较其它实现方式更低。
MPLS TE结合了MPLS技术与流量工程,具备以下优势:
· 在建立LSP隧道的过程中,可以预留资源,保证服务质量;
· LSP隧道有优先级、抢占等多种属性,可以方便地控制LSP隧道的行为;
· 通过备份路径和快速重路由技术,在链路或节点失败的情况下,提供保护;
· 建立LSP隧道的负荷小,不会影响网络的正常业务。
正是这些优势,使得MPLS TE成为非常吸引人的流量工程方案。通过MPLS TE技术,服务提供商能够充分利用现有的网络资源,提供多样化的服务。同时可以优化网络资源,进行科学的网络管理。
CRLSP(Constraint-based Routed Label Switched Paths,基于约束路由的LSP)是基于一定约束条件建立的LSP。与普通LSP不同,CRLSP的建立不仅依赖路由信息,还需要满足其他一些条件,比如带宽需求、显式路径等。
可以通过静态方式、动态方式或PCE方式建立CRLSP。
MPLS TE隧道是从头节点到目的节点的一条虚拟点到点连接。通常情况下,MPLS TE隧道由一条CRLSP构成。在部署转发路径备份或需要将流量通过多条路径传输等情况下,需要为同一种流量建立多条CRLSP,在这种情况下,MPLS TE隧道由一组CRLSP构成。
头节点上MPLS TE隧道由MPLS TE模式的Tunnel接口标识。当流量的出接口为Tunnel接口时,该流量将通过构成MPLS TE隧道的CRLSP来转发。
静态建立CRLSP是指在流量经过的每一跳设备上(包括Ingress、Transit和Egress)分别手工指定入标签、出标签、流量所需的带宽等信息,从而建立满足约束条件的CRLSP。该方式的优点是配置简单,缺点是不能根据网络的变化动态调整建立的CRLSP。
动态建立CRLSP是指根据链路状态信息计算出路径后,通过标签分发协议(如RSVP-TE)通告标签,并在经过的节点上为流量预留所需的带宽资源,从而建立满足约束条件的CRLSP。该方式的优点是能根据网络的变化动态调整建立的CRLSP,且支持CRLSP备份、快速重路由等功能,缺点是配置复杂。
采用动态方式建立CRLSP时,MPLS TE需要实现如下功能:
· 发布包含链路TE属性的信息,以便根据这些信息选择满足约束条件的路径。
· 计算出到达某个节点的满足TE属性要求的最短路径。
· 通过标签分发协议沿着计算出的路径建立CRLSP,并预留资源。
除了网络的拓扑信息外,流量工程还需要知道网络上各链路的TE相关属性以及负载信息。为此,需要对现有的IGP进行扩展,来发布链路状态信息,包括最大链路带宽、最大可预留带宽、当前预留带宽、亲和属性等。这些TE相关信息通过IGP在网络上泛洪,在需要进行CSPF计算的设备上形成流量工程(TE)使用的链路状态数据库TEDB。TEDB数据库中不仅收集了网络拓扑信息,还增加了TE所关心的链路属性,使用TEDB可以监控整个网络中使能了TE功能的链路状态,并通过CSPF算法计算出以自己为根节点的、基于限制的到目的网络的路径。
对于OSPF协议而言,它使用Opaque Type 10 LSA携带链路的TE属性信息。接口上的TE相关属性变化会及时通过这类LSA更新并泛洪到OSPF的其它邻居,最终在每个运行TE的LSR上形成TEDB。
同样的,对于标准的IS-IS协议,也对其进行扩展来承载TE所需要的各种信息。IS(Router)通过IS-IS Link State Protocol Data Units(LSPs)发布路由信息,在LSP中增加新的TLV用于承载TE相关的链路属性。如,TLV Type 22携带wide类型的开销值;TLV Type 134携带TE Router ID;TLV Type 135携带可达的IP信息。
MPLS TE利用CSPF算法,根据通过IS-IS TE或OSPF TE扩展产生的TEDB,计算符合带宽、亲和属性、抢占/保持优先级、显式路径等约束条件的路径。
(1) 带宽
带宽要求是指经过MPLS TE隧道的流量所属的服务类型及其所需的带宽。只有链路上针对流量所属服务类型的可预留带宽大于等于流量所需带宽时,该链路才满足带宽约束条件。
(2) 亲和属性
MPLS TE隧道的亲和属性和链路的属性配合,决定了该隧道可以使用哪些链路。
链路属性、亲和属性、亲和属性的掩码都是32位的二进制数。如果希望某条链路能够被隧道所用,则需要满足如下要求:
¡ 对于掩码为1的位,亲和属性为1的位中链路属性至少有1位也为1,亲和属性为0的位对应的链路属性位不能为1。
¡ 对于掩码为0的位,不对链路属性的相应位进行检查。
例如,亲和属性为0xFFFFFFF0,掩码为0x0000FFFF,则可用链路的链路属性高16位可以任意取0或1,17~28位中至少有1位为1,且低4位不能为1。
(3) 建立和保持优先级
¡ 优先级
LSP隧道有一个建立优先级和一个保持优先级。优先级的范围从0到7,7为最低优先级。需要建立多条LSP隧道的情况下,建立优先级高的LSP隧道优先占有资源、优先建立。当带宽等资源不够时,保持优先级低的、已建立的LSP隧道的带宽资源可能被一个建立优先级高的LSP隧道抢占。
¡ 抢占
图3 LSP抢占
如图3所示,标明了链路的带宽(假设两个方向的带宽相同),每条链路的Metric值都相同。存在两条TE隧道,Tunnel1:Device A-Device B-Device E,带宽需求为155M,优先级为0;Tunnel2:Device C-Device B-Device F,带宽需求为155M,优先级为7。
假设Device B-Device E的链路down了,Device B通过信令通知Device A链路故障,Device A会计算出新的路径Device A-Device B-Device F-Device E,链路Device B-Device F的带宽不够Tunnel1、Tunnel2共同使用,Tunnel2会被抢占,新的Tunnel1会优先建立。
(4) 显式路径
通过显式路径技术,可以指定到达某个目的地所必须经过的路径、不能经过的路径等。将显式路径作为约束条件,可以动态计算出所规划的LSP路径。
¡ 严格显式路径
严格显式路径是指定必须经过哪些节点,并且指定的下一跳与前一跳必须直接相连。通过严格显式路径,可以最精确地控制MPLS TE隧道所经过的路径。
如图4所示,“Device B strict”表示该CRLSP必须经过Device B,并且Device B的前一跳是Ingress LSR(Device A),“Device C strict”表示该LSP必须经过Device C,并且Device C的前一跳是Device B。
¡ 松散显式路径
松散显式路径是指定必须经过哪些节点,并且指定的下一跳和前一跳之间可以存在其他节点。通过松散显式路径,可以模糊地限制MPLS TE隧道所经过的路径。
如图5所示,“Device E loose”表示该LSP必须经过Device E,但是Device E与Ingress LSR(Device A)之间可以经过多个路由器,不必直接相连。
¡ 严格与松散混合
严格显式路径和松散显式路径还可以配合使用,即在显式路径中部分节点之间必须直接相连,部分节点之间可以存在其他节点。
如图6所示,“Device B strict”表示该LSP必须经过Device B,并且Device B与Ingress LSR(Device A)必须直接相连;“Device E loose”表示该LSP必须经过Device E,但是Device E与Device B之间可以经过多个路由器,不必直接相连。
¡ 路径中排除节点
显式路径除了可以指定必须经过的节点外,还可以指定显式路径不能经过的节点,以便更加灵活地控制MPLS TE隧道所经过的路径。
如图7所示,“Device B exclude”表示该LSP不能经过Device B;“Device F exclude”表示该LSP不能经过Device F。Device A到达Device H的路径为Device A-Device C-Device E-Device G-Device H。
CSPF是一种改进的最短路径优先算法,在计算通过网络的最短路径时,将特定的约束也考虑进去。CSPF基于资源的可用性和所选部分是否违反用户策略约束,在当前拓扑结构中删除不满足条件的节点和链路,然后再通过SPF算法计算出一条满足约束条件的最短路径,包括一组LSR地址。
路径计算的具体过程为:
(1) 对比TEDB中的每一条链路,裁减不满足带宽和亲和属性等要求的链路;
(2) 在剪切以后的拓扑中采用最短路径算法(SPF算法),得到一条满足LSP约束条件的最短路径;
(3) 如果仍有多条路径,选择跳数最少的路径;
(4) 如果仍有多条路径,根据配置的负载分担策略进行选择。
IS-IS或OSPF的SPF计算出来的下一跳就是直接的下一跳,每一个路由器都需要运行SPF算法。而CSPF计算的结果是一条满足约束条件的完全明确的路由,它通常只在需要建立LSP的入口节点(TE的头节点)进行计算。
Comware支持RSVP-TE动态信令协议。RSVP-TE使用DoD模式(下游设备按需分配)进行标签发布。通过RSVP-TE信令协议实现资源预留和LSP建立等功能。
RSVP采用Integrated Service模型,用于在一条路径的各节点上进行资源预留。RSVP工作在传输层,但不参与应用数据的传送,是一种Internet上的控制协议,类似于ICMP。
RSVP经扩展后可以支持MPLS标签的分发,并在传送标签绑定消息的同时携带资源预留信息,这种扩展后的RSVP称为RSVP-TE。RSVP-TE作为一种信令协议,用于在MPLS TE中建立LSP隧道,可以实现:
· CRLSP的建立和维护
· CRLSP路径的拆除
· 错误通告
RSVP-TE使用RSVP的消息类型,并进行了扩展。RSVP使用以下消息类型:
· Path消息:由发送者沿数据报文传输的方向向下游发送,在沿途所有节点上保存路径状态。
· Resv消息:由接收者沿数据报文传输的方向逆向发送,在沿途所有节点上进行资源预留的请求,并创建和维护预留状态。
· PathTear消息:此消息产生后马上向下游发送,并立即删除沿途节点的路径状态和相关的预留状态。
· ResvTear消息:此消息产生后马上向上游发送,并立即删除沿途节点的预留状态。
· PathErr消息:如果在处理Path消息的过程中发生了错误,就会向上游发送PathErr消息,PathErr消息不影响沿途节点的状态,只是把错误报告给发送者。
· ResvErr消息:如果在处理Resv消息的过程中发生了错误,或者由于抢占导致预留被破坏,就会向下游节点发送ResvErr消息。
· ResvConf消息:该消息发往接收者,用于对预留消息进行确认。
RSVP-TE对RSVP消息的扩展主要是在Path消息和Resv消息中增加了新的对象。新增对象除了可以携带标签信息外,还可以携带在沿途寻找路径时的限制信息,从而实现对约束条件和快速重路由的支持。
Path消息新增的对象包括:
· LABEL_REQUEST:用来请求下游节点分配标签。
· EXPLICIT_ROUTE:用来携带Ingress节点计算出的路径信息,确保沿着该路径建立CRLSP。
· RECORD_ROUTE:用来记录CRLSP实际经过的路径及各个节点分配的标签。
· SESSION_ATTRIBUTE:用来携带MPLS TE隧道的属性信息,如建立优先级、保持优先级、亲和属性等。
Resv消息新增的对象包括:
· LABEL:用来将下游节点分配的标签通告给上游节点。
· RECORD_ROUTE:用来记录CRLSP实际经过的路径及各个节点分配的标签。
图8 使用RSVP-TE建立CRLSP的示意图
如图8所示,使用RSVP-TE建立CRLSP隧道的过程可以简单描述为:
(1) 在Ingress上依据TE隧道所配置的约束,如带宽约束、亲和属性、显式路径等条件,CSPF计算出CRLSP隧道所要经过的路径。
(2) Ingress LSR产生携带相应带宽预留信息和路径信息的Path消息,依据计算的路径向Egress LSR方向发送。Path消息经过的LSR,都依据Path消息生成路径状态。
(3) Egress LSR收到Path消息后,产生携带预留信息和标签的Resv消息,沿Path消息发送的相反路径逐跳返回到Ingress LSR。同时,Resv消息在沿途的LSR上预留资源,并生成预留状态,生成标签交换路径。
(4) 当Ingress LSR收到Resv消息时,CRLSP建立成功。
采用RSVP-TE建立的CRLSP具有资源预留功能,沿途的LSR可以为该CRLSP分配一定的资源,使在此CRLSP上传送的业务得到保证。
(1) Refresh消息
由于RSVP是软状态协议,因此需要定时发送消息来维护节点上的资源预留状态。
资源预留状态包括路径状态和预留状态,分别保存在如下状态块中:
¡ PSB(Path State Block,路径状态块):由Path消息创建,用来保存LABEL_REQUEST对象。
¡ RSB(Reservation State Block,预留状态块):由Resv消息创建,用来保存LABEL对象。
路径状态和预留状态分别由周期性发送的Path消息和Resv消息来刷新。对于某个状态,如果在一定时间内没有收到刷新消息,则PSB或RSB中相应的状态将被删除,根据该状态建立的CRLSP也将被删除。
用来刷新资源预留状态的Path和Resv消息,统称为Refresh消息。Refresh消息除了刷新资源预留状态外,还可以用于恢复丢失的RSVP消息。
由于Refresh消息是周期性发送的,当网络中的RSVP会话比较多时,Refresh消息会加重网络负担,此时Path和Resv消息的刷新时间间隔不易过小;而对于时延敏感的应用,当RSVP消息丢失时,希望能够尽快通过Refresh消息恢复丢失的消息,此时Path和Resv消息的刷新时间间隔不易过大。简单地调整刷新间隔并不能同时解决这两类问题。
Srefresh(Summary Refresh,摘要刷新)和RSVP消息的可靠传递功能可以很好地解决上述问题。
(2) 摘要刷新功能
摘要刷新功能的工作机制为:发送Path和Resv消息时,在消息中携带Message ID,用来唯一标识一个消息;RSVP通过发送携带待刷新消息Message ID的Srefresh消息,来刷新对应的Path和Resv消息。
采用摘要刷新功能后,不必传送标准的Path和Resv消息,只需传递携带Path和Resv消息摘要的Srefresh消息,即可实现对RSVP路径和预留状态进行刷新,减少了网络上的Refresh消息流量,并加快了节点对刷新消息的处理速度。
(3) RSVP消息的可靠传递功能
RSVP消息没有重传机制,消息丢失后发送端无法获悉,无法重传丢失的消息。通过RSVP消息的可靠性传递功能可以提高消息传递的可靠性。
RSVP消息的可靠传递功能是指对端设备需要应答本端发送的RSVP消息,否则将会重传此消息。其工作机制为:节点发送了携带Message_ID对象的消息,且Message_ID对象的ACK_Desired标识(是否需要应答标识)置位后,如果在重传时间Rf内没有收到携带对应Message_ID_ACK对象的消息,则重传时间Rf超时后重传此消息,并将重传时间置为(1+Delta)×Rf。节点持续按照上述方法重传此消息,直到节点在重传时间超时前接收到对应的应答消息,或消息传送次数达到3次。
在MPLS TE网络中,作为PCC(Path Computation Client,路径计算客户端)的LSR需要获取到达目的地的CRLSP路径时,向PCE(Path Computation Element,路径计算单元)发起路径计算请求,PCE执行路径计算后对该请求进行应答,并提供计算后的路径。PCC根据PCE计算后的路径使用RSVP-TE建立CRLSP。
· PCE:网络中的一个实体,用于为网络上的设备提供路径计算服务,可进行区域内的路径计算,也可在复杂的网络环境中计算完整的CRLSP路径,比如,在区域间的ABR上部署PCE,用来计算跨区域的CRLSP。PCE分为以下两种类型:
¡ Stateless PCE(Stateless Path Computation Element,无状态PCE):该类型PCE仅提供路径计算服务。
¡ Stateful PCE(Stateful Path Computation Element,有状态PCE):该类型PCE掌握了网络内所有PCC维护的CRLSP信息,可以重新计算和优化域内的CRLSP,以达到最大程度分配和使用网络资源的目的。Stateful PCE包括Active-Stateful PCE(Active-Stateful Path Computation Element,主动有状态PCE)和Passive-Stateful PCE(Passive-Stateful Path Computation Element,被动有状态PCE)两种类型。被动有状态PCE仅维护PCC的CRLSP信息,不能接受PCC的CRLSP托管并对CRLSP进行优化;主动有状态PCE可以接受PCC的CRLSP托管并对CRLSP进行优化。
· PCC:请求PCE执行路径计算,并根据PCE返回的路径信息建立CRLSP。PCC缺省为Stateless PCC(Stateless Path Computation Client,无状态PCC)。如果PCE为Stateful PCE,PCC也需要为对应的Stateful类型,即Active-Stateful PCC(Active-Stateful Path Computation Client,主动有状态PCC)和Passive-Stateful PCC(Passive-Stateful Path Computation Client,被动有状态PCC)。
· PCEP(Path Computation Element Protocol,路径计算单元通信协议):运行于PCC与PCE之间、或者PCE与PCE之间的通信协议,用于建立PCEP会话,交互PCEP消息。该协议基于TCP。
PCE的发现有两种方式:
· 静态指定:在PCC上静态指定PCE。
· 动态发现:通过OSPF TE通告PCE信息,使得网络上的其它LSR可自动发现PCE。
PCE路径计算有两种方式:
· EPC(External Path Computation,外部路径计算):此方式由单台PCE独立完成CRLSP的计算,通常用于区域内的路径计算。
· BRPC(Backward-Recursive PCE-Based Computation,反向递归路径计算):此方式通过多台PCE配合完成CRLSP的计算,通常用于跨区域的路径计算。
下面以BRPC为例介绍PCE的路径计算过程。如图9所示,两台ABR分别被配置为PCE 1和PCE 2。PCE 1可计算Area 0和Area 1内的路径,PCE 2可计算Area 0和Area 2内的路径。当PCC需要获取到达Area 2的CRLSP路径时,路径计算步骤为:
(1) PCC向PCE 1发起路径计算请求。
(2) PCE 1收到该请求后,发现无法计算Area 2内路径,则继续向PCE 2发起到达Area 2的路径计算请求。
(3) PCE 2应答该请求,并提供到达Area 2的路径。
(4) PCE 1收到PCE 2的应答后,汇总路径信息,并对PCC的路径请求进行应答,提供到达Area 2的路径。
(5) PCC根据PCE计算后的路径使用RSVP-TE建立CRLSP。
当MPLS TE隧道建立之后,流量不会自动通过MPLS TE隧道转发,需要通过如下方法配置流量沿MPLS TE隧道转发。
使用静态路由转发流量,是指在MPLS TE隧道的头节点定义一条到达目的网络地址、通过TE Tunnel接口的静态路由,以便将流量引入到TE Tunnel上进行转发。
静态路由是将流量引入MPLS TE隧道的最简便、直观的方法。该方法的缺点是:如果多个目的网络的流量都需要引入到MPLS TE隧道上,则需要配置多条静态路由,配置和维护难度比较大。
策略路由指定是指在MPLS TE隧道的头节点定义策略路由,在策略路由中将匹配ACL规则的流量的出接口指定为Tunnel接口,并在流量的入接口上应用该策略路由,从而实现将流量引入到MPLS TE隧道上进行转发。
策略路由方式不仅可以根据目的IP地址来匹配需要通过Tunnel接口转发的流量,还可以根据源IP地址、协议类型等来匹配流量。与静态路由方式相比,策略路由方式更加灵活,但是配置比较复杂。
自动路由发布是指将MPLS TE隧道发布到IGP(OSPF或IS-IS)路由中,让MPLS TE隧道参与IGP路由的计算,使得流量可以通过MPLS TE隧道转发。自动路由发布方式的配置和维护都比较简单。
自动路由发布包括以下两种方式:
· IGP Shortcut:也称为自动路由宣告(AutoRoute Announce),该功能将MPLS TE隧道当作一条直接连接隧道Ingress节点(头节点)和Egress节点(尾节点)的链路,在隧道的Ingress节点上进行IGP路由计算时考虑该MPLS TE隧道。
· 转发邻接:该功能将MPLS TE隧道当作一条直接连接隧道Ingress节点和Egress节点的链路,通过IGP路由协议将该链路发布到网络中,以便网络中的节点在路由计算时使用MPLS TE隧道。
IGP Shortcut和转发邻接功能的区别在于:
· 在隧道的Ingress节点上开启IGP Shortcut功能后,只有Ingress节点计算IGP路由时会考虑MPLS TE隧道。IGP Shortcut功能不会通过IGP路由协议将MPLS TE隧道作为一条链路发布出去。因此,其他设备在路由计算时不会考虑MPLS TE隧道。
· 在隧道的Ingress节点上开启转发邻接功能后,Ingress节点会通过IGP路由协议将MPLS TE隧道作为一条链路发布出去。因此,IGP网络中的所有设备在路由计算时都会考虑MPLS TE隧道。
图10 IGP Shortcut与转发邻接示意图
如图10所示,Device D到Device C之间存在一条MPLS TE隧道,IGP Shortcut只能使Ingress节点Device D在计算IGP路由时利用这条隧道,Device A并不能利用这条隧道到达Device C。如果配置了转发邻接功能,则Device A也能够知道这条MPLS TE隧道的存在,从而可以利用该隧道将到Device C的流量转发到Device D上。
make-before-break是一种在尽可能不丢失数据,也不占用额外带宽的前提下改变MPLS TE隧道的机制。
在隧道重优化、自动带宽调整等情况下,如果在新的CRLSP建立之前拆除旧的CRLSP,则会导致流量转发中断。通过make-before-break机制可以确保新CRLSP建立、并将流量切换到新的CRLSP后,再拆除旧CRLSP,从而有效地避免流量转发中断。此时,存在的问题是:如果新的CRLSP和旧CRLSP部分路径相同,则在这些路径上需要重复为新旧CRLSP预留带宽,造成带宽资源的浪费。make-before-break机制采用SE资源预留风格解决这个问题。
资源预留风格是RSVP-TE协议在建立CRLSP时预留带宽资源的方式。MPLS TE隧道使用的资源预留风格由隧道的Ingress节点决定,并通过RSVP协议通知给各个节点。
目前,设备支持以下两种资源预留风格:
· FF(Fixed-Filter,固定过滤器):为每个发送者单独预留资源,同一会话中的不同发送者不能共享资源。
· SE(Shared-Explicit,共享显式):为同一个会话中的不同发送者预留同一个资源,不同发送者之间可以共享资源。该方式主要用于make-before-break。
在图11中,假设需要建立一条Device A到Device D的CRLSP,保留30M带宽,起初建立的路径是Device A-Device B-Device C-Device D。
现在希望将带宽增大为40M,Device A-Device B-Device C-Device D路径不能满足要求。而如果选择Device A-Device E-Device C-Device D,则Device C-Device D需要同时预留30M和40M带宽,也存在带宽不够的问题。
采用make-before-break机制,新建立的CRLSP在Device C-Device D可以共享原CRLSP的带宽,不需要为新CRLSP和旧CRLSP重复预留带宽。新CRLSP建立成功后,流量切换到新CRLSP上,之后拆除原CRLSP,从而有效地避免了流量中断。
路由固定是指CRLSP创建成功后,即使路由发生变化,也不重新选择最优路径,而是沿用已创建的CRLSP。
在路由变化频繁的网络中,如果不希望CRLSP随着路由频繁变化,则可以通过本功能确保只要已建立的CRLSP可用就不重新创建CRLSP。
流量工程一个主要的目标就是优化网络上流量的分布。隧道建立之后,可以根据网络上的带宽变化、流量变化、管理策略变化等对已经建立的CRLSP隧道进行优化。
在优化时,用户的业务流不中断是非常重要的,即新的CRLSP隧道必须先建立,业务在旧的CRLSP隧道被拆除前切换到新的CRLSP隧道上。在新旧CRLSP隧道共享的链路上,由于旧的CRLSP隧道使用的资源不能在新的CRLSP隧道建立前释放,共享链路上资源不能被重复计算,否则可能会由于资源缺乏而导致新的CRLSP隧道无法建立。
RSVP-TE信令的SE预留风格能够非常好地解决这个问题。SE预留风格允许新旧的CRLSP隧道共享资源,使新的CRLSP隧道不会因为链路资源缺乏而必须等到旧的CRLSP隧道拆除才能建立。
通常情况下,用户最初不能确定有多少业务需要通过服务提供商的网络传输。因此,服务提供商需要具备这样一种功能:能在最初时为用户请求的带宽建立MPLS TE隧道;当用户业务增多时,能够根据用户的业务量自动调整分配给MPLS TE隧道的带宽,这种调整不会影响当前通过隧道的流量。
自动带宽调整功能的工作机制为:
(1) 设备定时地对隧道的出口速率进行采样,计算采样时间间隔内的平均出口速率;
(2) 自动带宽调整时间间隔到达后,将隧道的带宽设置为该时间间隔内多次采样中的最大平均出口速率;
(3) 根据调整后的隧道带宽建立新的CRLSP;
(4) CRLSP建立成功后,将流量从旧的CRLSP切换到新的CRLSP,并拆除旧的CRLSP。
为了减少不必要的调整,用户可以指定允许调整到的最大带宽值和最小带宽值。如果自动带宽调整计算出的隧道带宽大于最大值,则采用最大带宽值建立新的CRLSP;如果小于最小带宽值,则采用最小带宽值建立新的CRLSP。
CRLSP备份是指通过备份CRLSP对主CRLSP进行保护。如图12所示,当Ingress感知到主CRLSP故障时,将流量切换到备份CRLSP上,当主CRLSP路径恢复后再将流量切换回来,以实现对主CRLSP的备份保护。
图12 CRLSP及其备份
主CRLSP是期望的最优的路径,它是CRLSP备份的对象。主CRLSP故障后,直接将流量切换至备份CRLSP,并重新建立主CRLSP。
热备份CRLSP在主CRLLSP建成之后,发起建立。当主CRLSP故障后,流量会切换到热备份CRLSP。当主CRLLSP恢复后,将流量切换回去。
热备份通过建立额外的CRLSP,消耗成倍的资源,来保证主CRLSP发生故障时快速进行切换。热备份适用于对时延敏感的业务。
普通备份CRLSP在主CRLSP故障后,发起建立。建立成功后,将流量切换到该CRLSP上。当主CRLLSP恢复后,将流量切换回去。
普通备份中备份CRLSP和主CRLSP通过的路径不同,从而绕过可能的失效链路。但是由于没有提前建立备份CRLSP,普通备份的切换速度较慢,适用于对时延不敏感的业务。
FRR(Fast Reroute,快速重路由)是MPLS TE中实现网络局部保护的技术。FRR的切换速度可以达到50ms,能够最大程度减少网络故障时数据的丢失,以满足时延敏感业务(如VoIP)的需求。。
开启FRR功能后,当CRLSP链路或者节点失效时,通过保护链路或者节点的Bypass隧道继续转发流量,以保证数据传输不中断。头节点在数据传输不受影响的同时继续发起主CRLSP的重建。FRR的最终目的就是利用Bypass隧道绕过失效的链路或者节点,从而达到保护主路径的目的。
· 主CRLSP:被保护的CRLSP。
· Bypass隧道:旁路隧道,保护主CRLSP中某条链路或某个节点的MPLS TE隧道。
· PLR(Point of Local Repair,本地修复节点):Bypass隧道的Ingress节点,必须在主CRLSP的路径上,并且不能是主CRLSP的Egress节点。
· MP(Merge Point,汇聚点):Bypass隧道的Egress节点,必须在主CRLSP的路径上,并且不能是主CRLSP的Ingress节点。
根据保护的对象不同,FRR分为链路保护和节点保护两类。
又称为Next-hop(NHOP)保护。PLR和MP之间有直接链路连接,主CRLSP经过这条链路。当这条链路失效时,流量可以切换到Bypass隧道上。如图13所示,主CRLSP是Device A-Device B-Device C-Device D,Bypass隧道是Device B-Device F-Device C。
图13 FRR链路保护示意图
又称为Next-next-hop(NNHOP)保护。PLR和MP之间通过一台设备连接,主CRLSP经过这台设备。当这台设备失效时,流量可以切换到Bypass隧道上。如图14所示,主CRLSP是Device A-Device B-Device C-Device D-Device E,Bypass隧道是Device B-Device F-Device D,Device C是被保护的设备。
图14 FRR节点保护示意图
FRR的切换时间由两部分组成:
· 一部分是链路/节点失效的检测时间,可以通过硬件检测、BFD或RSVP hello来进行检测。失效检测速度从高到低依次为硬件检测、BFD检测和RSVP hello检测。
· 另一部分是切换流量的时间,该时间主要由CPU以及系统的负载程度来决定。
FRR的保护是一种临时性措施,因为它可能无法提供足够的带宽等资源,或者会给其他链路带来拥塞。在被保护LSP恢复正常后,FRR将不起作用。
FRR的Bypass隧道不能够提供首尾节点的保护,这种保护可以通过前面介绍的CRLSP备份来实现。
另外,同时有多个链路/节点失败的情况下,FRR本身也可能失效。
DiffServ作为一种QoS解决方案,其主要实现机制是对流量按照服务类型(class of service)进行划分,基于服务类型提供不同的QoS保证。而MPLS TE作为流量工程解决方案,主要用于对网络资源的使用进行优化。
DiffServ-Aware TE,简称DS-TE,结合上述两者的优势,能够基于按服务类型划分的流量进行网络资源优化,即对不同的服务类型进行不同的带宽约束。概括来说,DS-TE将不同服务类型的流量与CRLSP进行映射,使流量经过的路径符合对其服务类型的流量工程约束条件。
目前,Comware支持两种DS-TE模式:
· 自定义的Prestandard模式
· 根据RFC 4124、RFC 4125、RFC 4127实现的IETF模式
· CT(Class Type,服务类型):流量所属的业务类别,用来实现对不同的流量进行分类。DS-TE根据业务流所属的CT为其分配链路带宽、实施约束路由及进行准入控制。对于一个给定的业务流,在其经过的所有链路上,该业务流都属于相同的CT。
· BC(Bandwidth Constraint,带宽约束):用来对各种服务类型流量所能使用的带宽进行限制。
· 带宽约束模型(Bandwidth Constraint Model):用来实现对不同CT的业务流进行带宽约束的算法。带宽约束模型由两部分内容决定:最大BC数目、BC与CT的对应关系。DS-TE支持三种带宽约束模型RDM(Russian Dolls Model,俄罗斯套娃模型)、MAM(Maximum Allocation Model,最大分配模型)和Extended-MAM(Extended Maximum Allocation Model,扩展的最大分配模型)。
· TE class:CT及优先级的组合。如果流量属于某个CT,则传输该流量的MPLS TE隧道的建立优先级或保持优先级必须是该CT对应的优先级。
Prestandard模式和IETF模式具有如下区别,请根据服务类型的数量、所需带宽约束模型等选择合适的DS-TE模式。
· Prestandard模式支持2个CT(CT 0和CT 1),8种优先级,最大支持16个TE class;IETF模式支持8个CT(CT 0~CT 7),8种优先级,最大支持16个TE class。
· Prestandard模式下不可以通过配置改变TE class;IETF模式下可以通过配置改变TE class。
· Prestandard模式只支持RDM模型;IETF模式支持RDM模型、MAM模型和Extended-MAM模型。
· Prestandard模式为自定义模式,无法与所有厂商设备互通;IETF模式为根据RFC标准实现的模式,可以与其他厂商设备互通。
根据流量的服务类型建立MPLS TE隧道的过程如下:
(1) 判断流量所属的CT
设备上根据配置实现不同业务流量的分类:
¡ 对于动态建立的MPLS TE隧道,在隧道接口下执行mpls te bandwidth命令,可以配置通过该隧道接口的流量所属的CT。
¡ 对于静态建立的MPLS TE隧道,配置静态隧道时,可以通过bandwidth参数指定通过该静态隧道转发的流量所属的CT。
(2) 检查CT对应的BC中是否存在足够的带宽
用户可以在接口下通过mpls te max-reservable-bandwidth命令,配置该接口的带宽限制。设备根据流量所属的CT及接口的带宽限制,判断是否存在足够的带宽为该流量建立MPLS TE隧道。
不同带宽约束模型下,BC与CT的关系不同:
¡ RDM:限制多种服务类型流量(CT)的共用带宽,允许多种CT间共享使用带宽,而不是限制某一种CT的带宽。如图15所示,以三个CT(CT 0、CT 1和CT 2)为例,BC 2为CT 2的带宽限制,即属于CT 2流量的带宽总和不能超过BC 2;BC 1为CT 2和CT 1两种业务的带宽限制,即属于CT 2和CT 1流量的带宽总和不能超过BC 1;BC 0为CT 2、CT 1和CT 0三种业务的带宽限制,即属于CT 2、CT 1和CT 0流量的带宽总和不能超过BC 0。在RDM中,BC 0即为链路的最大可预留带宽。RDM与建立优先级/保持优先级配合,可以实现CT间的带宽隔离。RDM比较适用于属于CT的流量不平稳、可能存在突发流量的情况。
图15 RDM带宽约束模型示意图
¡ MAM:限制某一CT在接口上占用的带宽总和,即隔离CT之间的带宽使用。如图16所示,以三个CT(CT 0、CT 1和CT 2)为例,BC 0为CT 0的带宽限制,即属于CT 0流量的带宽总和不能超过BC 0;BC 1为CT 1的带宽限制,即属于CT 1流量的带宽总和不能超过BC 1;以此类推。并且,属于CT 0、CT 1和CT 2流量的带宽总和不能超过最大可预留带宽。MAM不需要与建立优先级/保持优先级配合,就可以实现CT间的带宽隔离。MAM的特点是比较直观,配置较为容易。MAM比较适用于属于CT的流量较为平稳、不存在突发流量的情况。
¡ Extended-MAM:和MAM模式类似,Extended-MAM限制某一CT在接口上占用带宽总和,CT间不共享带宽。与MAM模型不同,Extended-MAM支持8个CT,即CT 0~CT 7,且支持在一条LSP上为多个CT预留带宽。Extended-MAM支持16个TE Class,前8个TE Class的默认映射与MAM模型相同,后8个TE Class为CT0与优先级0~7的映射,对应TE Class [8]~TE class[15],且不支持用户配置。
图16 MAM/Extended-MAM带宽约束模型示意图
(3) 检查流量是否与已经存在的TE class匹配
根据服务类型建立MPLS TE隧道时,还需要检查流量所属的CT及LSP的建立优先级/保持优先级是否与已经存在的TE class匹配。要想为该流量建立隧道,必须同时满足下面两个条件:
¡ 隧道经过的节点上都存在与流量所属CT、LSP建立优先级匹配的TE class;
¡ 隧道经过的节点上都存在与流量所属CT、LSP保持优先级匹配的TE class。
CBTS(Class-based Tunnel Selection,基于服务类型的隧道选择)有别于传统的隧道选择方式,它基于流量的隧道转发类选择相对应的隧道进行转发,以便根据业务的不同提供不同的转发服务。
CBTS工作原理为:
(1) 在设备入方向上通过流行为指定流量所属的隧道转发类。
(2) 配置隧道的隧道转发类(Service-class属性),与隧道转发类匹配的流量可以通过该隧道转发。
CBTS的优选规则为:
· 设备会优先选择与流量的隧道转发类值相同的隧道转发该流量。
· 如果存在多条与流量的隧道转发类值相同的隧道,只有一条流且为逐流转发则随机选择一条隧道转发;有多条流或者一条流但是为逐包转发,则相同转发类的隧道进行负载分担。
· 如果没有与流量的隧道转发类值相同的隧道,则选择隧道转发类值最小的隧道转发流量,未配置隧道转发类的隧道转发类值最小。
图17 CBTS示意图
如图17所示,隧道的选择原则为:
· 从Device A到Device B隧道转发类值为3的流量通过Tunnel2转发。
· 从Device A到Device B隧道转发类值为6的流量通过Tunnel3转发。
· 从Device A到Device B未配置隧道转发类的流量通过Tunnel1转发。
当设备上存在到达同一目的地的多条等价隧道时,设备在转发去往该目的地的报文时,依次通过各条隧道发送报文,从而实现流量的负载分担。在Tunnel接口下配置隧道非均衡负载分担带宽值,可以使得到达同一目的地址的多条等价MPLS TE隧道能够按照指定的负载分担比例转发流量,更好地满足业务的需求和资源的整合。例如,到达某一目的地址存在三条等价隧道:Tunnel1、Tunnel2和Tunnel3,这三条隧道的非均衡负载分担带宽值分别为10000kbps、10000kbps和20000kbps,则三条隧道承担的到达此目的地址的流量比重分别为1/4、1/4和1/2。
如果网络中两点间的不同业务要求不同的带宽保证,可以通过部署到同一目的地的多条TE隧道,实现为每种业务提供独立的带宽保证。
如图18所示,在Ingress和Egress之间存在数据和语音两种业务,通过建立TE隧道分别为两种业务提供服务。Tunnel 2所在的链路为低延迟链路,可以使用Tunnel 2为语音业务提供带宽保证;其他数据业务通过Tunnel 1转发,避免数据与语音经过相同的路径造成拥塞。
通过FRR对网络中的关键节点或链路进行保护,从而实现对通过关键节点的流量的保护。
如4.2 图19所示,运营商使用MPLS TE隧道接入用户,使异地的用户网络通过运营商网络连接。因为承载业务为重要的业务,因此需要对主CRLSP Tunnel1经过的路径进行保护。利用MPLS TE FRR,可以实现通过保护路径Tunnel2、Tunnel3、Tunnel4和Tunnel5分别保护主CRLSP路径上的Device B、Device C、Device D和Device E。
CRLSP备份用于端到端的路径保护,对整条CRLSP提供保护。
如4.3 图20所示,为CRLSP 1建立备份路径CRLSP 2,当检测到CRLSP 1发生故障时,可以将通过CRLSP 1的流量切换到备份路径CRLSP 2上,实现对整条CRLSP 1路径的保护。
图20 CRLSP备份组网
建立的域内或跨域的TE隧道可以应用于MPLS VPN。
如图21和图22,对于MPLS L2VPN/L3VPN,TE隧道作为其公网隧道可以为其提供带宽保证。TE隧道也可以将不同VPN业务隔离到不同的隧道中,提供不同的带宽保证和QoS服务。
图22 VPN over TE组网(跨域)
· RFC 2702:Requirements for Traffic Engineering Over MPLS
· RFC 3564:Requirements for Support of Differentiated Service-aware MPLS Traffic Engineering
· RFC 3812:Multiprotocol Label Switching (MPLS) Traffic Engineering (TE) Management Information Base (MIB)
· RFC 4124:Protocol Extensions for Support of Diffserv-aware MPLS Traffic Engineering
· RFC 4125:Maximum Allocation Bandwidth Constraints Model for Diffserv-aware MPLS Traffic Engineering
· RFC 4127:Russian Dolls Bandwidth Constraints Model for Diffserv-aware MPLS Traffic Engineering
· ITU-T Recommendation Y.1720:Protection switching for MPLS networks
· RFC 4655:A Path Computation Element (PCE)-Based Architecture
· RFC 5088:OSPF Protocol Extensions for Path Computation Element Discovery
· RFC 5440:Path Computation Element (PCE) Communication Protocol (PCEP)
· RFC 5441:A Backward-Recursive PCE-Based Computation (BRPC) Procedure to Compute Shortest Constrained Inter-Domain Traffic Engineering LSP
· RFC 5455:Diffserv-Aware Class-Type Object for the Path Computation Element Communication Protocol
· RFC 5521:Extensions to the Path Computation Element Communication Protocol (PCEP) for Route Exclusions
· RFC 5886:A Set of Monitoring Tools for Path Computation Element (PCE)-Based Architecture
· draft-ietf-pce-stateful-pce-07