HCIP之MPLS

news2025/1/19 8:17:59

目录

MPLS

MPLS --- 多协议标签交换

包交换

标签交换

包交换的变更

MPLS主要应用于三大领域

​编辑

MPLS和包交换一样,其过程也可以分为控制层面和数据层面

标签交换过程(数据层流量)

标签解读

静态搭建LSP

创建路由条件

配置MPLS

        配置LSR - ID

        激活MPLS

        搭建静态LSP


MPLS

MPLS --- 多协议标签交换

包交换

        包交换 --- 数据组成数据包,之后,在各个网络节点中不断传递,最终达到目标。(可以简单的理解为是三层转发的过程)

包交换转发效率不高的问题所在:

  1. 完成过程需要查两张表 --- 路由表ARP缓存表

  2. 路由表的匹配原则 --- 最长匹配原则导致路由表的查询效率不会太高

  3. 递归查找 --- 在一定情况下,设备需要递归查出接口或者下一跳

  4. IP头部(IPV4)是可变长头部 --- 则处理头部信息时必须依靠软件来处理。相对而言,以基于硬件来实现(通常使用支持二元运算的硬件芯片。如:CAM),这样,即使数量很多,也可以在短时间内完成匹配动作,效率远高于路由表的软件查找

标签交换

        在二层和三层封装之间添加一个与路由条目存在映射关系的标签,之后,维护一张记录接口表,携带标签的数据来到设备上,将先看到标签,之后,基于维护的表进行转发,而不看三层的数据。因为标签本身短小而且定长,所以其转发效率应该高于包交换

注意:

        标签交换需要给数据包中先打上标签,之后达到目标之前,还需要弹出标签,因此标签是传输过程中提高转发效率的手段。因为有这些动作的存在,所以标签交换转发效率的提升相较于包交换不明显

包交换的变更

        因为标签交换的转发效率并不是很明显,所以,在数据转发上又继续研发改进包交换,至今,存在三次大的变更:

        进程交换 --- process switching --- 最早的包交换,就是每个数据包到设备上需要先查看路由表,之后再看ARP缓存表来确定二层封装内容

        快速包交换 --- fast switching --- 基于流的包交换 --- 一次路由多次交换 --- 一股数据流来到设备上,只需要针对数据流中的第一个数据包进行路由查询过程,之后,将数据包的特征(一般使用五元组来标识数据流)及转发方式记录缓存中,之后,数据流中的其他数据来到设备上,将直接比对缓存中的特征,比对上则直接按照转发方式进行转发,而不需要所有数据包都进行路由过程,可以极大地提高效率

        思科的特快交换技术 --- Cisco Express Forwading --- 简称CEF(思科私有),其思路就是将路由表和ARP缓存表中的内容进行预读取,之后都记录在CEF表中。并且该表支持硬件转发。

        虽然CEF技术是思科的私有技术,但是各大厂商也基于其思路设计出了属于自己特快交换技术。华为设备在进行路由转发时就基于FIB(转发信息表),该表是支持硬件转发的。

        MPLS --- 和包交换共同发展的一个标签交换技术 --- 因为标签交换中的标签需要跟路由信息相关,所以MPLS协议作为多标签交换技术,可以识别兼容多种三层协议(IPV 4,IPV6),其兼容性较强

MPLS主要应用于三大领域

  1. 用于解决BGP的路由黑洞问题

  2. MPLS VPN

  3. MPLS TE --- 流量工程 --- 简单理解为控制流量转发的路径

        所用路由器激活MPLS之后,将按照MPLS的规则实现标签交换,这些运行了标签交换的设备所组成的网络,我们称为MPLS域

        所有运行MPLS的路由器都可以称为LSR(标签交换路由器)

        因为所有匹配到同一条路由的所有数据报文,他们最终走的路线都是一样的,所以我们只需要分配同一个标签即可。在MPLS中,我们把这些具有相同特征的数据报文称为FEC --- 等价转发类。一个FEC只需要分配一个标签即可

        标签分配后,设备需要将路由信息和标签的映射关系记录在一张表中 --- LIB(标签信息表)后,结合FIB表,生成LFIB(标签转发表) --- 这张表中记录的是标签编号对应出接口下一跳信息

