PHPとは
PHPとは、Penultimate Hop Poppingの略で、MPLS通信を効率化する機能の1つです。
MPLS NWとIP NWの境界となるルータは、Ingress LSRの役割と同時に、この逆の機能をするEgress LSRの役割もあります。 Egress LSRは、MPLS NWからIP NWに向けてパケットを転送するルータのことです。
PHP機能を利用していない場合、Egress LSRにおいて、Next HopがIP NWである宛先のラベル情報は、LDP等により通常のラベル(16以上)で 周りのLSRに伝えられます。
例えば以下の例を考えて見ます。
この場合、R4ではラベル付きのパケットを受け取るため、まずLFIBテーブルを見ます。
LFIBテーブルではラベルをPop(削除)しなさいと書かれているため、ラベルを削除します。そしてその後、 FIBテーブルを見てルーティング先を見つけます。つまり、2度手間になり、それだけルータに負荷がかかります。
図の例では宛先がConnectedのため、そのまま宛先に送られますが、仮に10.1.2.0/24がConnectedでない場合は、FIBテーブルにはNextHopには具体的なIPアドレスが入り、FIBテーブルによりそのNextHopに転送されます。
PHP機能を利用している場合、Egress LSRにおいて、Next HopがIP NWである宛先のラベル情報は、LDP等によりImplicit Null(ラベル:3) と呼ばれる特殊なラベルを周りのLSRに伝えられます。
この場合、R3ではR4に送る際にラベルを外すため、R4ではラベル無しのパケットを受け取ります。 そのため、PHP機能無しの場合とは異なり、最初からFIBテーブルを参照してパケット転送ができるため、 効率的になります。