首页 > 其他分享 >MPLS 原理与配置

MPLS 原理与配置

时间:2025-01-19 23:28:15浏览次数:3  
标签:IP 标签 报文 配置 MPLS LSR 转发 原理

一.简介

  • MPLS,称之为多协议标签交换,在九十年代中期被提出来,用于解决传统IP报文依赖查表转发而产生的瓶颈,现多用于VPN技术,MPLS报头封装在数据链路层之上,网络层之下。
  • 本文为结合了华为技术和新华三技术的大成,即结合了HCIA,HCIP,HCIE Datacom和H3CNE-RS+,H3CSE-RS+,H3CIE-RS+。本文将主要介绍MPLS的基本概念,博主将会在MPLS专栏中持续更新关于MPLS的进阶内容。

二.MPLS基础

1.MPLS概述

(1)传统IP路由转发

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

(2)MPLS基本概念

  • MPLS位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有网络层提供服务。
  • 通过在数据链路层和网络层之间增加额外的MPLS头部,基于MPLS头部实现数据快速转发。
  • 本模块仅介绍MPLS在IP网络中的应用。

2.MPLS术语

(1)LSR与MPLS域

  • MPLS域(MPLS Domain):一系列连续的运行MPLS的网络设备构成了一个MPLS域。
  • LSR(Label Switching Router,标签交换路由器):支持MPLS的路由器(实际上也指支持MPLS的交换机或其他网络设备)。位于MPLS域边缘、连接其它网络的LSR称为边沿路由器LER(Label Edge Router),区域内部的LSR称为核心LSR(Core LSR)。

(2)LSR分类

  • 除了根据LSR在MPLS域中的位置进行分类之外,还可以根据对数据处理方式的不同进行分类:
    • 入站LSR(Ingress LSR):通常是向IP报文中压入MPLS头部并生成MPLS报文的LSR。
    • 中转LSR(Transit LSR):通常是将MPLS报文进行例如标签置换操作,并将报文继续在MPLS域中转发的LSR。
    • 出站LSR(Egress LSR):通常是将MPLS报文中MPLS头部移除,还原为IP报文的LSR。

(3)FEC

  • FEC(Forwarding Equivalence Class,转发等价类)是一组具有某些共性的数据流的集合,这些数据流在转发过程中被网络节点以相同方式处理。
    • 在MPLS网络中,FEC可以通过多种方式划分,例如基于目的IP地址及网络掩码、DSCP等特征来划分。
    • 数据属于哪一个LSP,由数据进入MPLS域时的Ingress LSR决定。
    • MPLS标签通常是与FEC相对应的,必须有某种机制使得网络中的LSR获得关于某FEC的标签信息。

(4)LSP

  • LSP(Label Switched Path,标签交换路径)是标签报文穿越MPLS网络到达目的地所走的路径。
  • 同一个FEC的报文通常采用相同的LSP穿越MPLS域,所以对同一个FEC,LSR总是用相同的标签转发。

3.MPLS标签

(1)MPLS标签介绍

  • IP报文进入MPLS域之前,会被入站LSR压入MPLS头部(又叫MPLS标签),形成一个MPLS标签报文。标签报文可以包含一个或多个MPLS标签。

  • 标签(Label):用于携带标签值,长度20bit。
  • EXP(Experimental Use):主要用于CoS(Class of Service),长度3 bit。
  • S(Bottom ofStack):栈底位,用于指示该标签头部是否为最后一层标签,长度1bit。如果该字段为1,则表示当前标签头部为栈底;如果该字段为0,则表示当前标签头部之后依然还有其他标签头部。
  • TTL(Time To Live):用于当网络出现环路时,防止标签报文被无限制转发,与IP报文头部中的TTL具有相同的意义,长度8 bit。

(2)MPLS标签栈

  • MPLS支持一层或多层标签头部,这些标签头部的有序集合被称为标签栈(Label Stack)。
  • 当标签栈中存在多个标签时,这些标签的顺序是非常讲究的:
    • 最靠近二层头部的标签是栈顶标签,标签中的S字段为0。
    • 最靠近IP头部的标签是栈底标签,标签中的S字段为1。

(2)标签空间

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

(3)MPLS标签的处理

  • LSR对标签的操作类型包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop)。

三.MPLS转发

1.基本概念

(1)MPLS转发概述

  • MPLS转发的本质就是将数据归到对应的FEC并按照提前建立好的LSP进行转发。
    • 对于整个MPLS域,LSP是某一给定的FEC进入域和离开域的路径,可以看成是LSR的有序集合。
    • 对于单台LSR,需要建立标签转发表,用标签来标识FEC,并绑定相应的标签处理和转发等行为。

  • 同一个FEC,若进入MPLS域的Ingress LSR(入站LSR)不同,转发时的LSP也不相同。
  • 同一个FEC,LSR的处理方式相同,不论这个FEC来自哪里(进入设备的接口)。
  • LSR的转发动作决定了LSP,而标签转发表确定转发动作,所以建立标签转发表也可以理解为建立LSP。
  • 如图所示,因为有着相同的目的地,所以这三份数据属于同一个转发等价类FEC1。同时由于入站LSR不同,这些数据将分别在LSP1、LSP2和LSP3上被转发。因为标签仅具有本地意义,所以每台LSR上给同一FEC分配的标签,可以相同,也可以不同。

