当前位置: 首页 > news >正文

MPLS特性之PHP(Penultimate Hop Popping)

一、概述

        PHP(Penultimate Hop Popping倒数第二跳弹出)特性就是在倒数 第 二 个 节 点 上 弹 出 标 签 的 特 性 。 因 为 在 LSP 的 最 后 一 跳 节 点 (Egress),所以已不需要再进行标签交换。

        通过在倒数第二跳节点上配置PHP特性,使倒数第二跳节点在向最 后一跳节点发送报文时将最外层的出标签弹出(如果最外层出标签被 弹出后只剩下栈底标签,也将被弹出 ),以使最后一跳可以直接进行 IP转发或者下一层标签转发,在减少最后一跳标签交换的负担。但并不是在倒数第二跳配置了PHP特性就一定能将最外层标签弹出,还要视 最后一跳原来为其分配的标签类型而定,因为并不是所有标签均支持 被弹出。

举个例子:

在上述拓扑当中,假设192.168.1.0/24通过隧道去往192.168.2.0/24网段。

1、首先由AR1查看路由表转发给AR2

2、AR2通过查看FIB表项中的Tunnel ID参数找到对应的LFIB表项压入相应标签,从对应接口发出传递给AR3。

3、AR3收到后由于是MPLS的包所以会先查看LFIB表项中的ILM表项,找到对应的Tunnel隧道ID以及入标签,根据入标签和Tunnel隧道ID找到对应的NHLFE表项交换标签,转发给AR4。

4、AR4收到该报文后首先查看LFIB表项中的ILM表项以及NHLFE表项,发现自己是最后一台LER设备所以进行弹出动作,使该报文变成正常的IP报文,随后查看FIB表项进行转发。

二、PHP的工作原理

        通过上面的介绍我们了解了,一般标签的弹出动作都是由我们的Engress设备来完成的,所以Engress设备在收到报文后会去查两个表项,一个为LFIB一个为FIB,而PHP的作用就是让我们的Engress设备直接去查FIB转发不用再去查LFIB表项,具体是怎么实现的呢?

        还是以上述拓扑为例

        在我们配置完PHP功能之后,AR4在给AR3分配标签时,会分配一个特殊的标签"3"这个标签的含义为隐含的空标签,当AR3收到这个3号标签之后就知道了,原来自己是倒数第二个设备,AR3就会在发送标签的时候直接给标签弹出,而不是携带标签发送给AR4。AR4收到的报文就是一个没有携带标签的报文,所以AR4直接查FIB表转发即可。节约了我们Engress设备的性能。

以上就是本章的全部内容了,如果本文章对你的学习有所帮助麻烦点个赞加个收藏,文章若有错误或疑问可联系博主删除更改,感谢大家的浏览观看!

http://www.lryc.cn/news/615780.html

相关文章:

  • Android快速视频解码抽帧FFmpegMediaMetadataRetriever,Kotlin(2)
  • 【软考中级网络工程师】知识点之 DCC 深度剖析
  • 【21】OpenCV C++实战篇——OpenCV C++案例实战二十七《角度测量》
  • Perplexity 为特朗普 Truth Social 提供技术支持
  • 如何培养自己工程化的能力(python项目)
  • Pytorch深度学习框架实战教程12:Pytorch混合精度推理,性能加速147%的技术实现
  • 若依前后端分离版学习笔记(八)——事务简介与使用
  • Apache Pulsar性能与可用性优化实践指南
  • NLP---IF-IDF案例分析
  • C++高频知识点(十九)
  • 【面试场景题】异地多活改造方案
  • 【Matplotlib】中文显示问题
  • 【论文阅读】Deep Adversarial Multi-view Clustering Network
  • Docker 镜像常见标签(如 `标准`、`slim`、`alpine` 和 `noble`)详细对比
  • 随想记——excel报表
  • Linux下的软件编程——标准IO
  • 编程基础之多维数组——矩阵交换行
  • `sk_buff` 结构体详解(包含全生命周期解析)
  • 如何回收内存对象,有哪些回收算法?
  • XML 指南
  • LeetCode_字符串
  • Jenkins | 账号及权限管理
  • Pytorch深度学习框架实战教程-番外篇02-Pytorch池化层概念定义、工作原理和作用
  • 怎么能更好的降低论文AI率呢?
  • 分布微服务电商订单系统Rust编码开发[下]
  • SpringBoot学习日记(三)
  • 【C++/STL】list模拟实现和迭代器失效问题
  • 基于 RabbitMQ 死信队列+TTL 实现延迟消息+延迟插件基本使用
  • 十、Linux Shell脚本:流程控制语句
  • [Julia] LinearAlgebra.jl 自带包