文章目录

  • 采用静态手工指定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设备)相关推荐

  1. 实验详解——Cobbler自动部署最小化安装

    实验详解--Cobbler自动部署最小化安装 一.实验:自动部署 二.Cobbler自动装机服务搭建步骤 1.导入epel源并加载在线安装源 2.安装Cobbler以及其相关服务软件包 3.修改cob ...

  2. 详解FTP服务完成Linux和WIN10之间的信息传输(实验详解)

    详解FTP服务完成Linux和WIN10之间的信息传输(实验详解) 一.FTP简介 1. FTP服务--用来传输文件的协议 2.端口 3.数据连接模式 二.相关配置 1.安装FTP服务 2.设置匿名用 ...

  3. 详解 Linux环境中DHCP分配IP地址(实验详解)

    Linux中DHCP小实验详解 一.DHCP中继概述 二.DHCP在linux系统中的相关配置 1.配置DHCP服务器 2.设置全局配置参数 3.subnet网段声明 4.host主机声明 三.实验例 ...

  4. STM32F429第二十五篇之MCU屏实验详解

    文章目录 前言 硬件 软件 结构体 SRAM_HandleTypeDef Instance(FMC寄存器地址) Extended(拓展寄存器地址) Init(初始化变量) Lock(锁) State( ...

  5. 物化实验计算机量子化学计算,量子化学计算实验详解.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp中学教育&nbsp>&nbsp中学实验 量子化学计算实验详解.pdf5页 本文档一共被下载: ...

  6. STM32L4xx基于UART的IAP实现(实验详解)

    STM32L4xx基于UART的IAP实现(实验详解) 最近刚接触到STM32L452RET6(STM32L4xx系列)芯片,使用LL库配置(LL库更接近硬件层,直接操作寄存器.)可以先使用STM32 ...

  7. 实验详解——DNS网关服务器的分离解析

    实验详解--DNS网关服务器的分离解析 一.实验图 二.要求 三.实验开始 1.网关服务器的配置 ①.新添加一块网卡,用双网卡来演示网关服务器的两个端口 ②.对两个网卡进行配置的修改 ③.重启网卡并查 ...

  8. 实验详解——DNS反向解析、DNS主服务器和从服务器的配置

    实验详解--DNS反向解析.DNS主服务器和从服务器的配置 实验一:DNS反向解析 1.安装bind 2.查找配置文件路径 3.配置/etc/named.conf主配置文件 4.修改/etc/name ...

  9. 实验详解——parted单磁盘分区并进行配额

    实验详解--parted单磁盘分区并进行配额 一.实验要求 二.实验开始 1.添加新硬盘 2.对新硬盘进行parted分区,格式设置为ext4 3.格式化分区,格式为ext4 4.设置配额方式和挂载 ...

最新文章

  1. 经验丰富程序员才知道的15种高级Python小技巧
  2. 推荐6个绝赞良心工具,总有一些适合你!
  3. SQL Cookbook:一、检索记录(1)从表中检索所有行和列
  4. 从 setNeedsLayout 说起
  5. JUST技术:提升基于GPS轨迹的路网推测精确度
  6. [android网络有效性检测] NetworkMonitor代码造成内存泄漏
  7. Python学习笔记9—文件
  8. [Leetcode][第329题][JAVA][矩阵中的最长递增路径][DFS][拓扑排序]
  9. android es管理工具,Android
  10. Android背景透明的 Dialog
  11. 区块链技术基础语言(三十二):Go语言网络编程(下)
  12. com.google.common.collect.Range 集合计算
  13. 关于微软的VB和C#:为何Basic需要存在,为何VB如此像C#,为何两者不合并等
  14. Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf_爱过了就好_新浪博客
  15. 数据排序pandas
  16. 用户购买预测使用paddlerec的baseline
  17. opendds简单入门(二)
  18. jetbrains goland配置go开发环境
  19. 解决mysql主从 The slave IO thread stops because the master has @@GLOBAL.GTID_MODE OFF and this server
  20. 2022年全球与中国超级电容器市场现状及未来发展趋势

热门文章

  1. Kotlin系列——构造函数精讲
  2. UST 与美元脱钩,LUNA 暴跌 99.9%
  3. v-md-editor详解(MarkDown编辑器组件)
  4. linux sed.写文件,Linux文件处理sed命令-linux sed命令详解-linux sed写入文件-嗨客网
  5. 【庖丁解牛】configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
  6. 想学设计模式、想搞架构设计,先学学 UML 系统建模吧
  7. 动漫java从入门到入土_适合刚入宅的萌新悠哉观看的经典番,全员致郁,从入门到入土?...
  8. 虹科案例|安全性防护平台-海康威视摄像机中的重大漏洞
  9. Just Waiting for You!个性化推荐带你领略不一样的算法之美
  10. ThingsBoard 3.3.1源码编译-windows版