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 还有其他方式存取属性值…

JavaScript学习 BOM操作

Browser Object Model (BOM) 是一套专为与浏览器交互而设计的API,它允许JavaScript访问和操纵浏览器窗口以及浏览器本身的相关特性。以下是对BOM主要对象及其操作的详细讲解: 1. Window对象 Window对象 是BOM的核心,它代表浏览器窗口&#…

20240325-2-K-means面试题

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

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

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

DataLoader 的 collate_fn 解释与示例教程

文章目录 导包数据Dataloadercollate_fn 导包 import torch from torch.utils.data import Dataset from typing import Any数据 class CustomDataset(Dataset):def __init__(self, length) -> None:super().__init__()self.length lengthdef __getitem__(self, indexNon…

请简述Vaadin框架的主要特点和优势。如何在项目中引入和使用Vaadin框架?

请简述Vaadin框架的主要特点和优势。 Vaadin框架的主要特点和优势主要体现在以下几个方面: 首先,Vaadin是一个基于GWT(Google Web Toolkit)的Java UI框架,这使得它能够快速构建高性能的Web应用程序。它使用Java语言编…

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

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

PMIC芯片简介

PMIC(Power Management Integrated Circuit),即电源管理集成电路,是一种专门用于管理和分配电子设备中电源的关键组件。它通过集成多种电源管理功能,提高了电源系统的效率和可靠性,同时减小了设备的尺寸和成…

Java垃圾回收机制(更新中...)

是什么? Java的垃圾回收机制(Garbage Collection, GC)是Java内存管理的核心部分,负责自动回收不再被程序使用的内存空间,从而防止内存泄漏和崩溃等问题。这是Java语言的一个重要特性,极大地简化了程序员的…

Scala大数据开发

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