MPLS多协议标签交换

news2024/12/24 2:23:11

最初MPLS多协议标签交换和包交换是竞争关系

随着包交换的快速发展为特快包交换

MPLS最终落败但开展其它业务并且还使用了特快包交换中的FIB表

开展业务为:

  • 解决BGP路由黑洞的最佳方案
  • MPLS VPN  
  • MPLS TE 流量工程

MPLS多协议标签交换

工作过程

控制层面:路由协议工作,生成RIB-FIB,流量的方向即为控制流量;

数据层面:设备基于路由表访问目标,产生数据流量;与控制层面方向相反;

工作原理

控制层面:RIB --> FIB      LIB      FIB + LIB  =  FLIB

  1. 在没有MPLS时控制层面仅生成RIB(路由表)和FIB(转发信息数据库);FIB是基于RIB生成;
  2. MPLS协议会启动TDP(cisco私有)或LDP(公有),直连设备间将建立邻居关系;
  3. MPLS在建立邻居关系后,生成邻居表;LDP协议再基于FIB表中学习到的路由条目生成标签号;
  4. 标签号生成后,将存储于本地的LIB-标签信息数据库;LIB表将在邻居间共享;   LIB表中装载本地及邻居为每条路由分发的标签号;
  5. 运行MPLS协议的设备,将LIB和FIB进行结合,将标签号和最佳路径的关系映射生成LFIB表(标签转发信息数据库)   

注:控制层面生成的表格RIB—》FIB---》LIB---》LFIB   前两张表为路由协议工作后生成,后两张表为MPLS的LDP协议生成;

数据层面:

  1. 第一跳压入标签号pe边界LSR  
  2. 中间的路由器 p LSR基于标签号,查询本地LFIB表转发
  3. 最后一跳弹出标签 pe设备  边界LSR

包交换会将路由记录在RIB表中,运行了CEF的设备会将RIB表转换为FIB表。

MPLS协议由TDP(cisco私有)或者LDP来运行。运行MPLS协议的设备两两建邻,LDP基于FIB表中的路由条目来分配标签号存储在LIB(标签信息数据库)中。将标签表共享给邻居。最后,每个设备上都有所有设备发出的标签号,设备基于LIB和FIB生成为LFIB表来整合出转发规则表(最佳)。

标签转发路由器

 中间蓝色的为背景覆盖为MPLS域,也就是MPLS协议的范围。

旁边的EdgeLSR为边界标签路由器。负责压标签和弹标签。PE设备

中间的LSR为标签路由器负责转发标签。P设备

MPLS的次末跳  倒数第二跳,默认执行

边界LSR将本地的直连网段传递给MPLS域内邻居后,LDP分配标签号为3,告知倒数第二跳设备它的身份;导致倒数第二跳设备在查询LFIB表后,已知转发路径的前提下提前弹出标签,使得最后一跳路由器均只需要查询FIB表; 否则最后一跳路由器在查询LFIB表后,弹出标签还需要查询FIB;

MPLS的配置

  1. IP可达,使用路由协议全网可达 
  2. 配置MPLS-LDP

[r2]mpls lsr-id 2.2.2.2    必须先定义mpls的router-id,要为本地设备的真实ip地址且邻居可达,因为该地址将用于建立TCP会话,建议使用环回地址

[r2]mpls             再开启mpls协议

[r2-mpls]mpls ldp      再激活LDP协议

[r2-mpls-ldp]q

之后需要在所有标签经过的接口上开启协议

[r2]interface GigabitEthernet 0/0/1

[r2-GigabitEthernet0/0/1]mpls    先开启MPLS

[r2-GigabitEthernet0/0/1]mpls ldp   再激活LDP协议

当启动配置完成后,邻居间使用UDP报文组播收发hello包;之后基于hello包中的router-id地址进行TCP会话的建立;

[r3]display tcp status

TCPCB    Tid/Soid Local Add:port        Foreign Add:port      VPNID  State

b4cf3d64 167/6    3.3.3.3:646           4.4.4.4:50858         0      Established

b4cf3adc 167/3    3.3.3.3:50806         2.2.2.2:646           0      Established

当tcp会话建立后,邻居间基于TCP会话再建立邻居关系,生成邻居表

[r3]display  mpls ldp peer   查看邻居表

再然后基于本地的FIB表,默认华为仅针对32位的主机路由生成标签号;存储于LIB表中,之后邻居间共享LIB表;

[r3]display  fib  查看FIB表

[r4]display  mpls ldp  lsp    查看LIB表,装载本地和邻居为各条路由分配的标签号

最后路由器将LIB和FIB集合,生成最佳路径的标签转发规则—LFIB

[r4]display mpls lsp  查看LFIB表

