MPLS百科
您的位置:网站首页 > MPLS百科 > MPLS的一个基础性机制PHP

MPLS的一个基础性机制PHP

时间:2020-10-14 13:01 发布:http://www.pbsvpn.com 点击量:4294

PHP(Penultimate Hop Poppoing,次末跳弹出或者倒数第二跳弹出),这是MPLS的一个基础性机制。下面,来看一个简单的例子:

在上图中,R3收到发往1.0.0.0/8的标签报文后,需首先在ILM中查询标签值,然后根据指示将标签头部弹出,再到FIB表中查询IP报文的目的IP地址,最后将IP报文转发出去。也就是说,R3需要执行两次查询操作。实际上,对于这个过程来说,是存在优化空间的。

R3如果激活了PHP特性,那么当它为本地直连路由1.0.0.0/8分配标签时,会分配一个特殊的标签,该标签被称为隐式空标签(Implicit NULL Label),其值为3。R3将该标签值通告给R2。当LSR转发一个标签报文时,如果发现相应的入站标签对应的出站标签值为3,那么该LSR将把报文的标签头部弹出,然后将里面所封装的数据转发给下游LSR,也就是执行PHP(Penultimate hop popping,次末跳弹出)操作。

R2作为到达1.0.0.0/8的次末跳(倒数第二跳),收到发往1.1.1.3的标签报文后,发现出站标签值为3,于是将标签头部弹出,将IP报文转发给R3,而R3则仅需执行一次查询操作(查询FIB表)即可获得相应的转发信息,转发效率得到了提升。

LDP在帧模式Frame Mode下(现在基本都用帧模式了),LSR会为本地路由捆绑标签值3,3是一个LDP保留的标签,叫做“impilict null隐式空”标签。

倒数第二跳弹出机制(PHP)有两种标签,一是implicit null (隐式空),在LDP中标签值为3;

另一个是explicitnull(显式空),在LDP中标签值为0。如果收到LDP邻居发送来的关于某条路由分配的标签值为3,则我发送前往该目标网段的数据给该邻居时,我会将该标签弹出,再将内层数据转给邻居。而如果邻居关于某条路由分配的标签值为0,那么本地在转数据给邻居时,会带上标签头(标签值为0的),一并发给邻居。在MPLS视图下,使用“label advertise explicit-null”命令,可以让设备向倒数第二跳分配显式空标签;

“label advertise implicit-null”命令(默认即开启)则会使得设备向倒数第二跳分配隐式空标签。“labeladvertise non-null”命令则相当于关闭PHP机制,使得设备正常分配标签而不使用空标签。

以上就是MPLS的一个基础性机制PHP的介绍,

如果你还有其他问题,欢迎进行咨询探讨,希望我们的专业的解决方案,可以解决你目前遇到的这些问题。