当前位置: 首页 > news >正文

MPLS技术详解1:原理、架构与转发机制详析

在这里插入图片描述

本系列首篇将带您全面了解MPLS(多协议标签交换)技术的基础原理、网络设备类型、标签交换机制及其优势。文章深入解析MPLS报头结构、标签堆栈、数据包在MPLS网络中的转发流程,以及与Cisco Express Forwarding的关系。通过对控制平面和数据平面的梳理,帮助读者建立完整的MPLS认知体系,为深入学习后续高级应用和实战部署打下坚实基础

1. 基础概念

MPLS的全称是多协议标签交换技术。顾名思义,它支持多协议,使用标签交换机制在网络中转发数据包。

1.1 多协议支持

多协议支持意味着它可以运行在任何的数据链路层技术(以太网,帧中继,ATM,SONET)之上并可以转发任何网络层协议(IPv4,IPv6,IPX,AppleTalk)。

在数据包进入到MPLS网络的时候,MPLS路由器会添加它自己的报头,也就是所谓的标签。因此它也被叫做2.5层协议。

1.2 标签交换机制

以太网通过查询MAC地址来转发数据帧,IP网络通过查询IP地址来转发数据包,MPLS网络则是通过查询标签来转发数据包。

标签是由专门的标签分发协议来下发的,最常用也被大家熟知的就是LDP,运营商网络里也会有SR和SRv6来分发标签。至于说为什么叫交换机制,是经过每一跳都会交换(SWAP)这个标签。

1.3 设备类型

在这里插入图片描述

Label Edge Router,简称LER,是MPLS网络和其他网络交界的边缘,通常也被成为PE路由器。它负责标签的压入和弹出。入口的LER也叫做iLER,出口的LER也叫做eLER。

Label Switching Router,简称LSR,是MPLS网络的核心路由器,也被成为P路由器。它负责标签的交换。

1.4 标签交换路径

当IP包进入到一个MPLS网络并被加上一个合适的标签,直到它移除这个标签并离开MPLS网络,它在MPLS网络经过的路径就叫做标签交换路径Label Switched Path (LSP)。

  • 它是到目的网络的IGP的最短路径。
  • 它是单向的,且和数据传输的方向一致,这意味着回程可能使用不同的LSP。
  • 可用于快速重路由(Fast Reroute)。预先配置备用路径的LSP,当主路径上的链路或是节点失效的时候,可以迅速切换到备用路径。

1.5 转发等价类

Forwarding Equivalence Class,即转发等价类,指的是一些数据包被在同一条路径上转发且得到相同的对待。当时数据包进入到MPLS网络的时候,入口LER将其划分到不同的FEC里,根据FEC来分配标签。对于设备来讲,对于有相同的下一条,相同的出接口,以及相同的QoS,就属于一个相同的FEC。对于其他设备上对数据包的操作,本路由器是无法干预的。

所有属于同一FEC的数据包被分配了同一个标签,但并不是所有拥有一样标签的数据包都属于同一个FEC。概念上FEC包括路径和QoS,路径是指所有的数据包都沿着一样的LSP转发,相同的对待则指的是有相同的QoS设置。举个例子,到达同样目的的数据包,在网络拥塞的情况下,语音或是视频的流量可以通过,普通的流量可以就被丢弃了。在日常提到FEC,基本就是指分配了达到相同的目的地分配了相同的标签,譬如L3VPN,客户从一个站点到另一个站点的VPN流量,在运营商承载网上走的是一条一样的LSP。根据和运营商签的SLA来保证服务质量,决定了网络拥塞时对不同流量的处理方式。

1.6 MPLS的优点

在IP网络中,每一跳都需要根据目的网络地址进行路由表的最长匹配前缀的查询,这需要消耗CPU的资源。而在MPLS网络内部,只要读取数据包报头里的标签,通过基于硬件查询的标签转发信息表LFIB,将入标签替换成新标签并从出接口发出去。因此,数据可以以线速转发,消除了CPU造成的瓶颈。

2. MPLS报头

2.1 报头格式

