《什么是MPLS?多协议标签交换》

简介


MPLS的起源


90年代中期,IP技术凭借技术简单和成本低廉实现快速发展,Internet数据海量增长。但由于硬件技术存在限制,基于最长匹配算法的IP技术必须使用软件查找路由,转发性能低下,因此IP技术的转发性能成为当时限制网络发展的瓶颈。

为了适应网络的发展,ATM(Asynchronous Transfer Mode)技术应运而生。ATM采用定长标签(即信元),并且只需要维护比路由表规模小得多的标签表,能够提供比IP路由方式高得多的转发性能。然而,ATM协议相对复杂,且ATM网络部署成本高,这使ATM技术很难普及。

如何结合IP与ATM的优点成为热门话题。多协议标签交换技术MPLS(Multiprotocol Label Switching)就是在这种背景下产生的。

MPLS最初是为了提高路由器的转发速度而提出的。与传统IP路由方式相比,它在数据转发时,只在网络边缘分析IP报文头,而不用在每一跳都分析IP报文头,节约了处理时间。

随着ASIC技术的发展,路由查找速度已经不是阻碍网络发展的瓶颈,这使得MPLS在提高转发速度方面不再具备明显的优势。但是MPLS支持多层标签和转发平面面向连接的特性,使其在VPN(Virtual Private Network)、流量工程、QoS(Quality of Service)等方面得到广泛应用。

MPLS的定义


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

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

由此可见,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的体系结构如图1-1所示。

图1-1 MPLS体系结构示意图使用

  • A:IP路由协议建立邻居,交互路由信息,生成IP路由表。

  • B:标签交换协议从IP路由表中获取路由信息。IP路由表中的路由前缀匹配了FEC(转发等价类,Forwarding Equivalence Class),在传统的采用最长匹配算法的IP转发中,到同一条路由的所有报文就是一个FEC。

  • C:IP路由表中激活的最优路由生成IP转发表。

  • D:标签转换协议建立邻居,为FEC分配标签并发布给邻居,同时获取邻居发布的标签,生成标签转发表。

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

图1-2 MPLS转发数据包过程示意图

MPLS的网络结构


MPLS网络的典型结构如图1-3所示:

图1-3 MPLS网络结构示意图

MPLS网络的基本组成单元是标签交换路由器LSR(Label Switching Router):

  • 位于MPLS域边缘、连接其它网络的LSR称为边沿路由器LER(Label Edge Router),如果一个LSR有一个或多个不运行MPLS的相邻节点,那么该LSR就是LER。

  • 区域内部的LSR称为核心LSR(Core LSR),如果一个LSR的相邻节点都运行MPLS,则该LSR就是核心LSR。

MPLS的实现原理


MPLS的实现原理是指:为FEC(转发等价类,Forwarding Equivalence Class)分配标签来建立LSP(标签交换路径,Label Switched Path)。

MPLS LSP


IP包在MPLS网络中经过的路径称为MPLS的LSP,即标签交换的路径,如图1-4所示。

图1-4 MPLS LSP

MPLS LSP是一个单向路径,与数据流的方向一致。

  • LSP的起始节点称为入节点(Ingress):LSP的起始节点,一条LSP只能有一个Ingress。

    Ingress的主要功能是给报文压入一个新的标签,封装成MPLS报文进行转发。

  • 位于LSP中间的节点称为中间节点(Transit):LSP的中间节点,一条LSP可能有0个或多个Transit。

    Transit的主要功能是查找标签转发信息表,通过标签交换完成MPLS报文的转发。

  • LSP的末节点称为出节点(Egress):LSP的末节点,一条LSP只能有一个Egress。

    Egress的主要功能是弹出标签,恢复成原来的报文进行相应的转发。

其中Ingress和Egress既是LSR,又是LER;Transit是LSR。

根据数据传送的方向,LSR可以分为上游和下游。

  • 上游:以指定的LSR为视角,根据数据传送的方向,所有往本LSR发送MPLS报文的LSR都可以称为上游LSR。

  • 下游:以指定的LSR为视角,根据数据传送的方向,本LSR将MPLS报文发送到的所有下一跳LSR都可以称为下游LSR。

MPLS标签


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