注:默认华为仅针对32位主机路由分配标签,mpls域内的路由器都要写

[r3]mpls

[r3-mpls]lsp-trigger all   开启功能,将针对fib表中所有路由进行标签号的分配

[r2]tracert -v -a 2.2.2.2 56.1.1.2

除了用wireshark查看包,也可以使用追踪命令

BGP路由黑洞 

MPLS协议并不会为通过BGP协议学习的路由条目分配标签号;

而是在访问这些BGP路由目标网段时,在流量中压入到达这些网段的BGP下一跳设备地址的标签号;

例:R2从BGP邻居5.5.5.5 学习到6.6.6.0 网段的路由;R2在访问6.6.6.0 时,将在数据包中压入到达5.5.5.5ip地址的标签号,来穿越中间没有运行BGP协议的设备;实现打破路由黑洞;

注:华为设备默认不为BGP协议执行下一跳标签机制,cisco默认执行;

华为设备需要开启  route recursive-lookup tunnel   路由基于隧道进行递归查找  

 MPLS-VPN

VPN和真实专线比较缺点:

安全 --- ipsec 系列vpn

带宽稳定

MPLS VPN是运营商帮用户做的虚拟专线,比用户自己做的家庭VPN稳定和安全,价钱比真正的专线低很多

MPLS-VPN实验

私有地址和公有地址的区别

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

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

相关文章

【Apollo星火计划】—— Cyber基础概念|通信机制

文章目录 前言基本概念1Cyber简介通信构成Bazel简介 TEST1. 构建单包工程TEST2. 构建多包工程基本概念2话题通信服务通信参数通信数据通信基础ProtobufProtobuf简介Protobuf 文件编写Protobuf编译 TEST3. protobuf实验TEST4.C话题通信实践案例TEST5.C服务通信实践案例TEST6.C参…

electron dialog.showMessageBox使用案例

electron 版本&#xff1a;25.3.1 index.html <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>Hello World!</title><meta http-equiv"Content-Security-Policy" content"script-src self unsa…

在linux中进行arm交叉编译体验tiny6410裸机程序开发流程

在某鱼上找了一个友善之臂的Tiny6410开发板用来体验一下嵌入式开发。这次先体验一下裸机程序的开发流程&#xff0c;由于这个开发板比较老旧了&#xff0c;官方文档有很多过期的内容&#xff0c;所以记录一下整个过程。 1. 交叉编译器安装 按照光盘A中的文档《04- Tiny6410 L…

C语言非常道 c0609.c 练习6.8

结构类型处理复杂的数据 结构声明位于源文件的开头&#xff0c;相当于结构类型的全局声明 注意&#xff1a;读取或者写入某个文件&#xff0c;都要先打开文件 写入读出函数的参数类型&#xff0c;实参和形参的类型要对应&#xff1b; 上述&#xff1a; & emp 得到一个指向…

Appium+python自动化(二十一)- 让猴子按你指令大闹手机,让我们都成为耍猴高手(超详解)

耍猴第一式 - 隐藏命令 monkey隐藏的两个命令&#xff1a; 1 –pck-blacklist-file<黑名单文件><br><br>–pck-whitelist-file<白名单文件> monkey还有一个隐藏的命令那就是&#xff1a; 1 –f<脚本文件>:可以指定monkey的自定义脚本 一般…

批处理下载视频

一、安装annie Github 上 annie 下载神器的安装及使用教程: https://blog.csdn.net/qq_41780295/article/details/119795152 二、视频下载 安装了annie之后&#xff0c;我们就可以使用命令行下载视频文件了&#xff1b; 例如&#xff0c;打开B站&#xff0c;随便点开一个视频…

能耗监测管理系统

能耗监测管理系统是一种用于监测和管理能源消耗的软件系统&#xff0c;可以帮助企业、机构或个人实现对能源消耗的实时监控、分析和管理。随着能源问题的日益凸显&#xff0c;能耗监测管理系统的重要性也越来越受到人们的关注。本文将从以下几个方面介绍能耗监测管理系统。 一、…

springboot 项目启动不打印spring 启动日志

今天项目遇到一个很奇怪的问题&#xff0c;服务在启动时&#xff0c;不打印spring 的启动日志。经过排查发现是因为其他的依赖引入了 log4j 的依赖&#xff0c;因为我们的项目用的是logback&#xff0c;所以项目中没有log4j 的相关配置&#xff0c;所以干扰到了日志的打印 原因…

使用IntelliJ Idea开发Flink应用程序

使用IntelliJ Idea开发Flink应用程序 一、实验目的二、实验内容三、实验原理四、实验环境五、实验步骤5.1 启动IntelliJ Idea并创建flink项目5.2 编写flink代码5.2.1 准备工作5.2.2 批处理5.2.3 有界流处理5.2.4 无界流处理 ⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何…

