【干货分享】网工必要了解协议MPLS

news2024/11/15 22:24:48

热门IT技术--视频教程icon-default.png?t=N7T8https://xmws-it.blog.csdn.net/article/details/134398330?spm=1001.2014.3001.5502

MPLS是一种在IP骨干网上利用标签来指导数据报文高速转发的协议,由IETF (Internet Engineering Task Force,因特网工程服务组)提出。相对于传统的IP路由方式,MPLS提供了一种新的网络交换方式,它将IP地址映射为简短且长度固定、只具有本地意义的标签,以标签交换替代IP查表,从而显著提升转发效率。同时,MPLS的标签机制可以在IP网络中构筑一条逻辑上的隧道,而且MPLS兼容不同的网络层和链路层协议,因此,MPLS可以很好的为各种L2VPN、L3VPN以及EVPN业务提供公网隧道服务。

为什么需要MPLS?

在20世纪90年代中期,随着IP网络的快速发展,Internet数据量急剧增长。由于当时的硬件技术存在限制,基于最长匹配算法的IP技术必须使用软件方法查找路由,转发性能低下,所以IP的转发性能成为当时限制网络发展的瓶颈。在这种背景下,IETF提出了MPLS协议。MPLS最初的目的就是为了提升IP网络中路由设备的转发速率。

图片


IP路由与MPLS转发方式对比

与传统的IP路由方式相比,MPLS通过以下两种方式提升转发速率:

  • 将查找庞大的IP路由表转化为简洁的标签交换,显著减少指导报文转发的时间。

  • 当报文进入MPLS区域之后,只需在位于边缘的入、出节点解析IP报文头,封装或解封装标签,而在中间的所有节点上都无需解析IP报文头,只进行标签交换,进一步节约了转发报文的处理时间。

后来,随着ASIC(Application Specific Integrated Circuit,专用集成电路)技术的迅速发展,IP路由表查找逐步改用硬件方法,处理速度大大提高,这使得MPLS在提高IP网络转发速率方面不再具备明显的优势。

但是,MPLS的标签转发本质上是一种隧道技术,它还支持封装多层标签,并且MPLS天然兼容多种网络层和链路层协议,因此,MPLS非常适合在各种VPN业务中充当公网隧道。此外,由于MPLS的报文转发依靠一条固定的标签交换路径,所以MPLS是一种面向连接的转发技术,这使得MPLS在流量工程(Traffic Engineering,TE)、QoS等领域也有着广泛的应用。

MPLS有哪些特征?

MPLS的基本概念有哪些?

想了解MPLS是什么,首先要知道MPLS的基本概念,下面介绍几个核心概念。

FEC

MPLS是一种分类转发技术,它将具有相同转发处理方式的数据分组归为一类,称为FEC(Forwarding Equivalence Class,转发等价类)。MPLS对相同FEC的数据分组采取完全相同的处理方式。

FEC的划分方式非常灵活,可以是源地址、目的地址、源端口、目的端口、协议种类、业务类型等要素的任意组合。例如,在采用最长匹配算法的IP路由转发中,去往同一个目的地址的所有报文就是一个FEC。

MPLS标签

MPLS标签是一个简短且长度固定的标识符,它只具有本地意义,用于唯一标识一个分组所属的FEC。在某些情况下(例如,进行负载分担)对应一个FEC可能会有多个MPLS标签,但是在一台设备上,一个MPLS标签只能代表一个FEC。

MPLS标签长度为4个字节,封装结构如下图所示。

图片


MPLS标签封装结构

MPLS标签共有4个域:

  • Label:20bit,标签值域。

  • Exp:3bit,用于扩展。现在通常用做CoS(Class of Service,服务分类)。

  • BoS:1bit,栈底标识。MPLS支持多层标签,即标签嵌套。BoS值为1时表明为最底层标签。

  • TTL:8bit,和IP分组中的TTL(Time To Live)意义相同。

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

图片


MPLS标签的封装位置

MPLS标签栈(Label stack)也称为MPLS多层标签,是指MPLS标签的排序集合,如下图所示。靠近二层首部的标签称为栈顶标签或外层标签;靠近IP首部的标签称为栈底标签,或内层标签。MPLS标签栈按后进先出(Last In First Out)方式组织标签,从栈顶开始处理标签。

图片


MPLS标签栈

标签操作

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

图片


标签基本操作

MPLS标签的基本操作详解如下:

  • Push:指当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。

  • Swap:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。

  • Pop:当报文离开MPLS域时,将MPLS报文的标签去掉;或者MPLS倒数第二跳的节点处去掉栈顶标签,减少标签栈中的标签数目。

