Datacom HCIP笔记-MPLS协议 之一

MPLS标签放在二层头和IP头之间可以称之为2.5层的位置

LSP(Label Switched Path):标签交换路径,艮即到达同一目的地址的报文在MPLS网络中经过的路径。

FEC(Forwarding Equivalent Class):一般指具有相同转发处理方式的报文。在MPLS网络中,到达同一目的地址的所有报文就是一个FEC。

在MPLS网络中,路由器的角色分为两种:

LER (Label Edge Router) : 在MPLS网络中, 用于标签的压入或弹出。

LSR(Label Switched Router):在MPLS网络中,用于标签的交换。

根据数据流的方向,LSP的入口LER被称为入节点(Ingress):位于LSP中间的LSR被称为中间节点(Transit);LSP的出口LER被称为出节点(Egress)。

MPLS报文由Ingress发往Transit,则lngress是Transit的上游节点,Transit是Ingress的下游节点;同理,Transit是Egress的上游节点,Egress是Transit的下游节点。

MPLS作为一种分类转发技术,将具有相同转发处理方式的报文分为一类,称该类报文为一个FEC(ForwardingEquivalentClass)。FEC的划分方式非常灵活,可以是以源地址、目的地址、源端口、目的端口、协议类型或VPN等为划分依据的任意组合。最常见的是根据路由条目来划分,即去往不同目标地址但匹配相同路由的报文。

控制平面:负责产生和维护路由信息以及标签信息。

路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)生成,用于选择路由。

标签分发协议LDP(Label Distribution Protocol):负责标签的分配、标签转发信息表的建立、标签交换路径的建

立、拆除等工作。

标签信息表LIB(Label Information Base):由标签分发协议生成,用于管理标签信息。转发平面:即数据平面

(Data Plane),负责普通IP报文的转发以及带MPLS标签报文的转发。

转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。

标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,由标签分发协议建立LFIB,负责带MPLS标签报文的转发。

MPLS路由器上,报文的转发过程:当收到普通IP报文时,查找FIB表,如果TunnelID为0x0,则进行普通IP转发;如果查找FIB表,Tunnel ID为非0x0,则进行MPLS转发。口当收到带标签的报文时,查找LFIB表,如果对应的出标签是普通标签,则进行MPLS转发;查找LFIB表,如果对应的出标签是特殊标签,如标签3,则将报文的标签去掉,进行IP转发。

MPLS标签的长度为4个字节,共分4个字段:

Label:20bit,标签值域;

Exp:3bit,用于扩展。现在通常用做CoS(Classof Service),当设备发生阻塞时,优先发送优先级高的报文;

S:1bit,栈底标识。MPLS支持多层标

签,即标签嵌套。S值为1时表明为最底层标签;

TTL:8bit,和IP报文中的TTL(TimeToLive)意义相同。

标签取值含义:

0~15:特殊标签。如标签3,称为隐式空标签,用于倒数第二跳弹出;

16~1023:静态LSP和静态CR-LSP(Constraint-based Routed Label Switched Path) 共享的标签空间;

1024及以上: LDP、RSVP-TE (Resource Reservation Protocol-Traffic Engineering) 、MP-BGP (MultiProtocol Border Gateway Protocol)等动态信令协议的标签空间。

静态LSP

静态LSP的特点:不使用标签发布协议,不需要交互控制报文,资源消耗比较小;

通过静态方式建立的LSP不能根据网络拓扑变化动态调整,需要管理员干预。

静态LSP适用于拓扑结构简单并且稳定的网络。

实验拓扑:

要求:使用MPLS静态LSP实现R1上的环回口访问R4上的环回口是携带MPLS标签。 

具体配置

R1

sys
sys R1
int g0/0/0
ip add 192.168.12.1 24
int loo 1
ip add 1.1.1.1 32rip 1
ver 2
net 192.168.12.0
net 1.0.0.0
quitmpls lsr-id 1.1.1.1
mpls
int g0/0/0
mpls
int loo 1
mplsstatic-lsp ingress 1234 destination 4.4.4.4 32 outgoing-interface g0/0/0 nexthop 192.168.12.2 out-label 102

R2

sys
sys R2
int g0/0/0
ip add 192.168.12.2 24
int g0/0/1
ip add 192.168.23.2 24rip 1
ver 2
net 192.168.12.0
net 192.168.23.0
quitmpls lsr-id 2.2.2.2
mpls
int g0/0/0
mpls
int g0/01
mplsstatic-lsp transit 1234 incoming-interface g0/0/0 in-label 102 outgoing-interface g0/0/1 nexthop 192.168.23.3 out-label 203

R3

sys
sys R3
int g0/0/0
ip add 192.168.23.3 24
int g0/0/1
ip add 192.168.34.3 24rip 1
ver 2
net 192.168.23.0
net 192.168.34.0
quitmpls lsr-id 3.3.3.3
mpls
int g0/0/0
mpls
int g0/01
mplsstatic-lsp transit 1234 incoming-interface g0/0/0 in-label 203 outgoing-interface g0/0/1 nexthop 192.168.34.4 out-label 304

R4

sys
sys R4
int g0/0/0
ip add 192.168.34.4 24
int loo 4
ip add 4.4.4.4 32rip 1
ver 2
net 192.168.34.0
net 4.0.0.0
quitmpls lsr-id 4.4.4.4
mpls
int g0/0/0
mpls
int loo 4
mplsstatic-lsp egress 1234 incoming-interface g0/0/0 in-label 304

注意:上面的命令种只实现了从R1 1.1.1.1发往R4 4.4.4.4的路由携带MPLS标签,R4 4.4.4.4

给R1 1.1.1.1 回包时并没有携带MPLS标签,如果想要双边通信时都携带,以R4为Ingress,R1 为egress 做静态的LSP即可,这里不再赘述。

测试验证

使用Ping结合抓包进行验证

分别在R2的G0/0/1 

 

R4的G0/0/0上抓包 

可以看到标签的传递和变化。

至此实验结束

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

Ingress的处理:通过查询FIB表和NHLFE表指导报文的转发。

1.查看FIB表,根据目的IP地址找到对应的TunnelID。

2.根据FIB表的TunneIID找到对应的NHLFE表项,将FIB表项和NHLFE表项关联起来。

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

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

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

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

Tunnel ID为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,也

称为Tunnel ID。该Tunnel ID的长度为32比特,只是本地有效。

NHLFE下一跳标签转发表项NHLFE(Next HopLabel Forwarding Entry)用于指导MPLS报文的转发。

NHLFE包括:Tunnel ID、出接口、下一跳、出标签、标签操作类型等信息。

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

ILM入标签到一组下一跳标签转发表项的映射称为入标签映射ILM(Incoming Label Map)。ILM包括:Tunnel ID、入标签、入接口、标签操作类型等信息。ILM在Transit节点的作用是将标签和NHLFE绑定。通过标签索引ILM表,就相当于使用目的IP地址查询FIB,能够得到所有的标签转发信息。

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

1.根据MPLS的标签值查看对应的ILM表,可以得到TunnelID。

2.根据ILM表的Tunnel ID找到对应的NHLFE表项。

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

4.MPLS报文的处理方式根据不同的标签值而不同。·如果标签值>=16,则用新标签替换MPLS报文中的I旧标签,同时处理TTL,然后将替换完标签的MPLS报文发送给下一跳。·如果标签值为3,则直接弹出标签,同时处理TTL,然后进行IP转发或下一层标签转发。

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

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

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

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

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

 

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

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

相关文章

编辑脚本 shell中的符号

shell中的符号 ~:家目录 !:执行历史命令 $:取变量内容 - * / %:数学运算符 &:后台执行 *:通配符 ?:匹配除回车以外的一个字符 ;:命令分隔符 |:管道符,该符号的上一…

【科研】SCI同行评审-审稿指南与意见撰写

