分享

华为MPLS技术:揭开神秘面纱,了解其工作原理

 攻城狮成长日志 2023-10-13 发布于广东

MPLS出现的背景

传统的IP转发采用的是逐跳转发。数据报文经过每一台路由器,都要被解封装查看报文网络层信息,然后根据路由最长匹配原则查找路由表指导报文转发。各路由器重复进行解封装查找路由表和再封装的过程,所以转发性能低

传统IP路由转发的特点:

  • 所有路由器需要知道全网的路由。
  • IP头部不定长,处理效率低。
  • 传统IP转发是面向无连接的,无法提供较好的端到端QoS保证。

MPLS的定义

MPLS位于TCP/IP协议栈中的链路层和网络层之间,用于向IP层提供连接服务,同时又从链路层得到服务。MPLS以标签交换替代IP转发,标签是一个短而定长的、只具有本地意义的连接标识符,与ATM的VPI/VCI以及Frame Relay的DLCI类似。

MPLS不局限于任何特定的链路层协议,能够使用任意二层介质传输网络分组。MPLS起源于IPv4,其核心技术可扩展到多种网络协议,包括IPv6、IPX、Appletalk、DECnet、CLNP等。MPLS中的Multiprotocol指的就是支持多种网络协议。

由此可见,MPLS并不是一种业务或者应用,它实际上是一种隧道技术,在一定程度上可以保证信息传输的安全性。

MPLS基本概念

MPLS术语

  • MPLS域(MPLS Domain)

一系列连续的运行MPLS的网络设备构成了一个MPLS域。

  • LSR(Label Switching Router,标签交换路由器)

支持MPLS的路由器(实际上也指支持MPLS的交换机或其他网络设备)。位于MPLS域边缘、连接其它网络的LSR称为边沿路由器LER(Label Edge Router),区域内部的LSR称为核心LSR(Core LSR)。

  • FEC(Forwarding Equivalence Class,转发等价类)

是一组具有某些共性的数据流的集合,这些数据流在转发过程中被网络节点以相同方式处理。

  • LSP(Label Switched Path,标签交换路径)

是标签报文穿越MPLS网络到达目的地所走的路径。

LSR分类

除了根据LSR在MPLS域中的位置进行分类之外,还可以根据对数据处理方式的不同进行分类:

  • 入站LSR(Ingress LSR):通常是向IP报文中压入MPLS头部并生成MPLS报文的LSR。
  • 中转LSR(Transit LSR):通常是将MPLS报文进行例如标签置换操作,并将报文继续在MPLS域中转发的LSR
  • 出站LSR(Egress LSR):通常是将MPLS报文中MPLS头部移除,还原为IP报文的LSR。

MPLS标签

标签是一个短而定长的、只具有本地意义的标识符,用于唯一标识一个分组所属的FEC。在某些情况下,例如要进行负载分担,对应一个FEC可能会有多个入标签,但是一台LSR上,一个标签只能代表一个FEC。标签长度为4个字节,封装结构如下图所示。

MPLS报文首部结构

标签共有4个域:

  • Label:20bit,标签值域。
  • Exp:3bit,用于扩展。现在通常用做CoS(Class of Service),其作用与Ethernet802.1p的作用类似。
  • BoS:1bit,栈底标识。MPLS支持多层标签,即标签嵌套。S值为1时表明为最底层标签。
  • TTL:8bit,和IP分组中的TTL(Time To Live)意义相同。

标签封装在链路层和网络层之间。这样,标签能够被任意的链路层所支持。标签在分组中的封装位置如下图所示。

标签在分组中的封装位置

MPLS标签栈

MPLS支持一层或多层标签头部,这些标签头部的有序集合被称为标签栈(Label Stack)。

  • 当标签栈中存在多个标签时,这些标签的顺序是非常讲究的:
    • 最靠近二层头部的标签是栈顶标签,标签中的S字段为0。
    • 最靠近IP头部的标签是栈底标签,标签中的S字段为1。

标签空间

标签是一个短而定长的、只具有本地意义的标识符。标签空间就是指标签的取值范围。标签值的范围及规划如下:

标签值描述
0~15特殊标签值。例如0被定义为IPv4显式空标签(IPv4 Explicit NULL Label),标签值3被定义为隐式空标签(Implicit NULL Label)
16~1023用于静态LSP、静态CR-LSP的共享标签空间
1024~1048575LDP、RSVP-TE、MP-BGP等动态信令协议的标签空间;动态信令协议的标签空间不是共享的,而是独立且连续的,互不影响

MPLS标签的处理