在最后一跳的节点上,MPLS标签实际已没有使用价值。这种情况下,可以利用PHP(Penultimate Hop Popping,倒数第二跳弹出)特性,在倒数第二跳的节点上就将标签弹出,这样最后一跳的节点可直接进行IP转发或者下一层标签转发,从而减少最后一跳的处理负担。

PHP特性是通过分配特殊的标签值3来实现的。标签值3表示隐式空标签(implicit-null),这个值不会出现在标签栈中。当倒数第二跳节点发现自己被分配了标签值3时,它并不用这个值替代栈顶原来的标签,而是直接执行Pop操作,使最后一跳节点直接进行IP转发或下一层标签转发。

LSP

LSP(Label Switched Path,标签交换路径)是指属于同一FEC的报文(即封装了MPLS标签的报文)在MPLS域内转发所经过的路径,如下图所示。

图片


LSP示意图

LSP是一条从入口到出口的单向通道,包含以下角色:

  • LSP的起始节点称为入节点(Ingress),一条LSP只能有一个Ingress。Ingress的主要功能是给IP报文压入一个新的MPLS标签,将其封装成MPLS报文。

  • 位于LSP中间的节点称为中间节点(Transit),一条LSP可能有0个或多个Transit。Transit的主要功能是查找标签转发信息表,通过标签交换完成MPLS报文的转发。

  • LSP的末尾节点称为出节点(Egress),一条LSP只能有一个Egress。Egress的主要功能是弹出标签,恢复成原来的报文进行相应的转发。

MPLS网络是什么样的?

MPLS网络的典型结构如下图所示。

图片


MPLS网络结构示意图

MPLS网络主要包含以下要素:

  • 支持MPLS功能的网络设备称为LSR(Label Switching Router,标签交换路由器),它是MPLS网络的基本组成单元。由一系列连续的LSR构成的网络区域称为MPLS域。

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

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

在MPLS网络中,任何两个LER之间都可以建立LSP,用来转发进入MPLS域的报文,中间可途径若干个Core LSR。因此,一条LSP的Ingress和Egress都是LER,而Transit是Core LSR。

MPLS有什么价值?

MPLS在当前的IP网络中得到了广泛的应用,其主要价值体现在以下几方面:

  • MPLS完全兼容IP网络,相当于在IP网络的基础上进行改进,建设成本低,易于推广。

  • MPLS的控制平面和转发平面是分开的,在控制平面依靠IP路由来建立LSP,MPLS可以借用IP路由的各种灵活性、可靠性机制;在转发平面通过LSP来传输报文,是面向连接的,MPLS可以有效的实施流量工程和QoS。

  • MPLS是一种与链路层协议无关的技术,它同时支持帧中继、ATM、PPP和SDH等协议,保证了多种网络的互通,兼容性非常好。

  • MPLS网络支持层次化的拓扑结构,适合在IP骨干网中部署。

  • MPLS标签栈在理论上可支持标签的无限嵌套,正好契合了VPN业务对公、私网标签多层封装的要求,因此MPLS为VPN业务的蓬勃发展提供了强有力的支持。

MPLS是如何工作的?

简单来说,MPLS的工作就是将进入MPLS域的报文正确地转发到目的地。MPLS的工作可以概括为两个过程:建立LSP、报文通过LSP转发。

MPLS是如何建立LSP的?

MPLS是一种依靠标签交换来指导转发的技术,因此,LSP的建立过程实际上就是沿途LSR为特定FEC确定标签的过程。

MPLS标签由下游分配,按照从下游到上游的方向进行分发。如下图所示,下游LSR根据IP路由的目的地址进行FEC划分,并将标签分配给对应指定目的地址的FEC,再将标签发送给上游LSR,触发上游LSR建立标签转发信息表,最终使一系列LSR形成一条LSP。

图片


LSP的建立过程示意图

LSP按建立方式可以分为静态LSP和动态LSP两种:

  • 静态LSP是管理员通过手工为各个FEC分配标签而建立的LSP。手工分配标签需要遵循的原则是:上游LSR出方向的标签的值等于下游LSR入方向的标签值。

  • 动态LSP是各LSR通过标签发布协议动态的生成和发布标签而建立的LSP,下游LSR向上游LSR发送标签时需要依赖IP路由。MPLS支持多种标签发布协议,例如:LDP(Label Distribution Protocol)、RSVP-TE(Resource Reservation Protocol Traffic Engineering)和MP-BGP(Multiprotocol Border Gateway Protocol)。

报文是如何通过LSP转发的?

以支持PHP特性的LSP为例,MPLS报文在该LSP中的基本转发过程描述如下:

  1. Ingress收到目的地址为192.168.1.1/24的IP报文,压入标签Y(Push),封装为MPLS报文并继续转发。

  2. Transit收到该MPLS报文,进行标签交换(Swap),将标签Y换成标签X。

  3. 倒数第二跳的Transit收到该MPLS报文,因为Egress分给它的标签值为3,所以进行PHP操作,弹出标签X并继续将IP报文转发给Egress。

  4. Egress节点收到该IP报文,将其转发给目的地192.168.1.1/24。