标签长度为4个字节,封装结构如图1-5所示。

图1-5 MPLS报文首部结构

标签共有4个域:

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

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

图1-6 标签在分组中的封装位置

标签栈(Label stack)也称为多层标签,是指标签的排序集合,如图1-7所示。靠近二层首部的标签称为栈顶标签或外层标签;靠近IP首部的标签称为栈底标签,或内层标签。理论上,MPLS标签可以无限嵌套。

图1-7 标签栈

标签栈按后进先出(Last In First Out)方式组织标签,从栈顶开始处理标签。

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

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

在最后一跳节点,标签已经没有使用价值。这种情况下,可以利用倒数第二跳弹出特性PHP(Penultimate Hop Popping),在倒数第二跳节点处将标签弹出,减少最后一跳的负担。最后一跳节点直接进行IP转发或者下一层标签转发。PHP在Egress节点上配置,通过分配特殊的标签值3来实现。标签值3表示隐式空标签(implicit-null),这个值不会出现在标签栈中。当一个LSR发现自己被分配了隐式空标签时,它并不用这个值替代栈顶原来的标签,而是直接执行Pop操作。Egress节点直接进行IP转发或下一层标签转发。

分配标签来建立LSP


MPLS需要为报文事先分配好标签,建立一条MPLS LSP,才能进行报文转发。标签由下游分配,按从下游到上游的方向分发。

如图1-8所示,由下游LSR在IP路由表的基础上进行FEC的划分,并将标签分配给特定FEC,再通过标签发布协议通知上游LSR,以便建立标签转发表和LSP。

图1-8 MPLS LSP的建立

LSP分为静态LSP和动态LSP两种:静态LSP由手工配置,动态LSP则利用路由协议和标签发布协议动态建立。

MPLS可以使用多种标签发布协议,例如LDP(Label Distribution Protocol)、RSVP-TE(Resource Reservation Protocol Traffic Engineering)和MP-BGP(Multiprotocol Border Gateway Protocol)。

LDP是专为标签发布而制定的协议,也是其中使用较广的一种。LDP规定了标签分发过程中的各种消息以及相关的处理过程。LSR之间将依据转发表中对应于一个特定FEC的入标签、下一跳节点、出标签等信息联系在一起,从而形成标签交换路径LSP。

静态LSP的配置方法


组网图如图1-9所示,3个节点运行OSPF作为IGP,在节点上通过配置静态LSP来实现LSRA到LSRC之间的MPLS隧道承载。

图1-9 静态LSP配置示例组网图

本例中interface1,interface2分别代表GE 1/0/0,GE 2/0/0。

配置文件示例如所表1-1示:

表1-1 静态LSP配置文件示例

LSRA

LSRB

LSRC

#
sysname LSRA
#
mpls lsr-id 192.168.1.9
#
mpls
#
interface GigabitEthernet1/0/0undo shutdown  ip address 10.1.1.1 255.255.255.0mpls
#
interface LoopBack1ip address 192.168.1.9 255.255.255.255
#
ospf 1          area 0.0.0.0   network 10.1.1.0 0.0.0.255network 192.168.1.9 0.0.0.0
#               static-lsp ingress AtoC destination 192.168.3.9 32 nexthop 10.1.1.2 out-label 20
#
return
#
sysname LSRB
#
mpls lsr-id 192.168.2.9
#
mpls
#
interface GigabitEthernet1/0/0undo shutdown  ip address 10.1.1.2 255.255.255.0mpls
#
interface GigabitEthernet2/0/0undo shutdown  ip address 10.2.1.1 255.255.255.0mpls
#
interface LoopBack1ip address 192.168.2.9 255.255.255.255
#
ospf 1          area 0.0.0.0   network 10.1.1.0 0.0.0.255network 10.2.1.0 0.0.0.255network 192.168.2.9 0.0.0.0
# static-lsp transit AtoC in-label 20 outgoing-interface GigabitEthernet2/0/0 nexthop 10.2.1.2 out-label 40
#
return
#
sysname LSRC
#
mpls lsr-id 192.168.3.9
#
mpls
#
interface GigabitEthernet1/0/0undo shutdown  ip address 10.2.1.2 255.255.255.0mpls
#
interface LoopBack1ip address 192.168.3.9 255.255.255.255
#
ospf 1          area 0.0.0.0   network 10.2.1.0 0.0.0.255network 192.168.3.9 0.0.0.0
#static-lsp egress AtoC incoming-interface GigabitEthernet1/0/0 in-label 40
#
return

检查配置结果:在设备上查看静态LSP的状态,以LSRA为列,Lsp Status为Up。

<LSRA> display mpls static-lsp verboseNo              : 1LSP-Name        : AtoCLSR-Type        : IngressFEC             : 192.168.3.9/32In-Label        : NULLOut-Label       : 20In-Interface    : -Out-Interface   : GigabitEthernet1/0/0NextHop         : 10.1.1.2Static-Lsp Type : NormalLsp Status      : Up

动态LSP(LDP)的配置方法


组网图如图1-10所示,3个节点运行OSPF作为IGP,在节点上通过配置动态LSP来实现LSRA到LSRC之间的MPLS隧道承载。

图1-10 动态LSP配置示例组网图

本例中interface1,interface2分别代表GE 1/0/0,GE 2/0/0。

配置文件示例如所表1-2示:

表1-2 动态LSP配置文件示例

LSRA

LSRB

LSRC

#
sysname LSRA
#
mpls lsr-id 192.168.1.9
#
mpls
#
mpls ldp
#
interface GigabitEthernet1/0/0undo shutdownip address 10.1.1.1 255.255.255.0mplsmpls ldp
#
interface LoopBack1ip address 192.168.1.9 255.255.255.255
#
ospf 1area 0.0.0.0network 10.1.1.0 0.0.0.255network 192.168.1.9 0.0.0.0
#
return
#
sysname LSRB
#
mpls lsr-id 192.168.2.9
#
mpls
#
mpls ldp
#
interface GigabitEthernet1/0/0undo shutdownip address 10.1.1.2 255.255.255.0mplsmpls ldp
#
interface GigabitEthernet2/0/0undo shutdownip address 10.2.1.1 255.255.255.0mplsmpls ldp
#
interface LoopBack1ip address 192.168.2.9 255.255.255.255
#
ospf 1          area 0.0.0.0   network 10.1.1.0 0.0.0.255network 10.2.1.0 0.0.0.255network 192.168.2.9 0.0.0.0
#
return
#
sysname LSRC
#
mpls lsr-id 192.168.3.9
#
mpls
#
mpls ldp
#
interface GigabitEthernet1/0/0undo shutdownip address 10.2.1.2 255.255.255.0mplsmpls ldp
#
interface LoopBack1ip address 192.168.3.9 255.255.255.255
#
ospf 1          area 0.0.0.0   network 10.2.1.0 0.0.0.255network 192.168.3.9 0.0.0.0
#
return

检查配置结果:在设备上查看LDP的会话状态,以LSRA为列,Status为Operational。

<LSRA> display mpls ldp sessionLDP Session(s) in Public NetworkCodes: LAM(Label Advertisement Mode), SsnAge Unit(DDD:HH:MM)An asterisk (*) before a session means the session is being deleted.
---------------------------------------------------------------------------------PeerID          Status        LAM        SsnRole        SsnAge        KASent/Rcv
---------------------------------------------------------------------------------
192.168.2.9:0    Operational   DU         Passive        0000:00:22    91/91
---------------------------------------------------------------------------------
TOTAL: 1 Session(s) Found.

相关信息


如果您需要了解MPLS的更多信息及配置方法,可参考产品文档《NE40E V800R011C10SPC100 产品文档》。

参考来源:


https://support.huawei.com/enterprise/zh/doc/EDOC1100118965

