​MPLS概述

2021-04-29 15:56:47 277

MPLS (Multiprotocol Label Switching)多协议标签交换是一种IP骨干网技术。MPLS 位于TCP/IP协议栈中的链路层和网络层之间,用于向IP层提供连接服务,同时又从链路层得到服务。

MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三层路由技术和第二层交换技术相结合,充分发挥了IP路由的灵活性和二层交换的简捷性。多协议指的是可以支持多种网络协议(IPv6、IPX、CLNP等),所以MPLS并不是一种业务或者应用,它是一种隧道技术,它支持多种高层协议与业务,而且在一定程度上可以保证数据传输的安全性。

1.MPLS的产生背景

传统的IP技术简单,且部署成本低,但由于硬件技术存在限制,基于最长匹配算法的IP技术必须使用软件查找路由,转发性能低下。为了适应网络的发展,ATM (Asynchronous Transfer Mode)异步传输模式技术应运而生。ATM采用定长标签(即信元),并且只需要维护比路由表规模小得多的标签表,能够提供比IP路由方式高得多的转发性能。MPLS结合了IP与ATM的优点而产生。

2.MPLS基本网络结构

MPLS基于标签进行转发。

标签交换路由器LSR(Label Switching Router):进行MPLS标签交换和报文转发的网络设备。

MPLS域(MPLS Domain):由LSR构成的网络区域。

边缘路由器LER(Label Edge Router):位于MPLS域边缘、连接其他网络的LSR。

核心LSR(Core LSR):区域内部的LSR。

IP报文进入MPLS网络时,MPLS入口的LER会分析IP报文的内容并且为这些IP报文添加合适的标签,所有MPLS网络中的LSR根据标签转发数据。当该IP报文离开MPLS网络时,标签由出口LER弹出。IP报文在MPLS网络中经过的路径称为标签交换路径LSP(Label Switched Path)。LSP是一个单向路径,与数据流的方向一致。


11.jpg


如上图,LSP的入口LER称为入节点(Ingress);位于LSP中间的LSR称为中间节点(Transit);LSP的出口LER称为出节点(Egress)。一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和一个出节点。根据LSP的方向,MPLS报文由Ingress发往Egress,则Ingress是Transit的上游节点,Transit是Ingress的下游节点。同理,Transit是Egress上游节点,Egress是Transit的下游节点。

3.转发等价类FEC

MPLS将具有相同特征的报文归为一类,称为转发等价类FEC(Forwarding Equivalence Class)。属于相同FEC的报文在转发过程中被LSR以相同方式处理。

FEC可以根据源地址、目的地址、源端口、目的端口、VPN等要素进行划分。例如,在传统的采用最长匹配算法的IP转发中,到同一条路由的所有报文就是一个转发等价类。

4. MPLS的体系结构

MPLS的体系结构如下图所示,它由控制平面(Control Plane)和转发平面(Forwarding Plane)组成。


22.png


1)控制平面:负责产生和维护路由信息以及标签信息。控制平面包括路由信息表RIB、标签分发协议LDP、标签信息表LIB。

-路由信息表RIB:由IP路由协议生成,用于选择路由。

-标签分发协议LDP:负责标签的分配、标签转发信息表的建立、标签交换路径的建立/拆除等工作。

-标签信息表LIB:由标签分发协议生成,用于管理标签信息。

2)转发平面(数据平面):负责普通IP报文的转发以及带MPLS标签报文的转发。转发平面包括转发信息表FIB、标签转发信息表LFIB。

-转发信息表FIB:从RIB提取必要的路由信息生成,负责普通IP报文的转发。

-标签转发信息表LFIB:由标签分发协议LDP在LSR上建立LFIB,负责带MPLS标签报文的转发。

5. MPLS的报文结构


33.jpg


MPLS报文与普通的IP报文相比增加了MPLS报头信息(4个字节),MPLS报头封装在链路层和网络层之间,可以支持任意的链路层协议。

