MPLS基本转发过程,隧道特性、对TTL的处理、BGP路由黑洞

2024-04-06 23:36

本文主要是介绍MPLS基本转发过程,隧道特性、对TTL的处理、BGP路由黑洞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MPLS基本转发过程,隧道特性

        标签操作类型包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop),它们是标签转发的基本动作。

        倒数第二跳弹出特性PHP(Penultimate Hop Popping):在最后一跳节点,标签已经没有使用价值,在倒数第二跳节点处将标签弹出,减少最后一跳的负担。最后一跳节点直接进行IP转发或者下一层标签转发。

默认情况下:设备支持PHP特性,支持PHP的Egress节点分配给倒数第二跳节点的标签值为3。

压入:在二层与三层之间添加一个标签。

交换:将收到的报文标签值,替换为自身下一跳提供的标签值。

弹出:将报文的所有标签剥除。PHP:倒数第二跳弹出机制,默认开启。

基本转发过程:

Tunnel ID:为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,也称为Tunnel ID。该Tunnel ID的长度为32bit,只是本地有效。

NHLFE:Next Hop Label Forwarding Entry,下一跳标签转发表:用于知道MPLS报文的转发。(包括Tunnel ID、出接口、下一跳、出标签、标签操作类型等信息)

FEC到一组NHLFE的映射称为FTN(FEC-to-NHLFE)。通过查看FIB表中Tunnel ID值不为0x0的表项,能够获得FTN的详细信息,FTN只在Ingress存在。

ILM:Incoming Label Map,入标签映射。包括:Tunnel ID,入标签,入接口,标签操作类型等信息。

ILM在Transit节点的作用是将标签和NHLFE绑定,通过标签索引ILM表,就相当于使用目的IP地址查询FIB,能够得到所有的标签转发信息。

1、当IP报文进入MPLS域时,首先查看FIB表,检查目的IP地址对应的Tunnel ID值是否为0x0。

[R1]diagnose;进入到诊断视图中;

[R1-diagnose]display mpls nhlfe,查看下一跳标签转发表;

[R1-diagnose]display mpls ilm,查看入标签映射表;

        1.1 如果Tunnel ID值为0x0,则进入正常的IP转发流程。

        1.2 如果Tunnel ID值不为0x0,则进入MPLS转发流程。

2、在MPLS转发过程中,FIB、ILM、和NHLFE表项是通过Tunnel ID关联的。

        2.1、Ingress的处理:通过查询FIB表和NHLFE表知道报文的转发、

                2.1.1、查看FIB表,根据目的IP地址找到对应的Tunnel ID。

                2.1.2、根据FIB表的Tunnel ID找到对应的NHLFE表项,将FIB表项和NHLFE表项关联起来。

                2.1.3、查看NHLFE表项,可以得到出接口、下一跳、出标签和标签操作类型。

                2.1.4、在IP报文中压入出标签,同时处理TTL,然后将封装好的MPLS报文发送给下一跳.

        2.2、Transit的处理:通过查询ILM和NHLFE表指导MPLS报文的转发

                2.2.1、根据MPLS的标签值查看对应的ILM表,可以得到Tunnel ID。

                2.2.2、根据ILM表的Tunnel ID找到对应的NHLFE表项。

                2.2.3、查看NHLFE表项,可以得到出接口、下一跳、出标签和标签操作类型。

                2.2.4、MPLS报文的处理方式根据不同的标签值而不同。

如果标签值>=16,则用新标签替换MPLS报文中的旧标签,同时处理TTL,然后将替换完标签的MPLS报文发送给下一跳。

如果标签值为3,则直接弹出标签,同时处理TTL,然后进行IP转发或下一层标签转发。

        2.3、Egress的处理:通过查询ILM表指导MPLS报文的转发或查询路由表指导IP报文转发

                2.3.1、如果Egress收到IP报文,则查看路由表,进行IP转发。

                2.3.2、如果Egress收到MPLS报文,则查看ILM表获得标签操作类型,同时处理TTL。

如果标签中的栈底标识S=1,表明该标签是栈底标签,直接进行IP转发。

如果标签中的栈底标识S=0,表明还有下一层标签,继续进行下一层标签转发。

LDP邻居建立;LDP的标签发布、分配、保持方式;MPLS中数据转发流程(FIB,NHLFE,ILM)

MPLS对TTL的处理

MPLS对TTL的处理模式:

Uniform模式:统一模式,IP报文经过MPLS网络时,在入节点,IP TTL减1映射到MPLS TTL字段,此后报文在MPLS网络中按照标准的TTL处理方式处理。在出节点将MPLS TTL减1映射到IP TTL字段。

Pipe模式:管道模式,在入节点,IP TTL值减1,MPLS TTL字段为固定值,此后报文在MPLS网络中按照标准的TTL处理方式处理。在出节点会将IP TTL字段的值减1。

[Huawei]undo ttl propagate,修改为管道模式,该命令执行前清理mpls ldp才能生效,reset mpls ldp all;

[Huawei]ttl propagate,统一模式

BGP路由黑洞的解决方案:BGP跨跳建立,R2和R4运行BGP,建立邻居传递路由,R3没有运行BGP

1、GRE隧道,去往一个目的地,如果这个目的地的下一跳,有隧道,那么去往该目的地也经过隧道。

2、全互联

3、MPLS LSP隧道

[Huawei]route recursive-lookup tunnel,开启非标签公网BGP路由迭代到LSP隧道中。

4、路由引入

LSP具有隧道特性;所有VPN本质都是隧道。

这篇关于MPLS基本转发过程,隧道特性、对TTL的处理、BGP路由黑洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881122

相关文章

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

使用Python处理CSV和Excel文件的操作方法

《使用Python处理CSV和Excel文件的操作方法》在数据分析、自动化和日常开发中,CSV和Excel文件是非常常见的数据存储格式,ython提供了强大的工具来读取、编辑和保存这两种文件,满足从基... 目录1. CSV 文件概述和处理方法1.1 CSV 文件格式的基本介绍1.2 使用 python 内

springboot整合gateway的详细过程

《springboot整合gateway的详细过程》本文介绍了如何配置和使用SpringCloudGateway构建一个API网关,通过实例代码介绍了springboot整合gateway的过程,需要... 目录1. 添加依赖2. 配置网关路由3. 启用Eureka客户端(可选)4. 创建主应用类5. 自定

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery