MPLS LDP浅析及应用场景举例

news2024/10/6 20:27:26
一、概念

        华为ldp是mpls动态的标签分发、存储、控制协议,工作时在2.5层; 默认为只为32位主机路由且存在于路由表中的地址分标签

名词:

MPLS domain
LSR:Label Switching Router
LER:Label Edge Router
LSP:Label Switching Path
LDP:Label Distribution Protocol
RIB:Routing Information Base    #路由信息库
LIB:Label Information Base    #标签信息库
FIB:Forwarding Information Base    #转发信息库
LFIB:Label Forwarding Information Base(ILM+NHLFE)    #标签转发信息库
ILM:Token+ Incomping Interface+Incoming Label=Incoming Label Mapping
NHLFE:Next Hop Label Forwarding Entry下一跳标签转发出口(包括:Token、Next Hop、Out Label、Out Interface、LSRtype)
Bottom of Label Stack:标签栈底位
DS:DownStream下游
PHP:Penultimate Hop Popping次末跳弹出

LDP动作:

        Ingress    Push
        Transport    Swap
        Egress    Pop

LDP邻居建立过程(邻居建立时在传输层上方):

1、起用mpls ldp的端口向224.0.0.2的646端口广播hello message,双方互相收到
2、lsr-id大的(端口号n)向小的一方的lsr-id 646端口,发起TCP三次握手,建立邻居关系
3、lsr-id大的port n向小的一方的lsr-id 646端口,发起Initialization Message初始化信息
4、lsr-id小的一方确认信息无误,用646端口向大的一方port n回复Initialization Message Keep Alive Message
5、lsr-id大的port n向小的一方的lsr-id 646端口,发送Keep Alive Message Address Message
6、lsr-id小的用646端口向大的一方的port n,发送Address Message,包含自己有32位路由的IP地址
7、lsr-id大的进行tcp ack确认
8、lsr-id小的用646端口向大的一方的port n,发送Label Mapping Message Label,包含FEC和标签
9、lsr-id大的用port n向小的一方的646端口,也发送Label Mapping Message Label,包含FEC和标签
10、lsr-id小的进行tcp ack确认
然后,启用ldp的直连端口也重复上述过程

LDP LIB标签建立过程:

        1、在egress的路由器上,发现新的路由(32位主机路由),为始发的FEC分配3的标签,并给上游发Label Mapping消息,包含FEC和自己分发的标签
        2、上游收到了下游分的Label Mapping消息,检查是否本地有FEC、是否是下一跳发送。是则保存、并分配标签,用Lable Mapping发给上下游邻居(体现有序分发)
        3、Ingress,收到Label Mapping消息,检查是否是下一跳,是则存储、分配标签、发送给上游,上游检查,发现路由不可达,自由保留并在前边打星号

二、拓朴背景

        BGP100和BGP234是EBGP邻居关系; BGP500和BGP234是EBGP邻居关系;
        BGP234内,R2和R4建立IBGP邻居关系; 全域起IGP邻居关系OSPF,全域起MPLS域

三、要求

要求1:
        R1能否访问R5的业务地址?如果不通,是什么原因?怎么解决?
要求2:
        BGP234全域关闭mpls后,测试是否可以通?如果不通,怎么解决?

四、答案

        1、要求1答案:
             不能访问,原因是IBGP路由黑洞:当数据包到R2时,走FIB表,将172.16.5.5通过IGP传递,但R3上没有R5的路由,导致数据包被丢弃
解决方法:
             R2和R4敲命令route recursive-lookup tunnel命令,当数据包到R2时,叠代查询到MPLS隧道:下一跳10.1.4.4,走0x3,分配标签1025给R3;    R3查询LFIB表,走MPLS隧道,发现替换标签是3(隐含空标签),次末跳弹出,走路由到下一跳到达R4;    R4走EBGP路由到达R5,如下:

<R2>dis fib 10.1.4.4
  Route Entry Count: 1
Destination/Mask   Nexthop         Flag  TimeStamp     Interface      TunnelID
10.1.4.4/32        10.1.23.3       DGHU  t[68]         GE0/0/1        0x3
#
[R2-bgp]dis tunnel-info tunnel-id 0x3
Tunnel ID:                    0x3
Tunnel Token:                 3
Type:                         lsp
Destination:                  10.1.4.4
Out Slot:                     0
Instance ID:                  0
Out Interface:                GigabitEthernet0/0/1
Out Label:                    1025
Next Hop:                     10.1.23.3
Lsp Index:                    14339
#
#
<R3>dis mpls lsp in-label 1025
-------------------------------------------------------------------------------
                 LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name       
