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