什么是MPLS?多协议标签交换(MPLS)基础知识和工作原理相关推荐

  1. 多协议标签交换(MPLS)技术的潜在弱点—Vecloud

    多协议标签交换(MPLS)已经统治企业专用网市场十多年了.然而,随着云计算.移动应用和全球化的趋势,MPLS的缺点逐渐暴露如下: 1.不适用于云计算.SaaS和移动应用程序:云计算.SaaS和移动应用 ...

  2. MPLS多协议标签交换原理—Vecloud微云

    MPLS:Multi-Protocol Label Switching,多协议标签交换 ① mpls-vpn ② 在各种运营商的设备上面例如:LTE 注意:MPLS是二层半协议,介于mac和ip之间 ...

  3. MPLS多协议标签交换

    目录 MPLS(多协议标签交换) 1.1 概念 1.1.1 MPLS出现的背景 1.1.2 工作原理 1.1.3 使用场景 2. MPLS体系结构 2.1 术语 2.2 标签操作类型 3. MPLS的 ...

  4. 08.GPIO基础知识和工作原理

    GPIO基础知识和工作原理 参考资料 1.正点原子开发板资料 <STM32FXX开发指南:库函数版本>-第六章跑马灯实验 2.STM32FxXx官方资料: F429:<STM32F4 ...

  5. MPLS(多协议标签交换)基础

    文章目录 原始包交换 标签交换 包交换的优化 MPLS 简介 标签报文格式 名词解释 LDP:标签分发协议 LDP会话 本地LDP会话建立 标签分发方式 标签传递方式 MPLS工作过程 控制层面 数据 ...

  6. mpls 保留标签值_浅析MPLS多协议标签交换的发展历程

    一.MPLS概念 MPLS:multipule protocol label seitch 多协议标签交换,是通过一个叫label的东西来做交换转发的,这个label中可以承载多种协议payload, ...

  7. MPLS多协议标签交换技术

    MPLS (multiprotocol labelswitching)多协议标签交换技术.采用短而定长的标签进行数据转发,提高了硬件限制下的转发能力,结合IP与atm的优点,而且MPLS可以扩展到多种 ...

  8. MPLS 多协议标签交换

    标题 MPLS:多协议标签交换 多协议:可以基于多种不同的3层协议来生成2.5层的标签信息: 包交换-包为网络层的PDU,故包交换是基于IP地址进行数据转发:就是路由器的路由行为: 原始的包交换:数据 ...

  9. MPLS 多协议标签交换技术

    包交换 标签交换 MPLS 构建LSP 构建静态LSP 构建动态LSP 控制层面: 数据层面: 包交换 数据组成数据包,之后在各个网络节点中不断传递,最终到达目标 包交换过程:假设PC1向PC3发数据 ...

最新文章

  1. redis入门(03)redis的配置
  2. 基于Mozilla Thunderbird的扩展开发(四)---修改Thunderbird源代码实现自动保存附件...
  3. 【selenium 3】 Mac 下测试环境搭建 Firefox 47+ gecko driver Mac
  4. Ajax操作的四个步骤
  5. css学习入门篇(1)
  6. windows server2008R2故障转移群集
  7. MYSQL分页limit速度太慢优化方法
  8. HDOJ1860 ( 统计字符 ) 【水题】
  9. Windows平台安装dlib方法汇总
  10. DVWA 黑客攻防演练(十二) DOM型 XSS 攻击 DOM Based Cross Site Scripting
  11. paip.解决中文url路径的问题图片文件不能显示
  12. 数据库系统概论第五版 (第 1 章 绪论 ) 笔记
  13. 研华工控机维修IPC-610MB-L主机电脑维修
  14. 【Mockplus教程】安装Mockplus
  15. 计算机表格合并居中,表格合并居中快捷键
  16. 干货 | 带你解锁AC/DC、DC/DC转换器基础
  17. mysql报“ASCII\0appearedinthestatement“
  18. 【unity shader】unity游戏特效-仿《黑暗欺骗》模型消融消失效果
  19. 关于在u-boot中使用usb进行通信(三)
  20. FactoryIO+ABB机器人+博图仿真实验程序

热门文章

  1. 成功修复2G金士顿U盘
  2. mysql数据库group by_MySQL数据库对GROUP BY子句的功能扩展(1)
  3. get post put delete
  4. 27 Python - 数值 日期与时间
  5. Linux命令之diff
  6. RHEL 7.5 部署 OpenStack Queens 踩坑记
  7. [jQuery] 通过ajax保存到服务器,成功显示信息.
  8. 4-3-串的块链存储结构-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版
  9. ADO.NET Entity Framework学习笔记(4)ObjectQuery对象
  10. java异步获取结果_java获取异步计算的结果