1.1 MPLS基础
MPLS(Multiprotocol Label Switching,多协议标签交换)是一种应用于运营商IP骨干网的数据交换技术。其在无连接的IP网络上引入面向连接(即邻居设备间必须先建立某种连接)的标签交换概念,将第三层路由技术和第二层交换技术相结合,充分发挥了IP路由的灵活性和二层交换的简捷性。
MPLS 起源于 IPv4 网络,但目前其核心技术可通过扩展支持多种网络层协议,如IPv6、IPX(Internet Packet Exchange,因特网包交换)和CLNP(Connectionless Network Protocol,无连接网络协议)等,在数据链路层上支持以太网、PPP、HDLC等多种协议,这也就是其名称中“多协议”的含义。
1.1.1 MPLS的起源
20世纪90年代中期,路由器技术的发展远远滞后于网络的发展速度与规模,主要表现在转发效率低下及无法提供QoS保证。其本质原因就是:当时路由查找算法使用最长匹配原则,必须使用软件查找最佳的路由表项。
IP路由转发的依据就是IP路由表项,而IP报文的报头中仅含有“目的IP地址”字段,而没有对应的“子网掩码”字段,所以从IP报文不可直接确定所用的IP路由表项, IP报文的转发需要从当前IP路由表中选择一条最佳的转发路径。这就是IP路由中的“最长匹配原则”,即根据IP报文中的“目的IP地址”选择一个可以匹配,且子网掩码最长(代表最精确)的路由表项来为该IP报文进行转发。选择了IP路由表项才能确定从本地设备转发的出接口和下一跳IP地址,这样的IP路由表项选择是每经过一跳设备都要进行的,所以IP路由转发方式比较消耗资源。加之当初并没有像ASIC这样的集成电路技术,IP路由表项的选择纯粹依据软件系统计算完成,效率比较低。
正因为IP路由转发效率比较低,有人在想是不是可以采用另外一种标识来实现同样的目的,且不用每一跳都经过复杂的计算就可以确定正确的数据转发路径,以提高转发效率。ATM(Asynchronous Transfer Mode,异步传输模式)技术就是其中的杰出代表。ATM 采用定长标签(即信元),并且只需要维护比路由表规模小得多的标签表,就能够提供比IP路由方式高得多的转发性能。也正因如此,当时还出现过IP与ATM竞争的场面。然而 ATM 过于复杂的设计导致没有多少厂商能够完全领会并成功生产所需的软、硬件产品,而且其无法与IP网络很好地融合导致最终没有广泛应用。但ATM仍有可取之处:它首先摒弃了繁琐的路由表查找过程,改为简单快速的标签交换;其次把具有全局意义的路由表改为只有本地意义的标签表。
传统的IP技术简单,且部署成本低。如何结合IP与ATM的优点成为当时的热门话题。MPLS(多协议标签交换)技术就是在这种背景下产生的。MPLS最初的引入背景其实就是为了解决当初仅能依靠软件系统(受制于当时路由器设备的硬件技术落后)进行路由转发而带来的数据转发效率低下的问题。因为,MPLS与传统IP路由方式相比,在数据转发时,MPLS只需在网络边缘分析IP报头,而不用在每一跳都分析IP报头,节约了处理时间,提高了转发效率。
随着ASIC(Application Specific Integrated Circuit)技术的发展,路由查找速度已经不是阻碍网络发展的瓶颈,这使得MPLS在提高转发速度方面不再具备明显的优势。但MPLS的设计者在一开始就充分吸取了IP和ATM的技术精华,将MPLS协议定位在网络体系结构中的第2.5层位置,即位于TCP/IP协议栈中的链路层和网络层之间,用于向IP 层提供连接服务,同时又从链路层得到服务。其“multiprotocol”的设计理念,更使得MPLS协议可以承载多种网络层和链路层协议报文,所以MPLS在VPN、TE(流量工程)和QoS等应用方面变得更加灵活。
1.1.2 MPLS网络结构
MPLS 网络的典型结构如图 1-1 所示,网络中各路由器(也可以是三层交换机)称作LSR(Label Switching Router,标签交换路由器)。由这些LSR构成的网络区域称为MPLS域(MPLS Domain),其中位于MPLS域边缘、连接其他网络(如IP网络)的LSR称为LER(Label Edge Router,边缘路由器),MPLS域内的LSR称为核心LSR(Core LSR)。MPLS 域通常也称 MPLS/IP 骨干网,属于所有用户共享的底层公网,不同用户在这个MPLS公网上可以建立自己的私网,即VPN网络,这就是在配套的《华为MPLS VPN学习指南》一书中所介绍的各种MPLS VPN解决方案,可以是三层VPN(L3VPN,如BGP/MPLS IP VPN),也可以是二层VPN(L2VPN,如VLL、PWE3、VPLS等)。
IP报文在MPLS网络转发过程中所经过的路径称为LSP(Label Switched Path,标签交换路径)。一条LSP可以看成是一条MPLS隧道,专用于一类IP报文的传输。其中的入口LER称为入节点(Ingress);位于LSP中间的LSR称为中间节点(Transit);LSP的出口LER称为出节点(Egress),如图1-1所示。一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和一个出节点。根据LSP的方向,MPLS报文由Ingress发往Egress,则Ingress是Transit的上游节点,Transit是Ingress的下游节点。同理,Transit是Egress的上游节点,Egress是Transit的下游节点。
【经验提示】因为 LSP 是单向的,要实现隧道两端所连网络的互通,仅一个方向的LSP是不行的,还需要建立相反方向、Ingress节点和Egress节点角色互换的LSP。一条LSP代表一条MPLS隧道,这也就是说MPLS隧道也是单向的。所以通常情况下,为了实现最终MPLS网络的互通,需要建立两条相反方向的LSP,即两条相反方向的MPLS隧道。在LER设备上一般要同时进行Ingress和Egress两方面的配置,因为一台LER设备会同时担当Ingress和Egress角色,当然对应不同的LSP。
图1-1 MPLS网络典型结构
MPLS的基本工作过程如图1-2所示。首先MPLS/IP骨干网中的设备会为隧道两端LER上连接的每个公网网段(称之为FEC,转发等价类)建立一条LSP,路径上的每台设备都会为该LSP分配一个用于指导MPLS报文转发的MPLS标签。该MPLS标签又与报文转发的下一跳和出接口相映射,使得MPLS报文在骨干网中传输时可以直接依据各设备上为该报文所分配的MPLS标签进行转发。但MPLS报文上的标签不是固定不变的,而是随着报文的传输,每经过一个设备都需要进行替换,以获得从当前设备向下游节点继续转发报文的路径。所以从本质上讲,MPLS 报文在骨干网中的转发过程实质上就是MPLS报文中MPLS标签的逐跳交换过程。
图1-2 MPLS报文基本转发流程
当IP报文进入MPLS域的LER(此时为入节点)时,首先根据其目的IP地址找到的是其对应的FIB(转发信息表)表项,如果其中的Tunnel ID值不为0,则表示要进行MPLS标签转发(采用IP路由进行转发的表项对应的Tunnel ID值均为0)。
在入节点进行MPLS转发前,需在IP报文的二层协议头和IP报头之间加上一层本地设备为该LSP分配的MPLS标签(L1),然后根据标签L1映射的出接口及下一跳传输给下游的Core LSR。在Core LSR中的MPLS报文的标签也要先用本地设备为该LSP分配的标签(L2)替换MPLS报文中原来的标签(L1),然后再根据新标签L2所映射的出接口及下一跳进行转发(不用按照路由表进行转发)。继续按照同样的方法向下游节点转发,到了MPLS域另一端LER(出节点)时,通常会去掉MPLS报文中的MPLS标签,还原为普通IP报文,按照IP路由方式进行转发。
当然,以上介绍的仅是最基本的 MPLS 报文转发流程,其目的仅是想先让大家对MPLS标签交换的基本设计思想有一个初步了解,详细的转发流程将在1.2节介绍。
1.1.3 MPLS标签
MPLS 标签(MPLS Label)是一个短而定长(这样开销可以很小),且只具有本地意义(无需全网唯一)的整数形式的数字标识符,用于唯一标识一个分组所属的分类(类似于IP路由中的Tag标记),这个分类称之为FEC(Forwarding Equivalence Class,转发等价类)。一个FEC中的分组数据在同一台设备上都将以等价(相同)的方式进行处理,且被分配相同的MPLS标签。
MPLS将具有相同特征的报文归为同一FEC,这个相同“特征”可以根据报文中的源IP地址、目的IP地址、源端口、目的端口、VPN实例、QoS策略等要素中的一个或多个进行划分,但通常是根据目的IP地址基于IP路由表项划分。例如,在传统的采用最长匹配原则的IP路由转发中,采用同一条路由的所有报文就是一个转发等价类FEC。在每台MPLS设备上,每个FEC与MPLS标签之间有一个映射关系,但针对同一FEC,不同设备上分配的标签可以相同,也可以不同。
1.MPLS标签封装
MPLS的应用比较广泛,在不同应用中MPLS标签嵌入的位置不完全相同。在大多数MPLS应用中(包括BGP/MPLS IP VPN、各种VLL和PWE3),MPLS设备从用户端设备接收数据帧后,会在原来数据帧中的二层协议头和三层协议头(通常为IP协议头)之间插入一个或多个MPLS标签(MPLS Lable),如图1-3所示。
图1-3 多数MPLS应用中MPLS标签在报文中封装的位置
在VPLS应用中,MPLS设备从用户端设备接收到数据帧后,会在原来数据帧中的二层协议头和新添加的二层协议头之间插入一层或多层MPLS标签,如图1-4所示。
图1-4 VPLS应用中MPLS标签在报文中封装的位置
说明
有关BGP/MPLS IP VPN、各种VLL、PWE3、VPLS方式的具体工作原理及配置与管理方法请参见《华为MPLS VPN学习指南》一书。
无论是哪种封装方式,一个MPLS标签(在一个MPLS报文中可能有多个MPLS标签)占4个字节(32位),又包括多个子字段,如图1-5所示。具体含义说明如下。
图1-5 MPLS标签结构
Label:20 bit,标签值字段,这是真正的MPLS标签取值部分,该字段的取值范围称之为“标签空间”,具体将在下面介绍。
Exp:3 bit,标识MPLS报文的优先级,即MPLS优先级,取值范围为0~7的整数。数值越小,优先级越低。当设备队列阻塞时,优先发送优先级高的报文。
S:1 bit,栈底标识。因为MPLS支持多层标签,即标签嵌套,为了识别哪个标签是MPLS报文中最后一个标签,用了这样一比特来进行标识。当栈底标签被弹出(剥离)时,则表示报文中不再携带MPLS标签,也就不再是MPLS报文了。S值为1时表明该标签为最底层标签,其他各层标签该位为0。
TTL:8 bit,和IP报文中的TTL(Time To Live)意义相同,用于限制MPLS报文传输的距离,即最多能传输多少跳下游节点,当TTL值为0时,报文不能再下传输。该字段值初始化时有可能是255,也有可能是从IP报头中的TTL字段复制得到的,具体参见本章1.2.4小节。
用于建立LSP隧道的MPLS标签有两种:入标签(In lable)和出标签(Out lable)。针对同一LSP,MPLS报文仅携带一层MPLS标签,可能是入标签(进入本地设备后),也可能是出标签(从本地设备发出时)。所谓“标签交换”是指 MPLS 报文从本地设备发出时,用本地设备为某FEC分配的出标签(也是下游节点为该FEC分配的入标签)替换报文中原来携带的本地设备为该FEC分配的入标签(即上游节点为该FEC分配的出标签),然后从出标签所映射的出接口转发出去。出标签是由下游节点为本地节点针对某FEC而分配的,与下游节点为该FEC分配的入标签一致。
每个属于同一FEC的MPLS报文进入一台设备时都会为该报文打上该设备为此FEC分配的入标签,然后找到与该入标签映射的出标签,继而找到对应的出接口,再把MPLS报文的入标签替换成所映射的出标签,从出接口发送出去。
MPLS标签分发的方向与LSP方向是相反的,如图1-6所示。MPLS标签最初是由目的FEC对应的Egress节点分配的,这时分配的也是某FEC在Egress设备上的入标签,然后再由该 Egress 设备向其上游节点进行通告(发送标签映射消息),上游节点收到这个通告后就把通告中的标签当作本地该FEC的出标签,依此类推。
图1-6 MPLS标签分配基本流程
由此可知,MPLS标签与FR(帧中继)中的DLCI是类似的,也是要求相邻设备间连接的接口所绑定的标签必须相同(即上游节点的出标签与本地设备的入标签必须相同)。所以,实际上,每跳设备仅需要为每个FEC分配一个标签,即入标签,但在Ingress节点可不分配入标签。
图 1-7是一个 MPLS网络中各节点所携带 MPLS标签的示例。在静态 LSP中, MPLS入标签和出标签都是管理员手工配置的,而在由LDP(Label Distribution Protocol,标签分发协议)等协议动态建立的LSP中,MPLS标签是通过LDP协议自动分配的,具体将在本书第3章介绍。
图1-7 MPLS网络中各节点携带的MPLS标签示例
2.MPLS标签栈
如果MPLS报文中封装了多个MPLS标签(如既有LDP LSP标签,又有BGP LSP标签、MPLS CR-LSP标签或VC标签等),就形成了标签栈(Label Stack)。图1-8所示的是一个包含有两个MPLS标签的示意图,靠近二层帧头的标签称为栈顶MPLS标签或外层MPLS标签(Outer MPLS label),此时S位(栈底标识)置0;靠近三层报头的标签称为栈底MPLS标签或内层MPLS标签(Inner MPLS label),此时S位置1。中间还可能有更多层次的MPLS标签。
图1-8 标签栈示意
指导数据转发的仅外层标签(如LSP标签),类似在QinQ中的多层VLAN标签中指导VLAN帧转发的仅外层VLAN标签一样,内层标签通常在MPLS网络传输途中不会发生变化,仅用于在到达出节点时查找报文转发的出接口,如 VC(虚电路)标签。理论上,MPLS标签可以无限嵌套。
在图1-5所示的MPLS标签中的“Lable字段”的取值范围(即标签空间),不同取值的标签用途不一样,具体划分说明如下。
0~15:这是16个特殊标签,具体说明见表1-1。
表1-1 特殊标签说明
16~1023:这是专门分配给静态LSP和应用于MPLS TE中的静态CR-LSP(Constraint-based Routed Label Switched Path,基于约束的路由标签交换路径)共享的标签空间。
1024及以上:这是分配给LDP、RSVP-TE(Resource Reservation Protocol-Traffic Engineering,资源保留协议流量工程)及MP-BGP(MultiProtocol Border Gateway Protocol,多协议边界网关协议)等动态信令协议所分配的标签空间。即动态分配的MPLS标签号只能大于1024。
1.1.4 MPLS体系结构
MPLS要实现标签的分配和交换,必须有一整套功能组件来完成,这就是MPLS的体系架构,如图1-9所示。
总体来说,MPLS体系架构是由控制平面(Control Plane)和转发平面(Forwarding Plane)两部分组成。但在这两部分中,各自又包括了多个子项。
1.控制平面
控制平面用于控制协议报文的转发,其依靠IP路由和MPLS标签两方面来实现,因为MPLS骨干网中的LSR都是三层设备,需要依靠IP路由实现互通,而外部进入到MPLS骨干网的报文又要直接依靠MPLS进行转发,所以LSR的控制平面要同时负责对IP报文和MPLS报文转发的控制。要控制IP报文和MPLS报文转发就需要有产生、维护路由和标签信息的能力,这就是控制平面的基本功能,控制平面包括3个子项,各子项的职责如下。
图1-9 MPLS体系架构
RIB(Routing Information Base,路由信息表):RIB由各种IP路由协议生成,用于进行路由选择。骨干网中MPLS标签的分发、LSP的建立仍必须依据IP路由表,即先按照下面将要介绍的“转发信息表”(FIB)进行MPLS标签分发,建立对应的LSP,然后MPLS域中的设备才可以直接按照标签进行数据转发。
LDP(标签分发协议):LDP是一种动态标签分发协议,负责MPLS标签的动态分发,LFIB(标签转发信息表)的建立,标签交换路径的建立、拆除等工作。使用LDP协议进行标签分发的方向与LSP的方向相反,具体将在本书第3章和第4章介绍。
LIB(Label Information Base,标签信息表):MPLS标签与IP路由中的RIB对应的就是LIB,其由LDP生成,保存了每个标签与对应FEC的映射关系,用于管理MPLS标签信息。LIB中包括的元素有:FEC网段、入标签、出标签、分发出标签的下游节点等,它们之间建立了一一映射关系。
【经验提示】这个 LIB 包括了从本地设备到目的网段所有路径中获取的标签信息,但里面有些LIB表项在当前是无效的,即在当前不用于指导数据转发。类似动态路由协议中的拓扑数据库,拓扑数据库中存在到达某一目的地址的多条路径,但同一时刻一般只有一条是有效的(存在等价路由时可能同时存在多条有效路径)。保存所有标签信息的目的就是方便当网络拓扑结构发生变化时能及时调整LSP。
每个LSR中都会基于所收到的每个FEC的标签映射信息,建立LIB表项。在这些相同或不同LIB表项中,不同标签之间的关系存在以下规则。
所有的入标签必须不同。因为入标签是由本地设备为不同FEC分配的,必须保证每个FEC所分配到的入标签唯一。但为同一FEC分配的入标签必须一致,不管其上游的路径有多少个。
对于下一跳也相同的相同路由,出标签必须相同。因为出标签是由下游节点分配的,当路由也相同(即同一FEC)时,由同一下游节点所分配的出标签必须相同。
对于下一跳相同的不同路由,出标签必须不同。因为这是由同一个下游节点为不同FEC分配的出标签。
对于下一跳也不同的不同路由,出标签可以相同,也可以不同。因为这是不同下游节点为不同FEC所分配的路由,只需要在同一下游节点上保持为每个FEC所分配的入标签唯一即可。
对于同一条路由,入标签和出标签可以相同,也可以不同。同一设备上针对同一FEC上所映射的入标签是由本地设备分配的,出标签是由下游节点分配的,它们之间没有唯一性要求。
2.转发平面
转发平面用于指导报文的转发,即数据平面(Data Plane)。其也包括IP报文转发和MPLS报文转发两个方面,负责构建各种用于指导IP报文、MPLS报文转发的表项。指导报文的转发所需的就是出接口、下一跳这些基本元素。转发平面也包括两个子项,其职责如下。
FIB(Forwarding Information Base,转发信息表):FIB用于指导IP报文转告,是由从RIB提取必要的路由信息生成的,但仅提取当前有效的路由表项信息。当报文离开MPLS域时要按FIB进行转发。
FIB中包括:目的网段、出接口、下一跳IP地址、路由标记、路由优先级等信息。在FIB中的表项都是当前有效的,如果过段时间,到达同一目的地址改变了所使用的路由表项,或者原来对应的路由表项被删除了,则原来的FIB表项也会自动删除,以确保里面的表项都可以在当时用于指导IP报文的转发。
LFIB(Label Forwarding Information Base,标签转发信息表):LFIB用于指导MPLS报文转发,由从LIB中提取必要的信息生成。LFIB中除包括用于指导IP报文转发的目的网段、出接口、下一跳这三个基本元素外,还包括入标签和出标签。当MPLS报文在MPLS域内时需按LFIB进行转发。但MPLS中的LFIB与IP路由中的FIB类似,也仅包括LIB中当前有效的那些标签映射表项。
为了更直观地帮助大家理解以上各表中所包括的主要元素,现举一个简单的示例。如图1-10所示的是一个针对到达FEC 10.0.0.0/8目的网段,在控制平面和转发平面生成的各表项及相互关系的示例。
图1-10 控制平面和转发平面各表项及相互关系示例
1.1.5 LSP简介
通过前面的学习已经知道,LSP是MPLS报文在MPLS网络中转发时经过的路径,可以看作是由报文传输方向各节点为对应FEC分配的MPLS入标签组成的,因为每台设备上为每个FEC分配的入标签是唯一的,并与由下游节点为本地节点上该FEC分配的出标签建立映射关系,所以入标签确定后即可确定唯一的转发路径。LSP仅用于指导报文从 MPLS 骨干网入节点(Ingress)到达出节点(Egress)之间转发的路径,不包括骨干网外的转发,所以LSP可以看成是入节点到出节点之间的通信路径。
LSP是由途经节点分段建立的,路径中各节点上为某FEC建立的LSP串联起来就是对应FEC的整条LSP。各节点上建立的LSP是由入标签,对应映射的出标签以及下一跳来确定转发路径的。像IP路由中从当前节点到达某目的网段可能有多条IP路由路径一样,在MPLS网络中从当前节点到达某FEC也可能会建立多条不同的转发路径(绑定多个不同的出标签、出接口和下一跳),但在同一时刻只有一条路径是最优、有效的。只有这条路径会进入到LFIB中。
MPLS中的LSP可以通过在各节点上静态配置标签来建立,也可以通过一些协议为节点动态分配标签来建立。静态LSP类似于静态路由,需要管理员在每个节点上分别手工配置,动态LSP相当于动态路由,是由标签分配协议为节点动态分配标签。下面分别予以介绍。
1.静态LSP建立
静态LSP是管理员通过手工方式为各个转发等价类(FEC)分配标签而建立的,不需要标签分发协议参与,也不需要IP路由参与(但MPLS网络仍需部署路由,以实现骨干网内各LSR的三层互通)。由于静态LSP各节点上不能相互感知到整个LSP的建立情况,因此静态LSP是一个本地的概念,即本地LSP是否建立成功仅与本地设备对应端口的 MPLS 功能及状态有关。当然,最终还需要途经的各节点都建立好了基于某 FEC 的LSP,才能实现报文在MPLS网络中从入节点正确、成功地转发到出节点。
在静态LSP配置中,对于MPLS域中的不同节点所需配置的标签不一样。
对于入(Ingress)节点只需要配置出标签。
对于中间(Transit)节点需要同时配置入标签和出标签。
对于出(Egress)节点只需要配置入标签。
配置好静态LSP后,就相当于在设备上手动创建好了每个FEC的LIB和LFIB,而且一般情况下,LIB 和 LFIB 中所包括的标签都是完全相同的,因为手工配置方式一般只配置真正用于报文转发的LSP,而不像动态LSP,通过标签分发协议会生成一些当前并无效的LSP。但要注意的是,LSP是单向的,所以如果需要两端能正常通信,源端和目的端的通信需要建立双向 LSP,这两条 LSP 的 Ingress 和 Egress角色是互换的。
静态LSP不使用标签发布协议,不需要交互控制报文,因此消耗资源比较小,适用于拓扑结构简单并且稳定的小型网络。但通过静态方式分配标签建立的LSP不能根据网络拓扑变化动态调整(就像静态路由一样),需要管理员干预。
有关静态LSP的配置方法将在第2章具体介绍。
2.动态LSP
动态LSP是通过标签发布协议(如LDP、MP-BGP、RSVP-TE)动态建立的,但同时也需要IP路由参与,以便按照路由路径在相邻节点间彼此交换针对具体FEC的MPLS标签,实现由下游向上游分发MPLS标签,最终建立LSP的目的。不同的标签发布协议的LSP建立原理不一样,具体将在本书后面各章介绍。
3.标签发布协议
MPLS可以使用以下多种标签发布协议。
(1)LDP
LDP(Label Distribution Protocol,标签分发协议)是专为标签发布而制定的协议,是最常用的标签发布协议。LDP根据IGP(Interior Gateway Protocol,内部网关协议)及BGP(Border Gateway Protocol,边界网关协议)对应的IP路由信息以逐跳方式建立LSP。
有关LDP的具体工作原理和配置方法将在本书第3~4章介绍。
(2)RSVP-TE
RSVP-TE(Resource Reservation Protocol Traffic Engineering,资源预留协议流量工程)是对RSVP(资源预留协议)的扩展,用于建立基于约束路由的LSP(Constraint-based Routed Label Switched Paths,CR-LSP)。其拥有普通LDP LSP没有的功能,如发布带宽预留请求、带宽约束、链路颜色和显式路径等。
有关RSVP-TE的具体工作原理和配置方法将在本书第5~7章介绍。
(3)MP-BGP
MP-BGP(Multiprotocol Border Gateway Protocol,多协议边界网关协议)是在BGP协议基础上扩展的协议。MP-BGP支持为MPLS VPN业务中私网路由和跨域VPN的标签路由分配BGP LSP标签。
有关MP-BGP的具体工作原理和配置方法将在《华为MPLS VPN学习指南》一书中介绍。
1.1.6 MPLS的主要应用
MPLS的应用主要体现在“基于MPLS的VPN”和“基于MPLS的流量工程”这两个方面,下面分别简单介绍。
1.基于MPLS的VPN
传统VPN一般是通过GRE、L2TP、PPTP、IPSec等隧道协议来实现私有网络间数据在公网上的传送,而MPLS LSP是通过标签交换在运营商MPLS/IP骨干网中形成的隧道,数据报文不再经过封装或者加密,在安全性上类似于FR(帧中继)网络的专用网,因此,用MPLS实现VPN具有天然的优势。
另外,MPLS的VPN中的用户设备无需为VPN配置GRE、L2TP等隧道,网络时延被降到最低。基于MPLS的VPN通过LSP也可将运营商IP骨干网所连接的私有网络的不同分支联结起来,形成一个统一的网络,其还支持对不同VPN间的互通控制,实现精确的访问权限控制。
如图1-11所示是一个MPLS VPN的基本结构示意,各部分组成说明如下。
图1-11 MPLS VPN基本结构示意
CE(Customer Edge):用户边缘设备,可以是路由器,也可以是交换机或主机。
PE(Provider Edge):运营商边缘设备,是MPLS/IP骨干网的边缘设备。
P(Provider): MPLS/IP骨干网的核心设备,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护VPN信息。
基于MPLS的VPN有许多种,总体分为L2VPN和L3VPN,L2VPN主要包括VLL (Virtual Leased Line,虚拟专线)、PWE3(Pseudo-Wire Emulation Edge to Edge,端到端伪线仿真)、VPLS(Virtual Private LAN Service,虚拟专用局域网业务);L3VPN主要有BGP/MPLS IP VPN。这几种VPN都将在《华为MPLS VPN学习指南》一书中介绍。
基于MPLS的VPN具有以下特点。
PE负责对VPN用户进行管理,建立各PE间LSP连接及同一VPN用户各分支间路由信息的发布。
PE之间发布VPN用户路由信息通常通过MP-BGP协议实现。
支持不同分支间IP地址复用和不同VPN间互通。
2.基于MPLS的流量工程
传统的IP网络中,路由器选择最短的路径作为路由,不考虑带宽等因素。这样,即使某条路径发生拥塞,也不会将流量切换到其他的路径上。在网络流量比较小的情况下,这种问题不是很严重,但是随着互联网的发展及越来越广泛的应用,传统的最短路径优先的路由的问题暴露无遗。
TE(Traffic Engineering,流量工程)技术可通过动态监控网络的流量和网络单元的负载,实时调整流量管理参数、路由参数和资源约束参数等,使网络运行状态迁移到理想状态,从而优化网络资源的使用,避免负载不均衡导致的拥塞。
为了在大型骨干网络中部署流量工程,必须采用一种可扩展性好、简单的解决方案。MPLS 作为一种叠加模型,可以方便地在物理网络拓扑上建立一个虚拟拓扑,然后将流量映射到这个拓扑上。因此,基于MPLS的流量工程技术应运而生,即MPLS TE。
如图1-12所示,从LSR_1到LSR_7存在两条路径:LSR_1→LSR_2→LSR_3→SR_6→SR_7和LSR_1→SR_2→SR_4→SR_5→SR_6→SR_7,现假设前者的带宽为30Mbit/s,后者的带宽为 80Mbit/s。流量工程可以根据带宽等因素合理地分配流量,从而有效地避免链路拥塞。例如,LSR_1到LSR_7存在两种业务,流量分别为30Mbit/s和50Mbit/s,流量工程可以把前者分配到带宽为30Mbit/s的路径上,将后者分配到带宽为80Mbit/s的路径上。
图1-12 MPLS TE示例
MPLS TE通过建立经过指定路径的LSP进行资源预留,使网络流量绕开拥塞节点,达到平衡网络流量的目的。MPLS TE具备以下优势。
在建立LSP隧道的过程中,可以为某种业务预留资源,以保证服务质量。
LSP隧道有优先级、带宽等多种属性,可以方便地控制LSP隧道的行为。
建立LSP隧道的负荷小,不会影响网络的正常业务。
通过备份路径和快速重路由技术,在链路或节点失败的情况下提供保护。
正是这些优势,使得MPLS TE成为流量工程的最佳方案。通过MPLS TE技术,服务提供商能够充分利用现有的网络资源,提供多样化的服务,同时可以优化网络资源,进行科学的网络管理。有关MPLS TE方面的技术原理、功能配置与管理方法以及应用将在本书第5~7章具体介绍。