图片


报文通过LSP转发的示意图

什么是MPLS VPN?

MPLS VPN是指利用MPLS在IP骨干网络上构建VPN的技术。VPN的实质就是在公网上像私有专用网一样传输业务数据,这就需要在公网上建立一条隧道,让数据报文通过隧道直达目的地,从而达到私有专用网络的效果。概括地讲,MPLS VPN就是采用MPLS建立的LSP作为公网隧道来传输私网业务数据的。

MPLS VPN的基本模型主要由以下三种角色构成:

  • CE(Customer Edge):用户网络边缘设备,有接口直接与服务提供商SP(Service Provider)网络相连,用户的VPN站点(Site)通过CE连接到SP网络。CE可以是网络设备,也可以是一台主机。通常情况下,CE“感知”不到VPN的存在,也不需要支持MPLS。

  • PE(Provider Edge):是服务提供商网络的边缘设备,与CE直接相连。在MPLS网络中,PE设备作为LSR,对MPLS和VPN的所有处理都发生在PE上,对PE性能要求较高。

  • P(Provider):服务提供商网络中的骨干设备,不与CE直接相连。在MPLS网络中,P设备作为LSR,只需要处理MPLS,不维护VPN信息。

图片


MPLS VPN的基本模型

MPLS VPN充分利用了MPLS的技术优势,是目前应用最广泛的VPN技术。从用户角度来看,MPLS VPN具有如下价值:

  • 一个MPLS标签对应一个指定业务的数据流(特定FEC),非常有利于不同用户业务的隔离。

  • MPLS可以提供流量工程和QoS能力,用户可以借助MPLS最大限度地优化VPN网络的资源配置。

  • MPLS VPN还能提供灵活的策略控制,满足不同用户的特殊要求,快速实现增值服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1310416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深眸科技|轻辙视觉引擎以99.9%视觉检测能力为基准,赋能木材加工

轻辙视觉引擎:轻辙视觉引擎是以低代码为基础,深度学习技术为核心的视觉业务流程编排引擎,用于快速搭建部署复杂视觉检测流程软件方案。 轻辙视觉引擎|轻量级产品实现高效应用 作为深眸科技的核心产品之一,轻辙视觉引…

定时限电流继电器 JL-8D/2X112A5 AC220V 0.1~9.9S 0.1~9.9A 导轨

系列型号 JL-8D/3X1定时限电流继电器;JL-8D/3X111A2定时限电流继电器; JL-8D/3X121A2定时限电流继电器;JL-8D/3X211A2定时限电流继电器; JL-8D/3X221A2定时限电流继电器;JL-8D/3X2定时限电流继电器; JL…

关东升老师极简系列丛书(由清华大学出版社出版)

极简系列丛书,编程学习新体验 在这个科技日新月异的时代,编程已经成为了一种必备技能。但是面对各种复杂的编程语言,你是否也曾感到过迷茫和困惑?由清华大学出版社出版的“极简系列丛书”就是为了帮助你解决这个问题。 这套丛书…

Linux——进程地址空间与进程控制

进程地址空间与进程控制 文章目录 进程地址空间与进程控制1. 进程地址空间1.1 进程地址空间的引入1.1 进程地址空间的特点1.2 页表1.3 C/C的地址1.4 进程地址空间 页表的优势 2. 进程控制2.1 进程创建2.1.1 写时拷贝 2.2 进程终止2.2.1 进程退出码2.2.2 异常信号码2.2.3 errno…

基于Java SSM框架实现列车火车高铁票务信息管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现列车火车高铁票务信息管理系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被…

从零开始创建一个项目,springBoot+mybatisPlus+mysql+swagger+maven

一,前提 从零开始创建一个项目,绑定了数据库 用到的技术栈:springBootmybatisPlusmysqlswaggermaven 二,创建项目步骤 1,创建项目 创建出来的项目结构如图所示 2,修改配置文件 因为我比较习惯yml语言&…

美国访问学者陪读签证怎么申请?

美国访问学者陪读签证是许多前往美国深造的学者及其家属关注的重要问题。如何申请这一签证,一直以来都是备受关注的话题。下面知识人网小编将为您介绍一下美国访问学者陪读签证的申请流程。 首先,申请人需要了解访问学者陪读签证的基本要求。通常情况下&…

如何在Kali Linux安装Xrdp+cpolar内网穿透实现远程访问Kali系统

文章目录 前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于,它允许用户从远程位置访问Kali系统,而无需直接物理访…

