0x01 MPLS

MPLS(Multiprotocol Label Switching)位于TCP/IP 协议栈中的链路层和网络层之间,用于向IP层提供连接服务,同时又从链路层得到服务。MPLS以标签交换替代IP转发。

MPLS 并不是一种业务或者应用,它实际上是一种隧道技术。这种技术不仅支持多种高层协议与业务,而且在一定程度上可以保证信息传输的安全性。

传统的IP技术简单,且部署成本低,但由于硬件技术存在限制,基于最长匹配算法的IP技术必须使用软件查找路由,转发性能低下。为了适应网络的发展,ATM(Asynchronous Transfer Mode)技术应运而生。ATM采用定长标签(即信元),并且只需要维护比路由表规模小得多的标签表,能够提供比IP路由方式高得多的转发性能。如何结合IP与ATM的优点成为当时热门话题。多协议标签交换技术MPLS(Multiprotocol Label Switching)就是在这种背景下产生的。

mpls 6PE原理 mpls技术原理_mpls 6PE原理


MPLS优势与应用

  1. MPLS转发速度快,因为IP在路由当中,总是根据目的地址在路由表中查找目标网段,并且逐条匹配最优路径,速度慢。注:由于现在设备采用ASIC交换,所以速度并不慢,而MPLS借签了帧中继交换方式,在数据包每经过一台设备时, 都要重新封装,所MPLS在速度上,并不是优势。
  2. MPLS支持单播和组播应用。
  3. MPLS支持QOS。
  4. MPLS可以提供流量工程(TE)。
  5. MPLS可以让路由器脱离BGP核心(即解决BGP没有full-mesh而产生的路由黑洞)。
  6. MPLS可以提供peer-to-peer的MPLS-威屁恩服务。
  7. 使用统一标准的网络架构,MPLS在骨干网中传输任意第二层帧的特征被称为MPLS的任意传输(AToM)。

0x02 MPLS基本原理

MPLS框架结构

mpls 6PE原理 mpls技术原理_等价类_02

  1. 控制平面是无连接的,主要功能是负责产生和维护路由信息以及标签信息。
    控制平面中IP路由协议模块用来传递路由信息,生成路由信息表;标签分发协议模块用来完成标签信息的交换,建立标签转发路径。
  2. 转发平面也称为数据平面(Data Plane),是面向连接的, 主要功能是负责普通IP报文的转发以及带MPLS标签报文的转发。
    数据平面包括IP转发信息表(Forwarding Information Base)和标签转发信息表(Label Forwarding Information Base),当收到普通IP报文时,如果是普通IP转发,则查找IP路由表转发,如果需要标签转发,则按照标签转发表转发;当收到带有标签的报文时,如果需要按照标签转发,根据标签转发表转发,如果需要转发到IP网络,则去掉标签后根据IP转发表转发。
MPLS网络结构

mpls 6PE原理 mpls技术原理_IP_03


MPLS网络的典型结构如图,可以进行MPLS标签交换和报文转发的网络设备称为标签交换路由器LSR(Label Switching Router),如图中所有的路由器;

  • 由LSR构成的网络区域称为MPLS域(MPLS Domain)。
  • 位于MPLS域边缘、连接其他网络的LSR称为边缘路由器LER(Label Edge Router)
  • 区域内部的LSR称为核心LSR(Core LSR)
  • 整个数据的标签交换路径称为LSP
MPLS报文

MPLS有两种封装模式:帧模式和信元模式(ATM采用MPLS信元模式封装,本课不涉及)。

帧模式封装是直接在报文的二层头部和三层头部之间增加一个MPLS标签头。以太网 、PPP采用这种封装模式。

mpls 6PE原理 mpls技术原理_IP_04


mpls 6PE原理 mpls技术原理_IP_05

  • MPLS 头部长度为32bits。
  • LABEL:该标签用于报文转发,长度为20bits;
  • EXP:通常用来承载IP报文中的优先级,长度为3bits;
  • S:标识栈底用来表明是否是最后一个标签(MPLS标签可以多层嵌套),长度为1bit;
  • TTL:类似IP头部的TTL,用来防止报文环路等,长度为8bits;
转发等价类
  • FEC(Forwarding Equivalence Class)转发等价类,是一组具有某些共性的数据流的集合。这些数据流在转发过程中被LSR 以相同方式处理。
    FEC 可以根据地址、业务类型、QoS 等要素进行划分。例如,在传统的采用最长匹配算法的IP 转发中,到同一条路由的所有报文就是一个转发等价类。
  • NHLFE(Next Hop Label Forwarding Entry):进行标签转发时用到,NHLFE包含这样一些基本信息:
  1. 报文的下一跳
  2. 如何进行标签操作(包括压入新的标签,弹出标签,用新的标签替换原有的标签等操作)。
  3. NHLFE还可能包含一些其他信息,如发送报文使用的链路层封装等。