【科研】SCI同行评审-审稿指南与意见撰写 文章目录 1、审稿指南 By Elsevier2、审稿指南 By Nature3、审稿意见撰写 1、审稿指南 By Elsevier Elsevier审稿人注意事项 Elsevier如何进行同行评审 how-to-review 完整的研究文章 检查手稿中解决的研究问题的重要性(例…

uniapp:Hbuilder没有检测到设备请插入设备或启动模拟器的问题解决

问题 使用模拟器调试运行项目时,出现以下提示,“没有检测到设备,请插入设备或启动模拟器后点击刷新再试”。排查了一天最终找到原因。 解决 已确认模拟器是已经正常启动,并且Hbuilder设置中的adb路径和端口都配置没有问题&#…

一文搞懂从爬楼梯到最小花费(力扣70,746)

文章目录 题目前知动态规划简介动态规划模版 爬楼梯一、思路二、解题方法三、Code 使用最小花费爬楼梯一、思路二、解题方法三、Code 总结 在计算机科学中,动态规划是一种强大的算法范例,用于解决多种优化问题。本文将介绍动态规划的核心思想&#xff0c…

主从复制、数据持久化 、Redis主从集群、哨兵机制 、Redis分片集群

数据持久化 Redis、主从集群、哨兵机制 Redis分片集群 1、单点 redis 的问题2、主从复制2.1 命令传播 3、Redis的持久化3.1 AOF3.2 RDB(默认方式)RDB 方式:执行快照时,数据能被修改吗?RDB 方式总结 3.3 RDB 和 AOF 组合…

电路基础-电容-电感

电路基础 电容 通交流阻直流,滤波,旁路,退耦,作驱动电源(洗衣机电机启动时需要一个强电启动) 电容选型的工程值;参考以往开发板的选型;抄作业。 电源并连多个电容的作用 保证单…

30万奖金谁能瓜分?OurBMC开源大赛决赛入围名单公示

首届开放原子开源大赛基础软件赛道自今年 1 月开启报名以来,吸引了全国各地 BMC 技术爱好者的广泛关注和踊跃报名。该赛事由开放原子开源基金会牵头, OurBMC 社区及理事长单位飞腾信息技术有限公司联合承办,以 “基于 BMC 技术的服务器故障诊…

go的orm框架-Gorm

官网文档 特点 全功能 ORM 关联 (拥有一个,拥有多个,属于,多对多,多态,单表继承) Create,Save,Update,Delete,Find 中钩子方法 支持 Preload、Joins 的预加载 事务&…

基于Vue3 中后台管理系统框架

基于Vue3 中后台管理系统框架 文章目录 基于Vue3 中后台管理系统框架一、特点二、源码下载地址 一款开箱即用的 Vue 中后台管理系统框架,支持多款 UI 组件库,兼容PC、移动端。vue-admin, vue-element-admin, vue后台, 后台系统, 后台框架, 管理后台, 管理…

Leetcode - 2009. 使数组连续的最少操作数

文章目录 解析排序 原地去重 滑动窗口AC CODE 题目链接:Leetcode - 2009. 使数组连续的最少操作数 解析 题中所述的连续数组就是一串连续的自然数,想问需要多少次操作能将原数组变为连续的数。 我们排序去重,用逆向思维想能保留的数字数目…

Qt | Q_PROPERTY属性和QVariant 类

一、属性基础 1、属性与数据成员相似,但是属性可使用 Qt 元对象系统的功能。他们的主要差别在于存取方式不相同,比如属性值通常使用读取函数(即函数名通常以 get 开始的函数)和设置函数(即函数名通常以 set 开始的函数)来存取其值,除此种方法外,Qt 还有其他方式存取属性值…

20240325-2-K-means面试题

K-means面试题 1. 聚类算法(clustering Algorithms)介绍 聚类是一种无监督学习—对大量未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小。 聚类算法可以分为原型…

构建高效网络:深入理解正向与反向代理的作用与配置

正向代理 如果把局域网外的互联网环境想象成一个巨大的资源库,则局域网中的客户端要访问互联网则需要通过代理服务器来访问,这种代理成为正向代理。 示例: 用户想要访问 https://chensir.ink (目标服务器)&#xff0…

基于SSE长连接的智能客服问答系统技术方案及完整项目源码

文章目录 一、项目背景二、项目演示三、项目介绍B系统主要功能1. 注册登录重置密码2. 权限管理3. 项目管理4.客服管理 C系统主要功能1. 问答组件2. 主题色定制3. 类微信时间显示控件及智能tip提示4. 无障碍阅读4. 丰富的输入框组件5. 人工客服6. 聊天记录分表记录与查询 四、项…

Scala大数据开发

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Scala简述 在此,简要介绍 Scala 的基本信息和情况。 Scala释义 Scala 源自于英语单词scalable,表示可伸缩的、可扩展的含义。 Scala作者 Scala编…

K8s学习十(高级调度)

高级调度 CronJob计划任务 在 k8s 中周期性运行计划任务,与 linux 中的 crontab 相同注意点:CronJob 执行的时间是 controller-manager 的时间,所以一定要确保 controller-manager 时间是准确的cron表达式如下: 配置如下&#x…

Axios 使用教程

Axios 是什么? Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 特性 从浏览器创建 XM…

软件设计师——数据库

数据库 三级模式两级映像关系模型基本术语关系模型中的关系完整性约束 三级模式两级映像 概念模式(也称模式)对应基本表 外模式(也称用户模式或子模式)对应视图 内模式(也称存储模式)对应存储文件 两级映像…

Linux 5.10 Pstore 功能测试

目录 简介环境配置内核配置参考备注 简介 Pstore(Persistent store support)是用于系统发生oops或panic时,自动保存内核log buffer中的日志。随着功能不断完善,Duo S使用Linux 5.10已经支持保存console日志、ftrace消息和用户空间日志的收集&#xff0c…

Java基于SpringBoot+Vue的专家医院预约挂号系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…