Datacom HCIP笔记-MPLS协议 之一

2024-04-09 04:52
文章标签 协议 笔记 mpls datacom hcip

本文主要是介绍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,表明还有下一层标签,继续进行下一层标签转发。

 

这篇关于Datacom HCIP笔记-MPLS协议 之一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3