在这里插入图片描述

  • Label: 顾名思义就是标签值,20比特。
  • EXP:3比特的实验位,用于QoS。通常IP包在进入到MPLS网络时,iLER会将IP包的IP Precedence的值复制到这里。
  • S:栈底位Bottom of Stack,在有多个标签的时候,如果栈底位置1则意味着这是最后一个标签。
  • TTL:和IP网络的TTL一样,在MPLS网络里每一跳都会将TTL值减1。

2.2 标签堆栈

在这里插入图片描述

如果有2个及以上的标签时,一般最外层的标签的被叫做传输标签,用于找到服务所在的PE。最内层的,也就是靠近数据的一侧的标签被叫做服务标签,用于在PE上区分送到哪个服务上,譬如某个客户的VPN服务。举几个例子如下:

在这里插入图片描述

以第二个例子为例,RSVP-TE标签是用于找到TE隧道终点的,LDP标签是接着用于找到PE的,VPN标签是将数据转发给正确的客户的。譬如一个LSP需要从R1 -> R2 -> R3。R1到R2走的是MPLS TE的隧道接口,R2到R3是通过LDP的标签转发的,最后R3找到客户VRF和正确的出接口。

3 MPLS网络转发流程

在这里插入图片描述

3.1 入口LER

  • 接收IP包,并分析报头,找出数据包的目的网络,QoS等特性。
  • 查路由器表(RIB)找目的网络及其下一跳。查找转发表(FIB)找到下一跳的出接口。并据此映射到相应的FEC上。
  • 查看标签转发表(LFIB),找到FEC对应的标签。
  • 制作标签,包括找到标签值,复制IP包的IP Precedence到EXP和TTL值,如果是内层标签则栈底位为1,其余为0。
  • 在2层数据帧报头和3层IP包报头中间按顺序插入MPLS标签。譬如L3VPN的多层标签,从哪个VPN学来的,就先在内层插入VPN的标签。然后再查看其BGP的下一跳,并插入外层传输的标签。
  • 将以太网报头里的EtherType从0x0800改到0x8847,表示原来后面接的是IP包变成了MPLS标签。
  • 将新的数据包从查到的出接口处转发出去。

3.2 LSR

  • 接收标签包,并查看标签及相关信息。
  • 查找LFIB,根据对应的入接口和标签值,查找出接口和标签值。
  • 将入标签交换为出标签,MPLS报头的TTL减少1。IP包的报头不变。
  • 将新的标签包从查到的出接口处转发出去。

3.3 出口LER

Penultimate Hop Popping (PHP),倒数第二跳弹出。指LSR将MPLS数据包发给出口LER之前,将MPLS标签移除,发送IP包给出口LER。这样出口LER就少了一个标签操作的动作,直接进行IP转发。如果是多层标签,则会将最外层的传输标签移除,保留服务标签给到出口LER。无论何种情况,都会减少一步标签的操作。

  • 在有没有PHP的情况下。对于最外层的传输标签,仍需查看LFIB,如果对应标签显示的动作是Pop,则会弹出标签。
  • 根据TTL的模式,来处理IP包的TTL值。
    • 统一模式:MPLS网络内部的跳数也会算到IP包的TTL里。因此会将MPLS TTL值减1,再复制回IP报头的TTL字段。
    • 管道模式:MPLS网络只被当作一跳,MPLS TTL值被忽略,在转发IP包时将其TTL值减1。
  • 如果是多层标签,则会根据最后一个服务标签找到对应的服务,并将后面的IP包经VRF的路由表查询后从对应的接口发出去。如果次末跳路由器弹出标签后露出了IP包,出口LER直接查路由表并将IP包从对应的接口发出去。

4. CEF

Cisco Express Forwarding 思科快速转发技术,其他厂商也都有类似的技术。

4.1 组件

  • FIB:根据RIB来构建优化的用于快速查询的数据结构,包括目标网络前缀,下一跳地址和出接口。
  • 邻接表:在FIB中的列出的下一跳地址,需要知道它的2层信息,譬如MAC地址,VLAN标签等。这通常由ARP(IPv4)或是NDP(IPv6)来解析下一跳的2层地址。

4.2 转发流程

  • 数据包来到入接口。
  • 专用转发硬件通过FIB来查询数据包报头里的目的网络地址。
  • FIB查出下一跳地址,并对应到邻接表里的条目。
  • 根据邻接表里的条目来重写2层报头,譬如下一跳的MAC地址。
  • 将新的数据帧转发到正确的出接口。

