MPLS とは
MPLS(Multi-Protocol Label Switching)は、様々なL2/L3プロトコル(IPv4/IPv6/Ethernet/ATM/Frame-Relay等)にラベルを取り付け、そのラベルに基づいてそのプロトコルを高速に転送するスイッチング方法です。
MPLSによる具体的な流れを以下に示します。
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 のレイヤー
MPLSの役割は転送です。レイヤー2.5 だと主張する声もあるようですが、nesuke的にはMPLSのレイヤーは3です。
レイヤー2は主にレイヤー1に紐付くビット伝送方式が定義されているものです。つまり、光ケーブルなら光ケーブルなりの、メタルケーブルならメタルケーブルなりの、ISDN回線ならISDN回線なりの適したビット伝送方式があるわけで、それを担うのがレイヤー2です。
MPLSでは特にそのような役割は無く、IPと同じく、宛先情報を見て転送先を決定するだけです。なのでレイヤー3と考えられます。
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)こともできます。
IT/インフラエンジニアの地位とスキル向上のために


コメント