ubuntu debian mini安装系统 有线选项消失或ens33 ethernet 未托管解决方法

nmcli device status#修改NetworkManager.conf如下 sed s/false/true/ /etc/NetworkManager/NetworkManager.confsed -i s/false/true/ /etc/NetworkManager/NetworkManager.conf#重启生效systemctl restart NetworkManager

Vue3-12- 【v-for】循环一个整数

说明 v-for 这个东西就很神奇&#xff0c;可以直接循环一个整数&#xff0c;而且循环的初始值是从1 开始。使用案例 <template><div v-for"(num,indexB) in 6" :key"indexB">【索引 {{ indexB }}】 - 【数字 {{ num }}】 </div></t…

[多线程]线程池

目录 1.前言 2. Java中的线程池以及参数介绍 2.1 核心线程数和最大线程数 2.2最大空闲存活时间 2.3任务队列和线程工厂 2.4 拒绝策略(最重要&#xff09; 2.5 线程池的类型 3.线程池的大小如何确定 4.手动写一个线程池 1.前言 我们知道.在开发过程中.为了效率,会引进很…

激荡思享 驱动增长 | 湾数联·湾董会走进竹云

12月12日&#xff0c;由湾区数字科技产业联盟&#xff08;GBADA&#xff09;、湾盟产业创新服务中心&#xff08;GBAIC&#xff09;、深圳竹云科技股份有限公司联合主办的“湾数联湾董会”第一期在深圳南山区创智云城圆满举办。本期湾董会以“竹云IDaaS数字身份为企业数字化转型…

Amazon CodeWhisperer:AI 编程助手

文章作者&#xff1a;prigioni 1. 什么是 Amazon CodeWhisperer&#xff1f; Amazon CodeWhisperer 能够理解以自然语言&#xff08;英语&#xff09;编写的注释&#xff0c;并能实时生成多条代码建议&#xff0c;以此提高开发人员生产力。该服务可以直接在集成开发环境&#…

HTTP 301错误:永久重定向,大勇的冒险之旅

大家好&#xff0c;我是大勇&#xff0c;一个喜欢冒险的程序员。今天&#xff0c;我要和大家分享一个我在互联网世界中的冒险故事——如何处理HTTP 301错误&#xff1a;永久重定向。 那天&#xff0c;我像往常一样&#xff0c;打开我的代码编辑器&#xff0c;准备开始一天的工…

Java刷题篇——LeetCode118. 杨辉三角

1.题目描述 给定一个非负整数numRows&#xff0c;生成杨辉三角的前numRows行。 在杨辉三角中&#xff0c;每个数是它左上方和右上方的数的和。 示例1 输入&#xff1a;numRows 5 输出&#xff1a;[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1] 示例2 输入&#xff1a;numRows 1…

搜维尔科技:第九届元宇宙数字人设计大赛校园行讲演活动正式启动—中国戏曲学院站!

由全国高等院校计算机基础教育研究会指导&#xff0c;利亚德集团和爱迪斯通科技发起的数字人设计大赛正在火热进行中&#xff0c;同时进行的元宇宙数字人设计大赛校园行活动也正式拉开序幕&#xff0c;12月13日校园行活动—中国戏曲学院开讲。划重点&#xff1a;此次大赛已成为…

高性能国产TYPE-C/DP/EDP转MIPIDSI/CSI/LVDS,龙迅LT7911D,支持高达4K60HZ的分辨率

LT7911D概述&#xff1a; T7911D是一款高性能TYPE-C/DP/EDP转2 PORT MIPI或者LVDS的芯片&#xff0c;目前主要在AR/VR或者显示器上应用的很多&#xff0c;对于DP1.2输入&#xff0c;LT7911D可配置为1/2/4车道。自适应均衡化使其适用于长电缆应用&#xff0c;最大带宽可达21.6G…

ActiveMQ使用指南

介绍 ActiveMQ是Apache开源组织旗下的一个项目&#xff0c;是一个流行的开源消息中间件。它完全支持JMS1.1和J2EE1.4规范的JMS Provider实现&#xff0c;并且是纯Java开发的产品。ActiveMQ支持多种语言编写客户端&#xff0c;包括C,C,C#,Perl,PHP,Ruby,Ajax等&#xff0c;同时…

zk_dubbo

图灵面试笔记 zk dubbo spi dubbo 文章 dubbo与spring整合之Service、Reference注解处理过程 JAVA备忘录

Flutter:web项目跨域问题解决

前后端解决系列 文章目录 一、Flutter web客户端解决本地环境调试跨域问题二、Flutter web客户端解决线上环境跨域问题 一、Flutter web客户端解决本地环境调试跨域问题 就一句命令【--web-browser-flag "--disable-web-security"】&#xff0c;用来屏蔽浏览器域名请…