4.3 转发方式

转发方式分为集中式和分布式,我们大部分使用的还是分布式。

  • 集中式快速转发:通用型CPU负责所有的操作,包括快速转发交换。优点是通用型CPU价格比较便宜。

在这里插入图片描述

  • 分布式快速转发:由专门的硬件,入ASIC,NPU,TCAM等来负责快速转发交换。大部分的数据包处理交由线卡上的这些专门硬件来处理。当一个数据包到达入接口,它被转到此线卡的转发引擎。由于ASIC已经将RP所产生的FIB和邻接表下载并存储到TCAM里,因此转发引擎通过查看基于TCAM的表来决定数据包发到哪个出接口,或是发送到交换矩阵背板来转到其他线卡的出接口。优点是可以达到线速转发,不占用路由器处理器的CPU资源。

在这里插入图片描述

5. MPLS控制平面和数据平面

在这里插入图片描述

5.1 MPLS控制平面

MPLS的控制平面是一些进程和协议,通过在MPLS网络里创建和维持必要的路径来决定数据包是怎么转发的。

  • 用于分发和交换标签。
  • 路径LSP的建立和拆除。
  • 负责建立LIB和LFIB表。
  • 与路由协议的交互。
  • 常用的协议有LDP,RSVP-TE,和MP-BGP。

在这里插入图片描述

5.2 MPLS数据平面

MPLS的数据平面是根据控制平面决定的路径来转发数据包。原来由每跳路由器查询数据包的目的地址,MPLS的数据平面通过对定长标签的简单快速的查询来快速转发数据包。

  • 根据LFIB转发数据包。
  • LER会进行IP包的MPLS封装和解封装。
  • LSR会进行标签交换。

在这里插入图片描述

5.3 2层帧结构

  • 带标签的以太帧的以太类型为0x8847,说明后面是MPLS标签。

在这里插入图片描述

  • 不带标签的以太帧的以太类型为0x8000,说明后面是IP包。

在这里插入图片描述

5.4 四张表的关系

路由表,LDP邻居表,标签表和标签转发表的关系如下:

在这里插入图片描述
📚 延伸阅读

更多内容持续更新于我的博客:https://www.zenseek.site

http://www.dtcms.com/a/465592.html

相关文章:

  • WPF自定义控件之环形进度条
  • 深度学习入门(一)——从神经元到损失函数,一步步理解前向传播(下)
  • php网站怎么做伪静态织梦模板网站好吗
  • 电脑所有可用的网络接口
  • 宁波网站设计推广培训班呼和浩特做网站的
  • TensorFlow深度学习实战(40)——图神经网络(GNN)
  • 水库安全保障:单北斗GNSS变形监测系统的应用与维护探讨
  • Spring中Bean 的生命周期
  • 【C++】智能指针介绍
  • 利用腾讯混元大模型搭建Cherry Studio自有知识库,打造“智能第二大脑”
  • 咸阳做网站的公司有哪些电商卖货平台有哪些
  • 浏阳网站建设卷云网络做网页的it网站
  • 广东省省考备考(第一百二十天10.10)——资料分析、判断推理(强化训练)
  • 常用的C++压测框架
  • 强化学习之父 Richard Sutton :大模型是死路一条
  • 【YOLO 模型入门】(1)一文读懂 YOLO:从核心概念到检测原理
  • redis消息队列
  • AI任务相关解决方案21-一种基于大语言模型、多智能体协作平台MCP、Agent、RAG技术的项目投标智能化系统与方法
  • 做一个能注册用户的网站深圳优化网站公司
  • 哈尔滨seo建站怎么用wordpress建立自己的网站
  • Frigate - IP 摄像头开源程序实时目标检测 NVR
  • Ubuntu系统使用指南
  • BERT文本分类超参数优化实战:从13小时到83秒的性能飞跃
  • 传输层协议之TCP协议
  • k8s中实现pod热加载
  • 医疗网站建设中心百度做个网站要多少钱
  • 万盛网站建设公司视频网站制作
  • H618-内核驱动的第一个hello world
  • IEEE内期刊论文爬取
  • 网站设计创意wordpress实现图片幻灯展示效果