Label:标签值域,20bit。是一个短而定长的、只具有本地意义的标识符,用于唯一标识一个分组所属的FEC。

Exp:用于扩展,3bit。标识MPLS 的优先级,现在通常用做CoS(Class of Service),当设备阻塞时,优先发送优先级高的报文。

S:栈底标识,1bit。MPLS支持多层标签,即标签嵌套。S值为1时表明为最底层标签。

TTL:8bit。与IP报文中的TTL(Time To Live)意义相同,防止报文环路。

6.MPLS对TTL的处理模式

MPLS 对TTL的处理除了用于防止产生路由环路外,也用于实现Traceroute 功能。

RFC3443 中定义了两种MPLS 对TTL 的处理模式:Uniform(统一模式) 和Pipe(管道模式)。

1)Uniform模式:IP报文经过MPLS网络时,在入节点IP TTL减1映射到MPLS TTL字段,此后报文在MPLS网络中按照标准的TTL处理方式处理。在出节点将MPLS TTL减1后映射到IP TTL字段。(此方法可知数据包经过了几跳,缺省情况下,MPLS 对TTL 的处理模式为Uniform)


44.jpg


2)Pipe模式:IP TTL只在入节点和出节点分别减1,而MPLS TTL字段为固定值,按照标准的TTL处理方式处理。(在MPLS VPN应用中,出于网络安全的考虑,需要隐藏MPLS骨干网络的结构,这种情况下,对于私网报文,Ingress上使用Pipe模式。)


55.jpg


7.标签交换路径LSP的建立

MPLS需要为报文事先分配好标签,建立一条LSP,才能进行报文转发。LSP分为静态LSP和动态LSP两种。

1)静态LSP:用户通过手工方式为各个转发等价类分配标签建立转发隧道。

特点:

a)静态LSP各节点上不能相互感知到整个LSP的情况,因此静态LSP是一个本地的概念;

b)静态LSP不使用标签发布协议,不需要交互控制报文,因此资源消耗小,适用于拓扑结构简单并且稳定的小型网络;

c)静态LSP不能根据拓扑变化调整,需要管理员干预。

2)动态LSP:通过标签发布协议动态建立转发隧道。

特点:

a)动态LSP通过LDP协议实现对FEC的分类、对标签的分配以及LSP的建立和维护;

b)动态LSP组网配置简单,易于管理和维护;

c)动态LSP能及时反映网络状态。

8.MPLS的基本转发过程

在MPLS基本转发过程中会涉及到标签压入(Push)、标签交换(Swap)和标签弹出(Pop)等动作。

Push:当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。

Swap:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。

Pop:当报文离开MPLS域时,将MPLS报文的标签剥掉。

在最后一跳节点,标签已经没有使用价值。这种情况下,可以利用倒数第二跳弹出特性PHP(Penultimate Hop Popping),在倒数第二跳节点处将标签弹出,减少最后一跳的负担。最后一跳节点直接进行IP转发或者下一层标签转发。默认情况下,设备支持PHP特性,支持PHP的Egress节点分配给倒数第二跳节点的标签值为3。

以支持PHP的LSP为例,说明MPLS基本转发过程。


66.png


如上图所示,MPLS标签已分发完成,建立了一条LSP,其目的地址为4.4.4.2/32。则MPLS基本转发过程如下:

1)Ingress节点收到目的地址为4.4.4.2的IP报文,压入标签Z并转发。

2)Transit节点收到该标签报文,进行标签交换,将标签Z换成标签Y。

3)倒数第二跳Transit节点收到带标签Y的报文。因为Egress分给它的标签值为3,所以进行PHP操作,弹出标签Y并转发报文。从倒数第二跳转发给Egress的报文以IP报文形式传输。

4)Egress节点收到该IP报文,将其转发给目的地4.4.4.2/32。





提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: