MPLS
Multi-Protocol Label Switching(MPLS)は、IPを用いないパケットの転送方式である。名前が指すとおり、パケットをヘッダで包みLabelでパケットの転送を行うため、様々なプロトコルが転送可能である。また、ヘッダ長だけ見ても、IPv4の20bytesに比べMPLSは4bytesと少なく、転送時の計算コストが少なくて済むといった特徴がある。
使用用途
MPLS-VPN
MPLS-QoS
MPLS-Traffic Engineering
用語
Label Edge Router and Label Switching Router
Label Edge Router(LER)では、受信したIPパケットにラベルを付加(Insert)したり除去(Untag)したりする。付加することをIngress LSR、除去することをEgress LSRと呼ぶ。Label Switching Router(LSR)では一切ラベルの付加や除去を行わない。その代わりに宛先に応じてラベルを交換する(Swap)。ラベル付けされたパケットが通るパスをLabel Switched Path(LSP)と呼ぶ。
Forwardning Equivalence Class
同じラベルがつけられたパケットは同じ場所に転送される。このような同じ宛先のパケットや同じ扱いをさせるパケットの集合をForwarding Equivalence Class(FEC)と呼ぶ。Ciscoではラベル番号として16から1048575までを利用することができる。
Label Distribution Protocol
MPLSではTCPとUDPの両方を利用する。ポート番号は両方とも646を使用している。TCPでは、LDPセッションの確立、ラベル情報の交換、エラー通知を行う。UDPでは、LDPネイバーの発見とLDPセッションの維持を行っている。
Label Information Base
(宛先, ローカルラベル, リモートラベル)の対。これを用いてLFIBテーブルに設定を行っている。
LDPのネイバー確立の流れ
LDPのDiscoveryメッセージを用いてネイバーの検出を行う。
TCPコネクションを確立する。
LDPセッションを確立する。
ラベル情報の交換をする。
MPLSの動作
アンダーレイ
アンダーレイは普通にIGPでルーティングを行う。ここには特別な方法などは用いていない。
オーバーレイ
FEC毎にラベルをつけていく。このラベルはローカルで一意であれば十分なので16版から順番に割り当てていく。その後、LDPを用いて「自分はこのFECに対してこのラベルを割り当てたよ」というのを広報する。こうするとあるルータは複数のラベルを受け取ることがあるが、この時にはネクストホップをMPLSのルーティングに利用する。CiscoではPenulatiate Hop Poping(PHP)と呼ばれるMPLSの高速化の手法を採用しているので特殊なImplicit Nullというラベルを通知する。