剑指Offer第一章——整数

1. 整数 1.1 整数的基础知识 整数是一种基本的数据类型。编程语言可能会提供占据不同内存 空间的整数类型&#xff0c;每种类型能表示的整数的范围也不相同。例如&#xff0c;Java中有4种不同的整数类型&#xff0c;分别为8位的byte&#xff08;-&#xff5e;-1&#xff09;、…

Minecraft 1.20.x Forge模组开发 04.动画效果物品

我们本次实现一个具有动画效果的流星锤: 效果演示 效果演示 效果演示 首先,请确保你的开发包中引入了geckolib依赖,相关教程请参考:Minecraft 1.20.x Forge模组开发 03.动画生物实体 1.首先我们要使用geckolib制作一个物品和对应的动画: 在blockbench中新建一个

Android TelephonyManager双卡获取数据开启状态异常的可能原因

背景 应用内不指定subId获取数据状态可能会错误&#xff0c;因为可能拿到voice的能力&#xff0c;而非data。 代码逻辑 1、通过TelephonyManager的isDataEnabled()没有指定subId时&#xff0c;调用内部方法isDataEnabledForReason&#xff0c;传入getId()参数以指定subid&am…

设备监测诊断与维护:优化工业生产效率的关键措施

在现代工业生产中&#xff0c;设备的稳定运行对于保障生产效率至关重要。设备监测、诊断和维护作为关键措施&#xff0c;能够帮助企业及时发现设备问题、诊断故障原因&#xff0c;并采取有效维护措施&#xff0c;从而降低生产中断风险&#xff0c;提高生产效率。本文将深入探讨…

【二叉树】利用前序和中序遍历结果生成二叉树并输出其后序和层序遍历结果

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; ⭐️往期关于树的文章&#xff1a; 【哈夫曼树】基本概念、构建过程及C代码 【线索二叉树】C代码及线索化过程详解 欢迎阅读&#xff01; 实验内容 根据二叉树先序和中序遍历的结果,生成该二叉树。并…

pytest自动化测试框架tep环境变量、fixtures、用例三者之间的关系

tep是一款测试工具&#xff0c;在pytest测试框架基础上集成了第三方包&#xff0c;提供项目脚手架&#xff0c;帮助以写Python代码方式&#xff0c;快速实现自动化项目落地。 在tep项目中&#xff0c;自动化测试用例都是放到tests目录下的&#xff0c;每个.py文件相互独立&…

低代码治好了CIO们的 “精神内耗”

目录 一、前言 二、低代码在企业数字化转型中能“C位出道”&#xff0c;凭什么&#xff1f; 三、低代码的数字化构建能力 四、结束语 一、前言 近两年&#xff0c;我发现身边的CIO/CTO朋友都得了一种“病”——“数字化焦虑”症。 他们经常皱着眉头问我&#xff1a;“老板对数字…

gradio初体验

背景 近期随着很多开源大模型的出现&#xff0c;对于其如何落地&#xff0c;或者说充分地去挖掘其实际应用领域和商业价值变得格外重要。于是乎&#xff0c;对于不懂技术的前方市场或销售人员&#xff0c;如何在没有形成AI产品之前向其展示算法模型效果呢&#xff1f;这时候gr…

【严重】Citrix ADC 和 Citrix Gateway 远程代码执行漏洞(PoC)

漏洞描述 Citrix ADC是应用程序交付和负载平衡解决方案&#xff0c;Citrix Gateway是一套安全的远程接入解决方案&#xff0c;常用于提供虚拟桌面和远程桌面服务&#xff0c;此外&#xff0c;Citrix ADC还被广泛用作Windows堡垒机。 在 Citrix ADC 和 Citrix Gateway 受影响版…

《我为什么要听你的 如何与强势的人相处》读书笔记二

目录 反驳例子 勇敢反击的益处 一些重要的自我保护法 不要再讲述你生活中的细节 别答应那些表意不明的请求 记录下一切 第一时间告知亲友 拒绝成为中间人 区别对待强势者 谨慎应对奉承话 想方设法快点跑 反驳例子 例子 例子&#xff1a; 例子&#xff1a; 例子&am…

什么是UE像素流送,像素流推流是什么原理?

游戏开发者通常在运行游戏逻辑时会将游戏渲染到屏幕的同一台设备上来运行虚幻引擎应用&#xff0c;多人联网游戏可能会在应用程序的多个实例之间分发部分游戏逻辑&#xff0c;但每个单独的实例仍然会为自己的玩家在本地渲染游戏。即使是使用 HTML5 部署选项创建可以在 Web 浏览…