10.1.4.4/32        1025/3        -/GE0/0/1                                     

        2、要求2答案:
         关闭BGP234的MPLS域后,R1到R5不通,原因是路由黑洞:当R2走FIB表转发到R3时,R3由于未起IBGP,导致没有R5的路由,丢弃数据包
        解决方法是:
         1、R3也起IBGP,全域IBGP互联,同样能获取到R5的路由,用路由传递(或者R3起路由反射器,也能获取到R5的路由);
         2、BGP234全域起MPLS,如要求1答案相同,或者走隧道如GRE
         3、R2和R4上做EBGP和IGP的双向引入,全程走路由

五、主要配置命令:

mpls lsr-id <lsr-id>    #配置mpls lsr-id,一般为环回口(必须为可用且可达的IP地址)
mpls     #全局|接口使能mpls
mpls ldp    #全局|接口下使能ldp
mpls ldp transport-address interface <接口>    #如果lsr-id不可达,则更换为物理接口
lsp-trigger all | host | ip-prefix ip-prefix-name | none    #为所有|指定路由分标签(华为ldp默认只为32位主机路由分标签)
route recursive-lookup tunnel    #全局模式下,开启叠代隧道查询(如在ibgp场景下,通过叠代进标签隧道的方式,解决路由黑洞问题)

dis mpls ldp lsp    #查lib表(控制层面)
dis mpls lsp |verbose    #查lfib表(数据层面)
dis mpls lsp in-label|out-label <label_name> |verbose
dis mpls interface    #查使能mpls的接口列表
dis mpls ldp session    #查ldp会话表
dis tunnel-info all|tunnel-id <tunnel_id号>    #查隧道信息表
dis fib <ip>    #查fib表
tracert lsp -a <sip> ip <dip> <dip掩码位数>    #跟踪lsp路径(包括本机压入标签信息条目)
tracert -v -a <sip> <dip>    #跟踪目标路径详细信息(不包括本机压入标签信息条目)


 

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

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

相关文章

RK3568 学习笔记 : u-boot 千兆网络无法 ping 通PC问题的解决

前言 开发板型号&#xff1a; 【正点原子】 的 RK3568 开发板 使用 虚拟机 ubuntu 20.04 收到单独 编译 RK3568 u-boot 【问题】u-boot 千兆网络无法ping 通&#xff1f;Linux 下千兆网络正常&#xff0c;说明&#xff1a;开发板硬件正常 u-boot 下网络如果通了&#xff0c;…

vr太阳光参数怎么设置,vr快速渲染方法

VR场景中实现逼真的光照效果&#xff0c;太阳光参数的设置尤为关键。真实的太阳光可提升效果图的质感&#xff0c;论VR太阳光参数的设置技巧&#xff0c;包括光源类型选择、光照强度调整、阴影效果优化等多个方面&#xff0c;喜爱一起来看看vr太阳光真实感设置参数吧。 vr太阳光…

Unity 新版输入系统(Input System)

前言 官方教程 注意 新的输入系统需要 Unity 2019.4 和 .NET 4 运行时。它不适用于 .NET 3.5 的项目。 教程版本&#xff1a;Unity 2021.3.26 1. 安装 1.1 打开 Package Manager 导航栏 -> Window -> Package Manager 1.2 安装 Input System 选择 Unity Registry 在列…

【电控实物-infantry】

云台电机参数 电机内部参数 相电阻:Rs1.8欧 相电感:Ls5.7810^-3H 转矩常数:Kt 0.741 NM/A 转动惯量:J KG-m^2 电机接收数据&#xff1a;-16384到16384&#xff08;-3A到3A&#xff09; 电机反馈&#xff1a;速度RPM rad/s &#xff08;2πrpm&#xff09;/60 C板陀螺仪&…

RTT学习 cortex-m移植

Cortex-M移植 PRIMASK寄存器 PRIMASK寄存器为1位宽的中断屏蔽寄存器。在置位时&#xff0c;它会阻止不可屏蔽中断&#xff08;NMI&#xff09;和HardFault异常之外的所有异常&#xff08;包括中断&#xff09;。实际上&#xff0c;它是将当前异常优先级提升为0&#xff0c;这也…

压力测试caliper/java-sdk

通过Caliper进行压力测试程序 第一步. 配置基本环境 部署 Caliper 的计算机需要有外网权限&#xff1b; 操作系统版本需要满足以下要求&#xff1a; Ubuntu > 16.04 、 CentOS > 7 或 MacOS > 10.14 &#xff1b; 部署 Caliper 的计算机需要安装有以下软件&#x…

【机器学习】科学库使用第5篇:Matplotlib,学习目标【附代码文档】

