MPLS - PHP



 ◆ MPLS - MPLSルータのパケット転送( PHP無効の動作

 MPLSを有効にしたルータ、つまりLERやLSRでは、IPパケットを受信するとFIBテーブルを参照して転送を
 行いラベル付きパケットを受信するとLFIBテーブルを参照して転送を行います。これらのテーブルに宛先の
 情報がない場合はそのパケットは破棄されます。以下は後に解説する
PHPという機能が無効な時の動作です。


   


 PHP機能が無効な場合、Egress LSR(出口側のLSR)であるLERは、LFIBテーブルとFIBテーブルの
両方を
 参照してから転送する必要がありますが、PHP機能が有効にした場合は高速な転送処理が可能になります。


 ◆ 
MPLS - MPLSルータのパケット転送( PHP有効の動作 )

 PHPはLERの1つ前のLSRでラベルを外して転送する技術です。これにより下図の通り、LER (Egress LSR) は
 LFIBテーブルを参照することなく、FIBテーブルだけを参照して転送するようになるので、より効率的な動作が
 実現することになります。Ciscoルータでは
デフォルトでPHPが有効なため以下の動作がデフォルトとなります。


   



 PHPが有効な場合は、LERは自身配下にいるネットワークを隣接するLSRに、LDPでラベル情報を通知する時、
 LERは自身配下にいるネットワークのラベルを
Implicit Nullとして通知します。Implicit Nullのラベル情報を
 学習したLSRは、LFIBテーブル上でこのネットワークに対しラベルをPop (外す) 位置付けとして学習します。
 
※ Implicit Null(暗黙のヌル)、つまり、最後のLERからの通知だからラベル外して当然でしょ?暗黙の了解でしょ? ということ。

 ちなみにPHPは、Penultimate Hop Poping の略です。Penultimateは「
最後から2番目の」という意味です。
 上図の通り、最後から2番目のLSRで、ラベル付きパケットのラベルを外してパケットをフォワードしています。

 理解できたでしょうか。いきなりFIBテーブルとLFIBテーブルで見ると理解するのが難しいかもしれないので、
 FIBテーブルとLFIBテーブルの
もとである、ルーティングテーブルとLIBテーブルもその内容を見てみましょう。


   

 
※ なぜ、CiscoルータでDirectly Connectのネットワークの local binding が imp-null なのか、それはPHPが有効だからです。




 ◆ MPLS - LSRで行うラベル処理

 LSRで行っているラベル処理が色々と出てきたので整理します。LSRで行うラベル処理は全部で
4つあります。

LSRのラベル処理 説明
 Insert ( Impose )  IPパケットへのラベル付加。主にMPLS網の入口となるLER ( Ingress LSR ) で行う。
 Swap  先頭ラベルの交換。主にMPLS網内のLSRで行う。
 Remove ( Pop )  先頭ラベルの除去。主にMPLS網内のLSRで行う。
 Untag  ラベルの全ての除去。主にMPLS網の出口となるLER ( Egress LSR ) で行う。


 LSRのラベル処理で先頭ラベルの交換、先頭ラベルの除去など「先頭」という言葉が気になります。MPLSでは
 複数のラベルを付加することができます。これを「ラベルスタック」と言いますが、MPLS-VPN実装時には
 2つのラベルが付加されることになるのでこのRemove(Pop)とUntagの違いがよく理解できると思います。

 現時点では、LSRはラベルスタックされたラベルパケットを受信した場合、先頭ラベルのみを参照してラベル
 スイッチング
することを理解しておきましょう。


    



MPLSとは

ネットワークエンジニアとして

Copyright (C) 2002-2019 ネットワークエンジニアとして All Rights Reserved.