MPLS和包交换一样,其过程也可以分为控制层面和数据层面

包交换

        控制层面 --- 路由协议的数据流方向,目的是为了获取位置网段的路由信息生成路由表

        数据层面 --- 设备基于已经完善的路由表(FIB表),来转发具体的数据信息,其方向和控制层面相反

MPSL

        控制层面 --- 基于FEC分配标签,并获取其他LSR对同一个FEC分配的标签,记录生成LIB表,之后再结合FIB表生成LFIB表(这个过程可以通过手工静态实现,也可以基于动态协议来完成 --- LDP协议 --- 标签分发协议

        数据层面 --- 设备基于LFIB表,根据标签进行转发

标签交换过程(数据层流量)

        入站LSR (ingress)--- MPLS域的一个边界,之前数据包中不存在标签,数据来到设备上之后,需要压入标签,完成压入动作的设备,我们称为入站LSR

        中转LSR (transit) --- 在标签交换过程中完成标签配置换动作的LSR

        出站LSR (egress) --- 也是MPLS域的边界,完成标签的弹出动作,之后基于三层IP头部进行包交换的LSR设备

        标签交换数据流量走过的路径 --- R1-R2-R3-R4,这条路径我们称为LSP --- LSP分方向,如果想要实现1.0网段和4.0网段互通除了要有R1-R2-R3-R4这条LSP外还需要构建一条R4-R3-R2-R1的LSP

        LSP构建 --- 静态,LDP协议

标签解读

         Label --- 标签号 --- 前20位(0-2^20 --- 这个标签的取值范围可以理解为标签空间),是标签转发的主要标识依据。

                        0 -15 --- 特殊标签值 --- 不能直接分配,每一个都存在特殊含义

                        16 - 1023 --- 一般用于静态LSP的搭建

                        1024 - 2^20 --- LDP等一些动态协议分配标签的取值范围

        EXP --- 3位(0-7) --- 主要用于做策略 --- 可以理解为优先级,数值越大优先级越高,越高则可以优先转发数据

        S --- 栈底位 --- 仅占1位(0-1) --- 如果存在多个标签,需要使用这个标记位进行表示。如果是最后一个标签,则栈底位置1,不是则置0。如果只有一个标签,则栈底位置1

注意:

        标签不止可以打一个,可以打两个或多个。这些标签头部的有序集合我们称为标签栈

        TTL --- 生存时间 --- 和三层IP头部中的TTL值作用一样,每经过一台设备转发需要减1,因为在标签交换过程中,不看IP头部,所以,TTL的计数作用就放在了标签中了。在进入MPLS域时,由入站LSR将IP头部中的TTL值复制压入到标签中,之后,离开MPLS域时,再弹出标签时,将标签中的TTL值再复制回IP头部

静态搭建LSP

创建路由条件

       路由条件 --- 静态搭建LSP不需要所有设备都具备路由信息,因为所有路径都需要人工手工说明。只有边界(入站LSP与出站LSP)会被需要具备路由,因为他们将会核查条件

[R1]ip route-static 4.4.4.0 24 12.0.0.2

配置MPLS

        配置LSR - ID

                MPLS要求每台LSR设备都拥有唯一的身份标识,我们使用LSR-ID来标识,这个参数由32位二进制构成,按照IP地址格式配置。但是,只能手动配置不能自动生成(注意 --- 一般情况下我们习惯使用设备的环回接口IP地址作为LSR-ID)

[R1]mpls lsr-id 1.1.1.1

        激活MPLS

                全局激活

[R1]mpls
Info: Mpls starting, please wait... OK!
[R1-mpls]

                接口激活 --- 所有参与MPLS转发的接口都需要激活

[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]mpls

        搭建静态LSP

                配置入站LSR

[R1]static-lsp ingress lto4 destination 4.4.4.0 24 nexthop 12.0.0.2 out-label 16

注意:

        destination 4.4.4.0 24 nexthop 12.0.0.2 --- 需要和本地路由表中的下一跳对应上,否则静态LSP搭建失败

        out-label --- 出站标签 --- 即R1将数据包转发后压入的标签,R2收到数据包后,需要根据这个标签判断到底是到达哪个网段的数据包 --- 下一跳设备接受后需要根据这个标签判断数据到达哪个网段

[R1]static-lsp ?
  egress   Egress node --- 出站LSR
  ingress  Ingress node --- 入站LSR
  transit  Transit node --- 中转LSR
[R1]static-lsp ingress ?
  STRING<1-19>  Name of LSP(Label Switched Path) --- 起名字

                配置中转LSR

[R2]static-lsp transit lto4 incoming-interface GigabitEthernet 0/0/0 in-label 16
 nexthop 23.0.0.2 out-label 17

注意:

        incoming-interface --- 数据进入的接口

        int-lable --- --- 入站标签 --- 必须和上一跳配置的出战标签相同

                配置出站LSR

[R4]static-lsp egress lto4 incoming-interface g 0/0/0 in-label 18 

MultiProtocol Label Switching Header, Label --- 为添加的标签

[R1]display fib
Route Flags: G - Gateway Route, H - Host Route,    U - Up Route
             S - Static Route,  D - Dynamic Route, B - Black Hole Route
             L - Vlink Route
--------------------------------------------------------------------------------
 FIB Table:
 Total number of Routes : 11 
 
Destination/Mask   Nexthop         Flag  TimeStamp     Interface      TunnelID
12.0.0.255/32      127.0.0.1       HU    t[6]          InLoop0        0x0
12.0.0.1/32        127.0.0.1       HU    t[6]          InLoop0        0x0
1.1.1.255/32       127.0.0.1       HU    t[3]          InLoop0        0x0
1.1.1.1/32         127.0.0.1       HU    t[3]          InLoop0        0x0
255.255.255.255/32 127.0.0.1       HU    t[3]          InLoop0        0x0
127.255.255.255/32 127.0.0.1       HU    t[3]          InLoop0        0x0
127.0.0.1/32       127.0.0.1       HU    t[3]          InLoop0        0x0
127.0.0.0/8        127.0.0.1       U     t[3]          InLoop0        0x0
1.1.1.0/24         1.1.1.1         U     t[3]          Loop0          0x0
12.0.0.0/24        12.0.0.1        U     t[6]          GE0/0/0        0x0
4.4.4.0/24         12.0.0.2        GSU   t[7]          GE0/0/0        0x1
[R1]

注意 :

        4.4.4.0/24 12.0.0.2 GSU t[3502] GE0/0/0 0x1 --- 如果,在入站LSR上,需要根据FIB表中标识判断需要走标签交换,标识就是tunnel ID 为非0时

[R1]display mpls static-lsp --- 查看静态LSP表

[R4]display mpls static-lsp
TOTAL          :	2       STATIC LSP(S)
UP             :	2       STATIC LSP(S)
DOWN           :	0       STATIC LSP(S)
Name                FEC                I/O Label    I/O If                Status
lto4                -/-                18/NULL      GE0/0/0/-             Up    
4to1                1.1.1.0/24         NULL/1000    -/GE0/0/0             Up    

————————————————
版权声明:本文为CSDN博主「White乄joker」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_57289939/article/details/130160037

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

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

相关文章

arduino自用简单图形化编程仿真

傻瓜式编程真的很适合初学者 这边就不提fritzing和proteus的pcb设计了 就推荐几个简单的 1、linkboy 官方网址&#xff1a;http://linkboy.com.cn/index.html 也有官方教程点我 使用方法&#xff1a;官网下载软件 优点&#xff1a;元器库特别丰富&#xff0c;还具备语音识别、…

新网站多久被google收录?谷歌当天收录网站靠谱吗?

新网站多久被google收录&#xff1f; 答案是&#xff1a;24小时内。 为什么你做的外贸网站在Google搜索引擎一直不收录或者收录很慢。 其实有一个很关键的原因&#xff0c;那就是谷歌爬虫到底有没有到你网站的页面上去抓取数据。 很大可能是没有&#xff0c;当然你可以通过…

ctfshow web入门 nodejs 334-341(更新中)

前言 说实在也没啥好说的&#xff0c;希望大家要有勇气&#xff0c;向难题挑战&#xff0c;别像我一样自始至终都是一个菜狗&#xff0c;哎。 这里在刚开始的&#xff0c;我就有一个问题就是我发现刚开始使用的是require来导入模块&#xff0c;但是到了后面发现大部分使用的都是…

5G网络优化工程师入职企业,都有什么不同呢?

通信行业内的网络优化工程师后期入职主要是在设备商、运营商&#xff0c;运营商的合作单位。 熟悉通信行业的同学肯定了解这个行业最基本的可以分为运营商和设备商&#xff0c;运营商在国内就是移动、联通、电信&#xff0c;广电四家&#xff0c;这四家目前不管是薪资、职业发展…

自动语音识别模型whisper安装和初探

whisper介绍 whisper是OpenAI 最近发布的语音识别模型。OpenAI 通过从网络上收集了 68 万小时的多语言&#xff08;98 种语言&#xff09;和多任务&#xff08;multitask&#xff09;监督数据对 Whisper 进行了训练&#xff0c;whisper可以执行多语言语音识别、语音翻译和语言…

swing-扩展徽章组件JEBadge

前言 因为工作原因&#xff0c;好久没有写swing组件了&#xff0c;最近准备优化一个功能,希望有类似徽章的功能。 徽章在平时的app和h5 页面上经常常见 &#xff0c;那么在swing中如何实现一个徽章功能呢。 技术分析 为什么不选择绘制方式&#xff0c;却选择JLayeredPane &a…

《程序员面试金典(第6版)》面试题 08.14. 布尔运算(动态规划,分治,递归,难度hard++)

题目描述 给定一个布尔表达式和一个期望的布尔结果 result&#xff0c;布尔表达式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符号组成。实现一个函数&#xff0c;算出有几种可使该表达式得出 result 值的括号方法。 示例 1: 输入: s “1^0|0|1”, result 0 …

STM32 LCD-ADC-DMA实验

目录 1.1 STM32 DMA简介 1.2 STM32 DMA的操作 1.DMA的初始化 2. 初始化代码 3. 主函数代码 本文将向大家介绍 STM32 的 DMA。(如有错误&#xff0c;欢迎批评指正) 在本章中&#xff0c;我们将利用 STM32 的 DMA 来实现ADC1通道1内数据传送&#xff0c;并在 TFTLCD 模块上显…

图像处理学习——基于霍夫变换(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 霍夫变换是一种在图像中寻找直线、圆形以及其他简单形状的方法。 霍夫变换采用类似于投票的方式来获取当前图像内的形状集合&…

银河麒麟之语言设置和服务开机自启动设置

一、前言 银河麒麟操作系统作为国产操作系统&#xff0c;是目前国产化、信创等项目场景的主流操作系统之一&#xff0c;但它本质上还是基于现有的开源操作系统上的二次开发&#xff0c;银河麒麟服务器版是基于centos的&#xff0c;银河麒麟桌面版是基于debain的。既然是国产化系…

CAPL语言

1. CAPL简介 CAPL&#xff0c;Communication Access Programming Language&#xff0c;即通信访问编程语言类C语言2. CAPL主要用途 仿真节点或模块仿真时间报文、周期报文或者附加条件的重复报文使用PC键盘模拟操作按钮等人工操作事件仿真节点的定时或网络事件仿真多个时间事…

从编译器角度理解C++代码的编译和链接原理

在本文中&#xff0c;我们将探讨C代码的预处理、编译和链接过程。我们将详细介绍每个过程的作用和步骤&#xff0c;并通过代码演示来解释这个过程。 预处理 C代码预处理是将源代码转换为另一个源代码的过程&#xff0c;其中包括宏展开、条件编译、头文件包含等操作。预处理器…

Level3题目整理

文章目录L3-001 凑零钱L3-002 特殊堆栈L3-003 社交集群&#xff08;并查集vector暴力⭐&#xff09;L3-004 肿瘤诊断(三维bfs)L3-005 垃圾箱分布&#xff08;多次dijkstra&#xff09;L3-008 喊山&#xff08;邻接表bfs&#x1f53a;&#xff09;L3-010 是否完全二叉搜索树&…

C++ STL学习之【list的模拟实现】

✨个人主页&#xff1a; 夜 默 &#x1f389;所属专栏&#xff1a; C修行之路 &#x1f38a;每篇一句&#xff1a; 图片来源 A year from now you may wish you had started today. 明年今日&#xff0c;你会希望此时此刻的自己已经开始行动了。 文章目录&#x1f307;前言&am…

零售数据分析之操作篇12:子查询的应用

各位数据的朋友&#xff0c;大家好&#xff0c;我是老周道数据&#xff0c;和你一起&#xff0c;用常人思维数据分析&#xff0c;通过数据讲故事。 上期内容与作业 上一讲讲了占比相关内存计算的应用场景&#xff0c;包括占比、TOP占比、累计占比等&#xff0c;不同的占比&am…

sinGAN论文笔记

Background Knowledge 基于推理的视觉理论&#xff1a; 只根据图像数据本省不能对相对应的物体空间结构提供充分的约束&#xff0c;也就是说这是一个约束不充分的问题&#xff0c;因此为了理解图像的内容必须要有附加的约束条件&#xff08;例如知道图中是哪一类物体的知识&am…

帮助中心能帮助企业解决什么问题?

帮助中心是企业在网站、应用程序或其他数字渠道上提供的一种资源&#xff0c;旨在帮助客户解决问题、回答常见问题并提供支持。一个完善的帮助中心可以为企业带来很多好处&#xff0c;包括提高客户忠诚度、提高满意度、降低客户支持成本等。 帮助中心能帮助企业解决的问题 提…

为什么会有JMM?从0到1一次性说清楚

JMM&#xff08;Java Memory Model&#xff09;是一种规范&#xff0c;定义了在多线程环境下Java程序中的内存访问行为。JMM保证了在多线程环境下程序的正确性&#xff0c;同时也允许编译器和处理器对指令进行优化&#xff0c;以提高程序的性能。 Java线程之间的通信由Java内存…

网络编程套接字(一)

学习任务&#xff1a; 我们先来认识端口号&#xff0c;区分好主机IP和端口号的区别&#xff0c;以及涉及到进程PID和端口号的区别。 然后简单认识一下TCP协议和UDP协议&#xff0c;这两个协议都是传输层的。接着了解什么是网络字节序&#xff0c;它有什么作用。然后是网络编程的…

Windows搭建Typecho个人博客并发布公网访问【内网穿透】

文章目录前言1. 环境安装2. 安装Typecho3. 安装cpolar内网穿透4. 固定公网地址5. 配置Typecho前言 本文小新为大家带来windwos系统搭建typecho博客cpolar内网穿透工具将博客发布到公共网络环境教程。 Typecho是一款PHP语言编写的开源博客程序&#xff0c;它是一个轻量级的内容…