MPLSとは

MPLS(Multi-Protocol Label Switching)は、様々なL2/L3プロトコル(IPv4/IPv6/Ethernet/ATM/Frame-Relay等)にラベルを取り付け、そのラベルに基づいてそのプロトコルを高速に転送するスイッチング方法です。

MPLSによる具体的な流れを以下に示します。

スポンサーリンク

まずはOSPF等のルーティングプロトコルによりルート情報を伝搬します。

次にLDP等のラベル伝搬プロトコルによりそのルート情報に対応するラベル情報を伝搬します。下図の例にある通り、このラベルは、同じルート情報であっても、ルータ毎に異なっていても構いません。ラベル情報が伝搬したらデータ転送ができる準備が整ったことになります。

するとMPLSによるデータ転送が可能になります。MPLS網内でラベル(Label)を交換(Switching)しながら、目的地に向かいます。

通常のIPパケットルーティングではIPヘッダ(主に32bitの宛先IPアドレスですが、特殊なケースではソースルーティングのようなオプションがあるため可変長)によりルーティングを決定していましたが、MPLSでは20bitの ラベル(固定長)だけで判断できるため、高速転送が可能となる訳です。

しかしこれはルーティングをソフトウェア処理(CPU処理)をしていた時代の話であり、最近はこのメリットはほとんどありません。というのも、最近のルータはルーティングも ハードウェア処理(ASIC処理)をしているためです。

MPLSはもともとはATM上でIPを運ぶ際の高速転送技術として発展してきましたが、現在の活用方法としてはMPLS-VPNという VPN構築が大きなウェイトを占めています。

MPLSにはデータリンクヘッダとIPヘッダの間にラベルを含む20bitのMPLSヘッダ(Shimヘッダ)を取り付けるフレームモード(パケットモード)と、 ATMのVPI/VCIやFrame-RelayのDLCIにラベルをマッピングするセルモードの2種類がありますが、最近はEthernet がネットワークの主流となっており、ここではフレームモードをメインに解説します。

スポンサーリンク
スポンサーリンク

MPLSヘッダ(Shimヘッダ)のフォーマット

Ethernet上でIPv4にMPLSラベルを付ける場合のMPLSヘッダ(Shimヘッダ)のフォーマットを以下に示します。

Label Field

20bit。転送先を決定する識別子。なお、Labelは宛先NWアドレスではなくFEC(Forwarding Equivalence Class)毎に割り当てられます。

FECとは、簡単に言うと、”MPLS NW内で、同じ振る舞いをさせたいパケットの集まり”のことで、ユニキャストの場合、例えば、 宛先NWアドレスやToS等の値、もしくはそれらの組合せ等によりクラス分けされます。ただし、大抵の場合”FEC = 宛先NWアドレス”となります。マルチキャストの場合は、例えば、送信元/宛先IPアドレスの組合せ等によりクラス分けされます。

EXP Field

3bit。実験的に利用されるビットで、現在はIP Precedenceの情報をマッピングしてQoSの目的で利用されています。

S Field

1bit。スタックビット。MPLSヘッダは1つのパケットに2つ以上おくことができます。このスタックビットが0の場合そのMPLSヘッダの後に さらにMPLSヘッダが続くことを示します。スタックビットが1の場合そのMPLSヘッダの後にはIPv4等の転送するプロトコルが続きます

MPLS-VPNでは、1つのパケットに2つのMPLSヘッダを利用しています。

TTL Field

8bit。IPヘッダのTTLと同様、ループ防止のために使われます。MPLSが取り付けられるタイミングで新たにセットすることもできますし、 IPヘッダのTTL値をセットする(TTL Propagation)こともできます。

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク