1 MPLS技术背景
MPLS(Multiprotocol Label Switching)是多协议标签交换的简称
所谓多协议是指MPLS 支持多种网络层协议,例如IP、IPv6、IPX等;而且兼容包括ATM 、帧中继、以太网、PPP 等在内的多种链路层技术
所谓标签交换就是对报文附上标签,根据标签进行转发。
随着Internet的迅速发展,为Internet服务提供商(ISP)提供了巨大的商业机会,同时也对其骨干网络提出了更高的要求,人们希望IP网络不仅能够提供电子邮件、上网等服务,还能够提供宽带、实时性业务。ATM曾经是被普遍看好的能够提供多种业务的交换技术,但是由于实际的网络中已经普遍采用IP技术,纯ATM网络已经不可能,现有ATM的使用也一般都是用来用来承载IP。因此就希望IP也能提供一些如ATM一样多种类型的服务。MPLS就是在这种背景下产生的一种技术,它吸收了ATM的VPI/VCI交换一些思想,集成了IP路由技术的灵活性和二层交换的简捷性,在面向无连接的IP网络中增加了MPLS这种面向连接的属性。通过采用MPLS建立“虚连接”的方法,为IP网增加了一些管理和运营的手段。随着网络技术的迅速发展,MPLS应用也逐步转向MPLS流量工程和MPLS VPN等。在IP网中,MPLS流量工程技术成为一种主要的管理网络流量、减少拥塞、一定程度上保证IP网络的QoS的重要工具。在解决企业互连,提供各种新业务方面,MPLS VPN也越来越被运营商看好,成为在IP网络运营商提供增值业务的重要手段。
MPLS是从90 年代中期起新兴的多层交换技术,由IETF(Internet Engineering Task Force,因特网工程任务组)所提出,由Cisco、Juniper等网络设备大厂商所主导。最初MPLS技术是为了提高路由交换设备的转发速度,随着硬件技术和网络处理器的发展,这一优势已经不明显了。但是该技术本身和靠硬件推动提高转发速度是有本质区别的。MPLS是三层路由和二层交换的集合模型],可以在多种第二层媒介上进行标签交换的网络技术。这一技术结合了第二层的交换和第三层路由的特点,第三层的路由在网络的边缘实施,而在MPLS的网络核心采用第二层交换(无需分析IP报文头),即MPLS技术将报文的三层选路和报文的转发分开了。这一点和我们传统的路由器有很大区别,传统的路由器将选路和转发集于一身,在报文路径上的每跳路由器都要先分析IP报文头然后选路然后再转发。这也是为什么采用MPLS技术能够提高转发速度的原因之一。目前出现的“三层交换机“其采用硬件实现了三层的线速转发,但是仍然没有脱离”逐跳选路转发“的思想(只是由硬件完成)。
虽然MPLS 提高转发速率这一优势已经不存在但由于MPLS 将2 层交换和3 层路由技术结合起来的固有优势在解决VPN(虚拟专用网)、CoS(服务分类) 和TE(流量工程) 这些IP 网络的重大问题时具有其它技术无可比拟的地方,因此MPLS 技术获得了越来越多的关注。MPLS的应用也逐步转向MPLS VPN和MPLS 流量工程等。
2 MPLS基本原理
2.1 术语
标签(Label)
是一个比较短的,定长的,通常只具有局部意义的标识,这些标签通常位于数据链路层的数据链路层封装头和三层数据包之间,标签通过绑定过程同FEC相映射,用来识别一个FEC。
转发等价类(FEC)
FEC(Forwarding Equivalence Class)是MPLS中的一个重要概念。MPLS实际上是一种分类转发技术,它将具有相同转发处理方式(目的地相同、使用转发路径相同、具有相同的服务等级等)的分组归为一类,称为转发等价类。一般来说,划分分组的FEC是根据他的网络层目的地址。属于相同转发等价类的分组在MPLS网络中将获得完全相同的处理。
LSR(Label Switching Router)
LSR是MPLS的网络的核心交换机,它提供标签交换和标签分发功能。在MPLS体系文档RFC3031讲到LSR同时是一个有能力转发原始的三层报文(如IP报文或者IPv6报文等)的MPLS节点,对于MPLS在IP的应用,意味着LSR同时有能力执行正常的IP报文转发。
LER(Label Switching Edge Router)
在MPLS的网络边缘,进入到MPLS网络的流量由LER分为不同的FEC,并为这些FEC请求相应的标签;离开MPLS网络的流量由LER弹出标签还原为原始的报文。因此LER提供了流量分类、标签的映射和标签的移除功能。LER一定是LSR,但是LSR不一定是LER。
LSP(Label Switched Path)
标签交换路径。一个FEC的数据流,在不同的节点被赋予确定的标签,数据转发按照这些标签进行。数据流所走的路径就是LSP,是一系列LSR的集合,可以将LSP看做类似穿越MPLS核心网络的一个隧道
Label PUSH
Label PUSH是标签转发的基本动作之一,是组成标签转发信息表的一部分。作用:在于给报文压入一个new label。
PUSH动作,一般用于MPLS域的边缘设备将IP报文转发进入MPLS隧道时,需要压入一个Label进行转发。但在MPLS核心网,MPLS报文转发时,若存在跨域或跨ISP操作时,也需要压入一个Inner label。
Label SWAP
Label Swap是 标签转发的基本动作之一, 是组成标签转发信息表的一部分。作用:在于给Incoming的MPLS报文替换下一跳标签。
具体操作是将欲转发的MPLS报文的外层标签删除,然后压入一层新获得的下一跳标签。
Label POP
Label POP是标签转发的基本动作之一,是组成标签转发信息表的一部分。作用:在于将一个MPLS报文去除标签,以下一层协议转发。
POP动作一般用于MPLS域的边缘设备,当MPLS报文出MPLS域,进入IP转发域时,需要将标签弹出。
2.2 MPLS数据结构
MPLS协议在OSI中的位置
如下图
图2-1
MPLS是一种能承载任意协议数据(IPv4/v6、IPX、ATM、AppleTalk等),能工作在任何链路协议之上(Ethernet、ATM,FR、PPP等),能提供优质QoS保证,能支撑更大规模的网络应用,可以替代IP寻址转发的协议载体。
MPLS是一种比ATM更简单,灵活,更易于扩展的标签交换技术。有人称之为2.5层协议,因为它通常工作在链路层协议之上,网络层IP协议之下。
MPLS标签结构
图2-2
MPLS标签结构总长度为32Bit,其中分为以下几个域段:
Label:一个固定20bit长度的值,用于标识一组报文的转发行为。类似于IP地址,但功能不像IP地址那么单一,标签只是局部有效。
Exp:一个3bit长度的值,用于实现MPLS的QoS,这里可以实现8种优先级,支持语音、视频、数据的不同服务类型,类似于IP的TOS域段。
S:本域段只有1bit长度,用于表示当前标签是否属于标签栈底。1:表示是,0:不是。
TTL:Time-To-Live,8个bit长度的值,用于防止报文传输时的环路,和IP协议中的TTL相同。
标签嵌套格式
图2-3
理论上,标记栈可以无限嵌套,从而提供无限的业务支持能力。一般是2到3层。这是MPLS技术最大的魅力所在。
3 MPLS数据转发原理
图3-1
基本的MPLS网络,如上图所示。MPLS域的数据以标签进行高速交换。从LER到LER,为不同的IPv4域和IPv6域提供快速优质的LSP转发通道。LER负责将IP或ATM报文压入标签,封装称MPLS报文,然后将其投入MPLS隧道。同时LER还负责将MPLS报文的标签弹出,让其转发入IP或ATM域。
3.2 传统IP分组转发
是逐跳查表,然后选路转发。每跳将接收到的IP分组报文,去除链路封装信息,接着使用目的IP地址查选路表,得到输出端口、下一跳和链路封装信息,然后进行链路封装,最后将分组报文发出给下一跳。缺点是在经过的每一跳处,必须进行路由表的最长匹配查找,可能存在多次查找,效率较低。
MPLS最基本功能就是代替IP分组转发,运送IP所要运送的报文达到其目的地。
3.3 MPLS分组转发
标签分配与分发
标签的分配,是根据输出端口和下一跳相同的IP路由的选路信息,划分为一个转发等价类。然后从MPLS标签资源池中,取一个标签(邮票标记),分配给这个转发等价类。同时,节点主机应记录下此个标签和这个IP转发等价类的对应关系。最后将这个对应关系封装成消息报文,通告身边的节点主机。这个通告过程称之为标签的分发。
MPLS标签分组
MPLS标签分组,是将IP分组报文(或其它),封装上定长而具有特定意义的标签,以标签标识此报文为MPLS分组报文。封装标签的方式按照协议栈结构的层次进行,封装的标签应置于分组报文协议栈的栈头。封装了标签的分组报文,就好像贴了邮票的信件一样,它能邮到它的目的地。
MPLS分组转发方式
MPLS分组转发分为三个过程:进入LSP,在LSP中传输,脱离LSP。
1. 进入LSP
进入LSP,是根据IP分组报文的目的IP地址查IP选路表(FIB),此时查到的IP选路表已经和下一跳标签转发表关联。接着从下一跳标签转发表中可以得到,这个IP分组所分配的标签和下一跳地址等,一般输出端口信息是在IP选路表(FIB)中得到。然后将得到的标签封装IP分组报文为MPLS标签分组报文,再根据Qos策略处理EXP,同时处理TTL,最后将封装好的报文送给下一跳。这样IP分组报文就进入了LSP隧道。
2. 在LSP中传输
在LSP中传输,是逐跳使用MPLS分组报文中的协议栈顶的标签(入标签),直接以标签Index方式,查询入标签映射表,得到输出端口信息和下一跳标签转发表的索引,使用其索引查询下一跳标签转发表,可以从中得到标签操作的动作,欲交换的标签和下一跳地址等。如果MPLS分组报文未到达LSP终点,查表得到的标签操作动作一定为SWAP。接着使用查表得到的新标签,替换MPLS分组报文中的旧标签,同时处理TTL和EXP等。最后将替换完标签的MPLS分组报文发送给下一跳。
3. 脱离LSP
脱离LSP,是MPLS分组转发的最后一站。使用MPLS分组报文中的协议栈顶的标签(即入标签),以标签Index方式,直接查询入标签映射表,得到输出端口信息和下一条标签转发表的索引。接着用查到的索引继续查询下一跳标签转发表,从中可以得到标签操作动作PHP或POP和下一跳地址等。具体是PHP,还是POP,主要决定于下一跳标签分发协议是否使能PHP功能。PHP和POP动作,在实现上流程差不多。两个动作都应该删除MPLS分组报文中的标签,同时处理TTL和EXP,接着封装下一跳链路协议,最后将封装好的IP分组报文发给下一跳。
优点:
MPLS分组转发优点,在整个穿越LSP隧道过程中,每一跳的查表使用的是标签,而标签是定长20Bit的值。标签查表是以标签为索引,直接Index线性的标签映射表。在同等算法模型上,使用标签查表比使用IP地址最长比配查表速度要快得多。虽然现在硬件技术先进,ASIC的IP地址最长匹配查表可以和标签查表相媲美,但是要实现同等的数据转发,需要付出更大的硬件成本代价。然而MPLS分组转发的优点,并不仅仅局限于这点。
MPLS并不是一种业务或者应用,它实际上是一种隧道技术,也是一种将标签交换转发和网络层路由技术集于一身的路由与交换技术平台。这个平台不仅支持多种高层协议与业务,而且,在一定程度上可以保证信息传输的安全性。
4 标签分发协议
MPLS作为一个新的网络体系,同样也有其自身的信令协议或者说“路由协议”。MPLS中一个基础的概念就是两个LSR必须对用来在它们之间传输流量的标签的意义达成共识,共识通过一系列过程达到,叫做标签分发协议(Label Distribution Protocol,LDP),通过LDP,一个LSR通知另一个LSR它做出的标签绑定。 MPLS体系结构[RFC3031]把一个标签分发协议定义为一系列过程,通过这些过程一个LSR通知另一个LSR用来在它们之间转发流量的标签的意义。
支持MPLS标签分发的协议
LDP (Label Distribution Protocol)
LDP是MPLS的标签分发协议之一,主要用于建立普通的LSP隧道,提供普通的标签交换业务。
RSVP(Resource Reservation Protocol)
RSVP是MPLS的标签分发协议之一,但它注意用于建立TE的LSP隧道,它拥有普通LDP没有的功能。如发布带宽预留请求、带宽约束、链路颜色和显式路径等。
CR-LDP(Constraint-Based Routing using LDP)
CR-LDP是MPLS的标签分发协议之一,是在LDP基础上扩展的协议,通过引入新的TLV同样支持MPLS TE的相关属性,如显式路径、带宽、亲和属性、优先级与抢占等。
MP-BGP(Border Gateway Protocol)
MP-BGP是在BGP的基础上扩展的协议,引入Community属性,支持VPN路由和标签的分发,用于实现MPLS L3 VPN业务。
PIM
PIM是实现MPLS多播的标签分发协议。
本章所要介绍的标签分发协议是IETF在RFC3036所定义的独立标签分发协议LDP。该LDP协议主要应用于IP的单播转发。利用LDP, LSR们通过把网络层的路由信息直接映射到链路层交换路径,在网络中建立标签交换路径LSP(Label Switch Path)。LDP将FEC(Forwarding Equivalence Class)与它创建的每条LSP联系在一起。LSP相关的FEC决定了哪个分组被映射到该LSP上。LSP在网络中的扩展(或者说延伸)通过每个LSR把一个FEC的入标签和该FEC对应的下一跳的出标签“接合”完成。
4.1 LDP的消息类型
1. 发现(Discovery)消息:用于通告和维护网络中LSR的存在。
2. 会话(Session)消息:用于建立,维护和结束LDP对等实体之间的会话连接。
3. 通告(Advertisement)消息:用于创建、改变和删除特定FEC-标签绑定。
4. 通知(Notification)消息:用于提供消息通告和差错通知。
4.2 LDP会话建立过程
1. 邻居发现
2. 会话发起
3. 会话协商
4. 协商失败处理
5. 会话维持
具体流程见下图:
图4-1
4.3 标签的分配和管理
1. 标签分发方式
下游按需分发标签DOD(Downstream On Demand)
下游自主分发标签DU(Downstream Unsolicited)
2. 标签控制方式
有序方式(Odered)
独立方式(Independent)
3. 标签保留方式
保守方式(Conservative retention mode)
自由方式(Liberal retention mode)
4. 标签拆除方式
标签释放
标签撤销
4.3.1 标签分发方式
DOD(Downstream On Demand)下游按需分发标签:
图4-2
上游向下游发标签映射请求消息,下游收到消息后,根据请求的FEC,从标签资源池中分配标签资源,然后将分得的标签和对应的FEC回应给请求的上游。同时自己记录下这种对应的关系。目前这种分发方式很少使用。
DU(Downstream Unsolicited)下游自主分发标签:
图4-3
上游不需要向下游发标签请求,而是下游主动向上游通过标签映射关系,上游收到后记录标签和FEC的映射关系,同时下游也记录这种映射。 DU方式是目前使用最多的。
4.3.2 标签控制方式
有序方式:
有序方式,是指除LER 以外,LSR必须等收到下游的标签映射,才能向上游发布标签映射。LER是路由的起发点,标签映射最先由它发起。有序控制方式如上图所示。有序控制方式是目前使用最多的方式。
独立方式:
独立方式,是指LSR不需要等到下游的标签映射关系到达,而能独自的向上游分发标签映射。独立方式如上图所示。
4.3.3 标签保留方式
保守方式:
图4-4
保守方式,是指同一条路由存在多个下一跳时,在所有邻居对这条路由的标签映射中,只选择最优的一跳做为标签转发的出口映射,其他的全部丢弃。
优点:节省内存和标签空间。
缺点:当IP路由收敛、下一跳改变时LSP收敛慢。
自由方式:
图4-5
自由方式,是指同一条路由存在多个下一跳时,保留所有邻居对这条路由的标签映射,只选择最优的一跳做为标签转发的出口映射。
优点:当IP路由收敛、下一跳改变时减少了LSP收敛时间。
缺点:需要更多的内存和标签空间。
4.3.4 标签拆除方式
标签释放:
图4-6
上游主动发送标签释放消息通知下游释放某一标签,以后不再使用该标签发送数据,标签释放消息不需要确认消息。
标签撤销:
图4-7
下游向上游发送标签撤消消息通知上游停止使用某个标签时,需要上游路由器发送标签释放消息确认。
4.4 倒数第二跳弹出
PHP是Penultimate Hop Popping的缩写,PHP的意思是下一跳就是MPLS域的边缘设备LER了,LER往下的路由设备可能是IP域,标签转发必须终止于LER设备。但标签终止可以在LER上弹出,也可以在LER的上一跳弹出。如果标签在LER的上一跳弹出,我们称之为PHP。
PHP是一种优化MPLS转发的思想,从报文的整个转发路径和路径节点处理的代价花费来看,对于每一个报文的转发使用PHP,将比使用最后一跳弹出少查询一次ILM表,这就意味着硬件对报文少操作一次,报文处理的延时就更小(不过微乎其微),PHP值得提倡。
PHP的实现是,MPLS分组报文在LER的上一跳,使用入标签查ILM表,得到输出端口信息和NHLFE索引,接着用NHLFE索引查询NHLFE表,得到PHP动作和下一条地址,然后将标签从MPLS分组报文中删除,以IP报文方式发送给LER。LER收到后,再以IP方式查表转发报文。
当收到标签值为3的标签映射信息,就表明自己是倒数第二跳了,转发方式必须以PHP方式进行,标签转发必须终结于自己。
5 锐捷网络MPLS典型配置
5.1 组网需求
要用三台MPLS设备构成的MPLS 网络,任意设备之间都可以建立LSP,运行的路由协议为OSPF。LDP利用OSPF的路由信息建立LSP。
5.2 组网拓扑
图5-1
5.3 配置步骤
LER_A 的配置:
6 MPLS体系发展
目前IETF已经在RFC3031描述了MPLS的体系架构,在基本的MPLS控制信令、 以及在Layer3 MPLS VPN上的应用和QOS方面的应用技术较为成熟,并且出台了相应的标准。Layer2 MPLS VPN 最近几年发展迅速,技术也不断成熟,大多数标准都处于草案阶段,但是由于业界几个主流的厂商的支持,也逐渐形成事实上的标准。MPLS在流量工程方面的应用近几年也迅速发展起来,IETF对其相应的标准和草案更新的比较快,技术也日益成熟。
为了使得技术领域的专业化以及更快的推向应用,IETF在2003年成立了L2VPN的工作组,专门研究VPLS(Virtual Private LAN Service)和VPWS(Virtual Private Wire Service)的技术和应用;在2004年成立了L3VPN的工作组研究L3VPN的技术和应用,MPLS在L3VPN的应用是该工作组研究的一个重要方向。
MPLS工作组继续从事MPLS体系的研究以及MPLS的信令协议,同时也包括MPLS的流量工程方面的应用的研究。
可以说MPLS技术结合了灵活的IP路由和高效的二层交换技术,为无连接的IP网络引入了连接的概念,非常适合在一个基础IP骨干网络上承载多种业务,现在已经在广泛应用在VPN、流量工程和QOS等领域,今后也必将有更大的发展!
更多技术博文
-
全调度以太网(GSE),中国智算网络新标准
GSE网络作为一种全调度以太网技术,专为大规模AI训练集群设计,通过按需调度实现无损性能,提供灵活快速的部署方案,构建开放生态,显著提升智算效率和运维体验。
-
#知识百科
-
-
以太和PON,谁能更好地支撑办公室横向流量业务?
了解以太彩光与PON的区别,解析办公资源共享难题,锐捷极简以太彩光方案助您高效适配办公网,共享打印无压力!
-
#交换机
-
-
场景无线 驱动高效办公!锐捷新一代企业无线办公解决方案全新发布!
面对企业数智化转型中的无线办公网络挑战,锐捷新一代企业无线办公解决方案通过全场景AP、智能调度与云端智能运维等技术,实现网络性能、用户体验与运维效率的全面提升。
-
#无线网
-
#办公网
-
-
以太彩光和PON,运维管理谁技高一筹?
锐捷网络提供极简以太全光方案,简化配置流程,降低学习成本,让全光网络升级更平滑。
-
#交换机
-