标签栈按后进先出方式组织标签,从栈顶开始处理标签

标签的操作类型包括标签压入(Push)标签交换(Swap)标签弹出(Pop),它们是标签转发的基本动作,是标签转发信息表的组成部分。

  • Push:指当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。
  • Swap:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。
  • Pop:当报文离开MPLS域时,将MPLS报文的标签去掉;或者MPLS倒数第二跳节点处去掉栈顶标签,减少标签栈中的标签数目。
MPLS标签的处理

MPLS的工作原理

MPLS个工作原理主要包含两部分内容:

  • MPLS的体系结构是指运行MPLS的单个设备内部的独立工作原理。
  • MPLS的网络结构是指运行MPLS的多个设备互连的联合工作原理。

MPLS的体系结构

MPLS的体系结构由控制平面(Control Plane)和转发平面(Forwarding Plane)组成:

  • 控制平面是无连接的,主要功能是负责标签的分配、LFIB(标签转发表,Lable Forwarding Information Base)的建立、 LSP(标签交换路径,Label Switched Path)的建立、拆除等工作。
  • 转发平面也称为数据平面(Data Plane),是面向连接的,可以使用ATM、Ethernet等二层网络承载,主要功能是对IP包进行标签的添加和删除,同时依据标签转发表对收到的分组进行转发。
MPLS体系结构示意图使用

MPLS转发平面建立以后,设备中已经生成了IP转发表和标签转发表,就可以对于接收到的数据包进行转发,其过程如下图

MPLS转发数据包过程示意图

LSP建立原则

  • 当网络层协议为IP协议时,FEC所对应的路由必须存在于LSR的IP路由表中,否则该FEC的标签转发表项不生效
  • LSR用标签标识指定FEC,所以该FEC的数据被发送至LSR时,必须携带正确的标签,才能被LSR正确的处理。

LSP建立方式

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

静态LSP

  • 静态LSP是用户通过手工为各个FEC分配标签而建立的。
  • 静态LSP不使用标签发布协议,不需要交互控制报文,因此消耗资源比较小。
  • 通过静态方式建立的LSP不能根据网络拓扑变化动态调整,需要管理员干预。

动态LSP

  • 动态LSP通过标签发布协议动态建立
  • 标签发布协议是MPLS的控制协议(也可称为信令协议),负责FEC的分类、标签的分发以及LSP的建立和维护等一系列操作。

MPLS标签转发

LSR处理报文时主要根据FTNNHLFEILM

  • FTN
    • FTN(FEC-to-NHLFE):当LSR收到IP报文并需要进行MPLS转发时使用,FTN只在Ingress存在。
    • FTN包括:Tunnel ID、FEC到NHLFE的映射信息。
  • NHLFE
    • 下一跳标签转发表项(Next Hop Label Forwarding Entry):LSR对报文(MPLS或IP报文)进行MPLS转发时使用,NHLFE在IngressTransit存在
    • NHLFE包括:Tunnel ID、出接口、下一跳、出标签、标签操作类型等信息。
  • ILM
    • 入标签映射(ILM,Incoming Label Map):用于指导MPLS报文的转发(MPLS或IP转发),ILM只在Transit和Egress存在。
    • ILM包括:Tunnel ID、入标签、入接口、标签操作类型等信息。
MPLS标签转发
Ingress LSR的处理

当IP报文进入MPLS域时:

  1. Ingress LSR查看FIB表,检查目的IP地址对应的Tunnel ID值是否为0x0(如果Tunnel ID值为0x0,则进入正常的IP转发流程)。
  2. 如果Tunnel ID值不为0x0,根据FIB表的Tunnel ID找到对应的NHLFE表项,将FIB表项和NHLFE表项关联起来。
  3. 查看NHLFE表项,可以得到出接口、下一跳、出标签和标签操作类型。
  4. 在IP报文中压入出标签,同时处理TTL,然后将封装好的MPLS报文发送给下一跳。
Transit LSR的处理

当MPLS报文在MPLS域转发时:

  1. Transit LSR根据MPLS的标签值查看对应的ILM表,得到Tunnel ID。
  2. 根据ILM表的Tunnel ID找到对应的NHLFE表项。
  3. 查看NHLFE表项,得到出接口、下一跳、出标签和标签操作类型,标签操作类型为Swap,则交换标签。
Egress LSR的处理

当MPLS报文需要离开MPLS域时:

  1. Egress根据ILM查询到该标签对应的操作为Pop,说明需要剥离该标签
  2. 根据当前标签头部的下一层报文头部进行下一步处理

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多