(2)MPLS体系结构

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

  • 控制平面
    • 控制平面是无连接的,主要功能是负责产生和维护路由信息以及标签信息。
    • 控制平面包括:
      • 路由信息表RlB(RoutingInformation Base):由IP路由协议(IP Routing Protocol)、静态路由和直连路由共同生成,用于选择路由。
      • 标签信息表LIB(Label Information Base):用于管理标签信息,LIB中的表项可由标签交换协议(LDP、RSVP等协议)或静态配置生成。
  • 转发平面:
    • 转发平面也称为数据平面,是面向连接的,主要功能是负责普通IP报文的转发以及带MPLS标签报文的转发。
    • 转发平面包括:
      • 转发信息表FlB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
      • 标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,负责带MPLS标签报文的转发。

2.LSP建立

(1)LSP建立原则

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

(2)LSP建立方式

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

(3)MPLS标签转发

  • LSR处理报文时主要根据FTN、NHLFE和ILM。

3.标签转发

(1)Ingress LSR的处理

  • 在Ingress LSR,通过查询FIB表(得到FTN信息)和NHLFE表指导报文的转发。
  • 当IP报文进入MPLS域时,首先查看FIB表,检查目的IP地址对应的TunnelID值是否为0x0。
    • 如果TunnelID值为0x0,则进入正常的IP转发流程。
    • 如果TunnelID值不为0x0,则进入MPLS转发流程。

(2)Transit LSR的处理

  • 在Transit LSR,通过查询ILM表和NHLFE表指导MPLS报文的转发。

(3)Egress LSR的处理

  • 在Egress LSR,通过查询ILM表指导MPLS报文的转发。

(4)MPLS详细转发流程

四.静态LSP配置

1.基本配置命令

说明:MPLS配置实验会在本专栏持续更新,可以持续关注。

标签:IP,标签,报文,配置,MPLS,LSR,转发,原理
From: https://blog.csdn.net/Lxyand1/article/details/145233000

相关文章

  • arch连接和配置tor
    本文写现在如何在clash(mihomo)配置完成之后通过网桥链接tor网络我的环境变量$cat/etc/environment##Thisfileisparsedbypam_envmodule##Syntax:simple"KEY=VAL"pairsonseparatelines##XDG_SESSION_TYPE=waylandXDG_CURRENT_DESKTOP=Hyprlandhttp_......
  • Kubeadm 启动原理之静态 Pod 技术
    Kubeadm启动原理之静态Pod技术1.作用静态Pod是一种特殊的KubernetesPod类型,允许你在不通过kubectl命令来创建Pod的情况下,通过直接将Pod资源清单放置在Kubelet可识别的目录中来创建Pod。Kubelet会定期检查该目录并自动管理这些Pod。对于kubeadm部署方式来......
  • Mac 刷题环境配置
    Mac刷题环境配置这篇博文主要记录自己为了更方便的在Mac上写算法题,主要是基于Clion做的一些环境配置;有些操作其实在Windows,Linux下也是通用的,如果看到的小伙伴也可以结合自己的情况参考。Clion插件推荐一下这个插件C/C++SingleFileExecution,因为刷算法题主要是单......
  • docker在网桥模式下主机端口映射到容器端口的原理
    前置知识iptables:捕获并控制容器和主机之间的流量,可以通过iptables-tnat-nL命令查看iptables的(S/D)NAT规则docker0:虚拟交换机veth1b62ff4@if56:虚拟交换机的虚拟接口上下两个虚拟接口成对出现eth0@if57:容器的虚拟接口网络环境CentOS:ens33->192.168.40.180/24、docker......
  • 如何解决phpMyAdmin导出时提示“当前表单包含的字段多于 1000,受限于PHP 中 max_input_
    常见原因max_input_vars 设置过低:默认情况下,max_input_vars 的值为1000,当表单字段超过这个数量时,就会触发警告。表单字段过多:某些大型数据库或复杂的表单可能会包含超过1000个字段。解决方法方法一:修改 php.ini 文件找到 php.ini 文件:php.ini 文件通常位于PHP安......
  • 如何在IIS中配置https重定向到http?
    问题描述:如何在IIS架构的服务器中配置https重定向到http?答案:将以下代码另存为web.config文件后保存到网站根目录即可生效。<?xmlversion="1.0"encoding="UTF-8"?><configuration><system.webServer><rewrite><rules>......
  • 微服务-网关及其配置
    一、网关的概述(1)什么是网关二、网关路由1.快速入门(1)创建新模块(2)引入网关依赖<!--网关--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>......
  • 极简python编程 CH0--python的下载与环境配置
    写在前面    本教程是一篇极简python教程,旨在使读者能够在最短的时间内掌握python的基础语法并能进行简单的数据处理工作。    由于本教程的目标读者是所有水平的编程初学者,因此所涉及的内容必然都是最简单的,且必然会有一定疏漏,希望各位大佬多多包涵orz。 ......
  • Windows环境下xmake安装配置,创建编译运行项目
     Windows环境下xmake安装配置,创建编译运行项目视频地址:https://www.bilibili.com/video/BV1NHwqe3Ewn/?spm_id_from=333.1387.homepage.video_card.click&vd_source=7c7ae5cc1dbb2453e1eb43950a4264a31、访问xmake网站,根据安装环境选择对应安装方法(1)访问网站:https://xmake.i......
  • Android系统开发(十):标准协议和通讯的桥梁:探索蓝牙、NFC、WLAN 的工作原理
    引言:现代社会已经是信息互联的世界,各种设备之间的互联互通已经成为了生活的一部分。而在这个过程中,Android设备与其他硬件之间的通信扮演着至关重要的角色。从蓝牙耳机到WiFi路由器,甚至与电话功能的互动,所有这些连接都依赖于标准Android连接协议的支持。本篇文章将带......