【図解】MPLS-VPNの概要 ~MP-BGPとVRFの動作,シーケンスやRDとRTの違い, 識別ラベルについて~

MPLS-VPN の基本的な構成と図中のルータの説明を以下に示します。

なお、MPLS-VPN の重要なコンポーネントである VRF の詳細については、以下記事をご参照下さい。

【図解】VRFの概要と仕組み ~VRF-Liteとの違い,構成例,設定例について~
【図解】VRFの概要と仕組み ~VRF-Liteとの違い,構成例,設定例について~
VRFとは? VRF とは Virtual Routing and Fowar...

CE-A1, CE-A2, CE-B1, CE-B2

Customer-Edge-Router (CEルータ) と呼ばれるルータで、顧客の社内ネットワークと MPLS-VPN ネットワークの境界にある顧客側のルータ。通常は顧客の資産、もしくはプロバイダからのレンタルルータとなります。

PE1, PE2

Provider-Edge-Router (PEルータ) と呼ばれるルータで、顧客の社内ネットワークと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 の詳細については以下記事をご参照下さい。

【MP-BGP】のType(NLRI, AFI/SAFIやRoute-Target)の仕組みとシーケンス
【MP-BGP】のType(NLRI, AFI/SAFIやRoute-Target)の仕組みとシーケンス
MP-BGPとは BGPでは伝達できるルート情報はIPv4 unicastのみ...

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 は MP-BGP で伝搬された VPNv4 Prefix が、リモートルータ上のどの VRF に入れるべきかを識別します。

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 における設定例については以下記事をご参照下さい。

【図解】MPLS-VPNの設定~スーパーバックボーン, sham-link, 拡張コミュニティについて~
【図解】MPLS-VPNの設定~スーパーバックボーン, sham-link, 拡張コミュニティについて~
Cisco での MPLS-VPN の設定例を紹介します。以下の図の NW を構...