机器学习&#xff08;科学计算库&#xff09;完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;机器学习&#xff08;常用科学计算库的使用&#xff09;基础定位、目标&#xff0c;机器学习概述定位,目标,学习目标,学习目标,1 人工智能应用场景,2 人工智能小…

Nuxt3项目如何通过开启ssr让网页实现seo自由!

nuxt.config开启ssr # nuxt.config.tsexport default defineNuxtConfig({// 是否开启SSRssr: true }) 终端运行 npm run generate generate 预渲染应用程序的每个路由&#xff0c;并将结果存储为纯HTML文件。 "scripts": {"generate": "nuxt genera…

软件兼容性定义以及作用简单讲解-行云管家

设想一下&#xff0c;假如您购买了一款新软件&#xff0c;但发现它无法在您的操作系统上正常运行&#xff0c;这个时候是不是非常恼火&#xff0c;是不是非常生气。所以企业采购新软件之前&#xff0c;一定要保障与其他操作系统能兼容。今天我们就来聊聊什么是软件兼容性&#…

小程序AI智能名片S2B2C商城系统:五大营销技术模块深度剖析

在当今数字化营销的时代&#xff0c;小程序AI智能名片S2B2C商城系统凭借五大核心营销技术模块&#xff0c;为企业提供了强大的私域流量管理与营销能力。下面我们将逐一剖析这五大模块&#xff0c;看它们如何共同助力企业实现精准营销与业务增长。 一、小程序&#xff1a;用户触…

1、Flink DataStreamAPI 概述(上)

一、DataStream API 1、概述 1&#xff09;Flink程序剖析 1.Flink程序组成 a&#xff09;Flink程序基本组成 获取一个执行环境&#xff08;execution environment&#xff09;&#xff1b;加载/创建初始数据&#xff1b;指定数据相关的转换&#xff1b;指定计算结果的存储…

Nintex访问上海斯歌总部,双方达成重要战略共识

近日&#xff0c;Nintex公司&#xff08;K2产品总部&#xff09;亚太区域销售副总裁Keith Payne、资深解决方案工程师Ranjit Nair以及区域销售经理Rachel一行莅临上海斯歌总部进行访问。在此次会晤中&#xff0c;上海斯歌与Nintex就未来在中国大陆及中国香港市场的战略发展达成…

SOLIDWORKS 2024 MBD新增功能

MBD即基于模型的工程定义、是一个用集成的三维实体模型来完整表达产品定义信息的方法体&#xff0c;它详细规定了三维实体模型中产品尺寸、公差的标注规则和工艺信息的表达方法。 01 通过实体几何体控制注解的可见性 SOLIDWORKS 2024 MBD 在用户使用体验上做了很大的提升。S…

QT初识

通过图形化界面输出helloworld 既然学习了QT&#xff0c;那么自然要做经典的输出helloworld字符串的实验。 QT有两好几种方案输出helloworld&#xff0c;一种是通过图形化界面输出&#xff0c;一种是通过代码实现。 这里先了解图形化界面的方案。 创建项目后&#xff0c;点…

高频前端面试题汇总之HTML篇

1. src和href的区别 src和href都是用来引用外部的资源&#xff0c;它们的区别如下&#xff1a; src&#xff1a; 表示对资源的引用&#xff0c;它指向的内容会嵌入到当前标签所在的位置。src会将其指向的资源下载并应⽤到⽂档内&#xff0c;如请求js脚本。当浏览器解析到该元素…

函数式接口及Stream流式计算

一、什么是函数式接口 只有一个方法的接口&#xff0c;例如 FunctionalInterface public interface Runnable { public abstract void run(); }二、Function函数式接口&#xff1a;有一个输入参数&#xff0c;有一个输出 三、断定型接口&#xff1a;有一个输入参数&#xf…

如何用虚拟仿真实训室提质增效?

为积极推进教学改革&#xff0c;优化人才培养方案&#xff0c;紧跟产业发展趋势&#xff0c;响应教育领域数字化改革要求&#xff0c;越来越多院校通过搭建虚拟仿真实训室、数字人实训室&#xff0c;打通了融“理论知识虚拟训练技能训练”为一体的教学和实训。学生通过数字人实…

代码随想录 Day19 字符串 | LC28 实现strStr() 【KMP经典题目】

六、实现strStr() 题目&#xff1a; 力扣28&#xff1a;找出字符串中第一个匹配的下标 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack…

大模型检索召回系统:RAG技术的全面调查与未来展望

随着人工智能技术的飞速发展&#xff0c;大型语言模型&#xff08;LLMs&#xff09;在自然语言处理&#xff08;NLP&#xff09;领域取得了显著成就。然而&#xff0c;这些模型在处理特定领域或知识密集型任务时仍面临挑战&#xff0c;如产生错误信息或“幻觉”。为了克服这些难…