实验详解手工指定MPLS的LSP(Huawei设备)
文章目录
- 采用静态手工指定label的方式配置MPLS的LSP
- 实验拓扑
- 配置思路与过程
- IGP--OSPF
- LSP--MPLS
- 分析LSP与LFIB
- R2 -> R4
- R4 -> R2
- 总结
- LSP的生成过程
- 几种表的查询方式
- MPLS-domain中的几种角色和处理动作
- LFIB的架构
- FIB中的Tunnel ID是什么
采用静态手工指定label的方式配置MPLS的LSP
MPLS中对于LSP(label switching path)有两种方式,手工静态指定、LDP(label distribute protocol),本实验采用前者的方式,详细分析LSP在转发数据报文中是如何查表(RIB、FIB、LIB、LFIB)的
几种表项的区别
RIB:路由转发信息库,根据控制层面的协议计算出来的一个转发信息库
FIB:FIB是根据RIB生成的,区别在于RIB是需要进行递归查找的,FIB则不需要
LIB:label information base根据FIB生成LIB,用于转发标签包
LFIB:FIB和LIB共同构建出LFIB,用于转发标签包
实验拓扑
说明:
- domain内的网段信息为10.1.xy.z/24 xy为两台路由器的编号,z为路由器本身的编号
- 灰色部分书MPLS的domain,R2、R3是作为MPLS-doamin的边界,即LER( label edge router),完全处在domain内部的是LSR(label switching router);灰色部分的地方底层要打通IGP,本实验采用了OSPF 三台router均在area 0中
- 处于边界的LER设备其实即作为ingress,也作为egress
配置思路与过程
IGP–OSPF
MPLS-doamin底层的IGP,此处不多过多赘述,配置如下所示
[R2]dis cu con ospf
[V200R003C00]
#
ospf 1 router-id 10.1.1.1 area 0.0.0.0 network 10.1.2.2 0.0.0.0 network 10.1.23.2 0.0.0.0
#
return
[R3]dis cu con ospf 1
[V200R003C00]
#
ospf 1 router-id 10.1.3.3 area 0.0.0.0 network 10.1.3.3 0.0.0.0 network 10.1.23.3 0.0.0.0 network 10.1.34.3 0.0.0.0
#
return
[R4]dis cu con ospf
[V200R003C00]
#
ospf 1 router-id 10.1.4.4 area 0.0.0.0 network 10.1.4.4 0.0.0.0 network 10.1.34.4 0.0.0.0
#
return
此时,使用R2的lookback ping R4 抓包可以看到这是一个IP包
关于IP包就进行查表转发,注意查询的是FIB,FIB是根据RIB生成的,区别在于RIB是需要进行递归查找的,FIB则不需要
LSP–MPLS
1、首先要使MPLS-domain中的路由器与接口使能MPLS
mpls lsr-id x.x.x.x
mpls
int g0/0/x
mpls
2、静态指定LSP的路径与label R2 --> R4
R2 --> R4
[R2]static-lsp ingress toR4 destination 10.1.4.4 32 nexthop 10.1.23.3 outgoing-i
nterface Serial 4/0/0 out-label 23[R3]static-lsp transit A incoming-interface Serial 4/0/0 in-label 23 nexthop 10.
1.34.4 outgoing-interface Serial 4/0/1 out-label 34[R4]static-lsp egress toR4 incoming-interface Serial 4/0/0 in-label 34
这样一来针对于R2上针对10.1.4.4的这条路由就有了MPLS-LSP的路径,此刻在R2上pingR4 抓包查看
可见,R2去R4的数据报文中在2.5层就出现了MPLS的封装信息;而回来的包是没有的,这是因为回来的报文并没有MPLS的LSP
3、静态指定LSP的路径与label R4 --> R2
R4 --> R2
[R4]static-lsp ingress toR2 destination 10.1.2.2 32 nexthop 10.1.34.3 outgoing-i
nterface Serial 4/0/0 out-label 43[R3]static-lsp transit B incoming-interface Serial 4/0/1 in-label 43 nexthop 10.
1.23.2 outgoing-interface Serial 4/0/0 out-label 32[R2]static-lsp egress toR2 incoming-interface Serial 4/0/0 in-label 32
此时在R2上pingR4就可以看到去和回都是由label的,去的是23 回的是32
分析LSP与LFIB
R2 -> R4
1、首先R2上查询10.1.4.4的FIB信息,因为入口是一个IP包,以R2的环回口为源头;发现这个路由是由Tunnel ID的(并不是0x0),说明这个数据报文是要进行标签的转发的
2、检查LFIB,重点关注NHLFE(nexthop label forwarding entry);下一跳,出接口,标签,操作类型:加入、压入标签23
3、此时IP包经过R2后就变成了一个标签包,此时R3收到一个label为23的标签包,R3作为一个Transit,收到R2发来的标签包(labeled packet),R3查询LFIB,先看ILM(INCOMING LABEL MAP ) (入接口,入标签,token),关联tunnelID(token) 0X1,指向NHLFE,由于tunnel ID不为0,那么就执行MPLS 转发,交换标签,从23换到34 ,如下是ILM和NHLFE的信息
在R3的两个接口分别抓包,可以看到两个标签,进来的label是23 出去的是34
4、当这个带着34的label包来到R4上后,R4就会查看LSP信息,因为这是一个label包,R4是egress设备,则对于收到label包会将其标签进行弹出操作,这样就成为了一个IP包,然后查询本地的FIB,根据吓一条进行IP的报文转发
R4 -> R2
1、首先在R4上查询10.1.2.2这个IP包的FIB,信息起源为自己的环回,即这个包是一个IP包,查询后发现这个IP包是有Tunnel ID 的,说明此IP包存在LSP信息,需要查询MPLS的LSP,也可以根据tunnel-info查询这个路由的LSP转发信息
2、R4作为一个ingress设备,要对一个进入MPLS-domain的IP包进行push label的操作,可见其对10.1.2.2/32这个FEC压入了一个43的label,重点还是关注NHLFE
3、当这个带着43的label来到R3后,R3作为一个Transit设备,收到的肯定是带label的包,查询自身的LFIB,检索出其中的NHLFE;将43的label swap成32,R3上抓包也可以看出来
4、当这个带着32label的包来到R2后,R2作为一个egress设备,首先收到一个label的包,先查LFIB,检索出其中的NHLFE,会做一个pop的操作,将in-label的32 弹出,使其变成一个IP包;然后查FIB进行转发
总结
LSP的生成过程
第一步:首先运行IGP 控制层面学习路由表项,将路由跑通,生成RIB,根据其生成FIB;
第二部:运行LDP(label distrubetion protal)每个router生成LIB,根据FIB和LIB 生成最优in out label,即LFIB;或手工配置static-lsp 指定路由的in outlabel,即手工生成lsp(label switching path)
几种表的查询方式
RIB:dis ip routing-table
FIB:dis fib
LIB: dis mpls ldp lsp
LFIB:dis mpls lsp
MPLS-domain中的几种角色和处理动作
LER label edge router
- Ingress 进
- Egress 出
LSR label switching router
- transit MPLS域的中间节点。完全处于mpls domain中处理动作
- ingress:push 进入MPLS域的报文;在ingress上封装标签,由原本的IP包变成label包
- transit:swap 在MPLS域中,transit设备将旧标签剥离,并打上新的标签
- egress :pop 在egress设备上,将标签剥离,由label包变成IP包
LFIB的架构
LFIB架构:
1、ILM in-label mapping 目的:判断收不收
2、tunnel-id/Token
[R2]dis tunnel-info tunnel-id 0x1
3、NHLFE nexthop label forwarding entry 下一跳转发条目 目的:发不发,怎么发
FIB中的Tunnel ID是什么
FIB 的tunnelID是决定此数据包是IP转发还是标签转发的依据;FIB中的tunnelID对应到dis mpls verbose中的token
实验详解手工指定MPLS的LSP(Huawei设备)相关推荐
- 实验详解——Cobbler自动部署最小化安装
实验详解--Cobbler自动部署最小化安装 一.实验:自动部署 二.Cobbler自动装机服务搭建步骤 1.导入epel源并加载在线安装源 2.安装Cobbler以及其相关服务软件包 3.修改cob ...
- 详解FTP服务完成Linux和WIN10之间的信息传输(实验详解)
详解FTP服务完成Linux和WIN10之间的信息传输(实验详解) 一.FTP简介 1. FTP服务--用来传输文件的协议 2.端口 3.数据连接模式 二.相关配置 1.安装FTP服务 2.设置匿名用 ...
- 详解 Linux环境中DHCP分配IP地址(实验详解)
Linux中DHCP小实验详解 一.DHCP中继概述 二.DHCP在linux系统中的相关配置 1.配置DHCP服务器 2.设置全局配置参数 3.subnet网段声明 4.host主机声明 三.实验例 ...
- STM32F429第二十五篇之MCU屏实验详解
文章目录 前言 硬件 软件 结构体 SRAM_HandleTypeDef Instance(FMC寄存器地址) Extended(拓展寄存器地址) Init(初始化变量) Lock(锁) State( ...
- 物化实验计算机量子化学计算,量子化学计算实验详解.pdf
您所在位置:网站首页 > 海量文档  > 中学教育 > 中学实验 量子化学计算实验详解.pdf5页 本文档一共被下载: ...
- STM32L4xx基于UART的IAP实现(实验详解)
STM32L4xx基于UART的IAP实现(实验详解) 最近刚接触到STM32L452RET6(STM32L4xx系列)芯片,使用LL库配置(LL库更接近硬件层,直接操作寄存器.)可以先使用STM32 ...
- 实验详解——DNS网关服务器的分离解析
实验详解--DNS网关服务器的分离解析 一.实验图 二.要求 三.实验开始 1.网关服务器的配置 ①.新添加一块网卡,用双网卡来演示网关服务器的两个端口 ②.对两个网卡进行配置的修改 ③.重启网卡并查 ...
- 实验详解——DNS反向解析、DNS主服务器和从服务器的配置
实验详解--DNS反向解析.DNS主服务器和从服务器的配置 实验一:DNS反向解析 1.安装bind 2.查找配置文件路径 3.配置/etc/named.conf主配置文件 4.修改/etc/name ...
- 实验详解——parted单磁盘分区并进行配额
实验详解--parted单磁盘分区并进行配额 一.实验要求 二.实验开始 1.添加新硬盘 2.对新硬盘进行parted分区,格式设置为ext4 3.格式化分区,格式为ext4 4.设置配额方式和挂载 ...
最新文章
- 经验丰富程序员才知道的15种高级Python小技巧
- 推荐6个绝赞良心工具,总有一些适合你!
- SQL Cookbook:一、检索记录(1)从表中检索所有行和列
- 从 setNeedsLayout 说起
- JUST技术:提升基于GPS轨迹的路网推测精确度
- [android网络有效性检测] NetworkMonitor代码造成内存泄漏
- Python学习笔记9—文件
- [Leetcode][第329题][JAVA][矩阵中的最长递增路径][DFS][拓扑排序]
- android es管理工具,Android
- Android背景透明的 Dialog
- 区块链技术基础语言(三十二):Go语言网络编程(下)
- com.google.common.collect.Range 集合计算
- 关于微软的VB和C#:为何Basic需要存在,为何VB如此像C#,为何两者不合并等
- Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf_爱过了就好_新浪博客
- 数据排序pandas
- 用户购买预测使用paddlerec的baseline
- opendds简单入门(二)
- jetbrains goland配置go开发环境
- 解决mysql主从 The slave IO thread stops because the master has @@GLOBAL.GTID_MODE OFF and this server
- 2022年全球与中国超级电容器市场现状及未来发展趋势
热门文章
- Kotlin系列——构造函数精讲
- UST 与美元脱钩,LUNA 暴跌 99.9%
- v-md-editor详解(MarkDown编辑器组件)
- linux sed.写文件,Linux文件处理sed命令-linux sed命令详解-linux sed写入文件-嗨客网
- 【庖丁解牛】configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
- 想学设计模式、想搞架构设计,先学学 UML 系统建模吧
- 动漫java从入门到入土_适合刚入宅的萌新悠哉观看的经典番,全员致郁,从入门到入土?...
- 虹科案例|安全性防护平台-海康威视摄像机中的重大漏洞
- Just Waiting for You!个性化推荐带你领略不一样的算法之美
- ThingsBoard 3.3.1源码编译-windows版