MPLS-VPN の基本的な構成と図中のルータの説明を以下に示します。
なお、MPLS-VPN の重要なコンポーネントである VRF の詳細については、以下記事をご参照下さい。
構成図
CE-A1, CE-A2, CE-B1, CE-B2
CE ルータとは一般に Customer Edge ルータのことを指します。MPLS-VPN サービスを利用する顧客が用意するルータです。
ここでは CE-A1 と CE-A2 を用意するのが『顧客 A』であり、CE-B1 と CE-B2 を用意するのが『顧客 B』です。
PE1, PE2
PE ルータとは一般に Provider-Edge ルータのことを指します。MPLS-VPN サービスを提供する事業者 (サービスプロバイダ) が用意するルータです。
PE ルータ上では VRF と呼ばれる仮想ルータが設定・構成され、ルーティングを顧客ごとに個別に管理することができます。
M
Maintenance-Router (Mルータ) を指します。これは一般的な名称では無いですが、Route-Target の例の説明のために配置しています。
ここでは MPLS ネットワーク全体の保守運用を行なうセグメントがあることを想定します。
P
Provider-Router (Pルータ) を指します。MPLS 網の中継ルータ。
通常は 2 台以上で各 PE や M との冗長経路を確保するのですが、ここでは図を分かりやすくするために各ルータ 1 経路にしています。
通信の流れについて
まず、CE-A1 から PE1 の顧客 A 用の VRF インスタンスにパケットが入ると、VPN 識別ラベル (図では 30) が取り付けられます。
この VPN 識別ラベルは PE2 から MP-BGP で VPNv4 Prefix と一緒に受け取るもので、PE2 側でどの VRF インスタンスに行けばよいかを識別します。(MP-BGP でのルーティング情報交換の際にどの VRF インスタンスに入れれば良いかの識別は Route Target が行ないますが、 パケット転送の際はこの VPN 識別ラベルで行ないます。)
MP-BGP の詳細については以下記事をご参照下さい。
VPNv4 Prefix とは、Route Distinguisher (RD) と通常のプレフィックスの組合せ [RD:Prefix] のことです。
図の場合、CE-A2 に接続されたネットワークを VPNv4 Prefix で表すと、[1:10:10.1.2.0/24] になります。
RD (Route Distinguisher) とは、そのルータ内での VRF の識別をするものです。
VRF はあくまでルーティングテーブルを分割するだけで、複数の VRF はルータの 1 プロセスによって管理されます。そのプロセスが、その IP アドレスはどの VRF に所属するものなのかを識別するために RD が必要となります。
Route Distinguisher (RD) はローカルルータでの取り扱い、Route-Target (RT) は、リモートルータでの取り扱いの話、という違いで考えると分かりやすいかもしれません。
RD は『ローカルルータ内での VRF を識別するため』にそのルータだけで使われる情報であるのに対し、RT は『VPNv4 Prefix をリモートルータ上のどの VRF に入れるべきかを識別するため』に MP-BGP で伝搬される情報です。
VPNv4 Prefix は [RD]:[IPv4 address] という形式ですが、MP-BGP で伝搬され、RT により VRF に格納されるタイミングで、RD はリモートのものからローカルのものへ変換されます。
なので、RD は必ずしもローカルルータとリモートルータで同じにする必要はありません。(もちろん、運用管理上は揃えたほうが分かり易くてよいですが)
PE1 の VRF インスタンスで VPN 識別ラベルが取り付けられると同時に、パケットは VRF インスタンスから Global インスタンスに移動します。
Global インスタンスでは、NextHop が 2.2.2.2 となっているため、これに対応した網内転送ラベル (図では 16) を、先程取り付けた VPN 識別ラベルの上にさらに取り付けます (スタック)。この網内転送ラベルは LDP 等により P から伝えられるものです。
P が MPLS パケットを受け取ると、網内転送ラベルだけを見て網内をスイッチングします。この例では P ルータは 1 台だけですが、 間に P ルータが何台あっても、全ての P ルータでは網内転送ラベルだけを見てスイッチングしていきます。
PE2 の直前の P ルータでは、PHP によって網内転送ラベルを削除して PE2 にパケットを送ります
PE2 では自分が BGP で送ったラベルが取り付けられたパケットを認識し、VPN 識別ラベルをはがすと同時に Global インスタンスから対応した VRF インスタンスに移動し、そこで通常のルーティングにより CE-A2 に IP パケットを転送します。
このラベルの付け剥がしとインスタンスへの移動は、スイッチにおける VLAN タグの付け剥がしと access VLAN への移動に似ています。
Cisco における MPLS-VPN 設定例
Cisco における設定例については以下記事をご参照下さい。
コメント
素晴らしい記事の共有有難う御座います。
1点確認ですが、図内の顧客Bの拠点のCustomer Edgeルーターの識別子が
いずれも”CE-A2”となっているのは誤植でしょうか?(CE-B1とCE-B2かと思ったのですが)
Lab8010 さん
コメントありがとうございます。ご指摘の通り、誤植でした。。修正しましたのでご確認下さい。
MPLS, MP-BGP は理解するまで時間が掛かるかと思いますが、分かりにくい箇所などありましたらまた気軽にコメント下さい。