MPLS-VPN

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

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

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

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

構成図

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 の詳細については以下記事をご参照下さい。

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

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

 

コメント

  1. Lab8010 より:

    素晴らしい記事の共有有難う御座います。
    1点確認ですが、図内の顧客Bの拠点のCustomer Edgeルーターの識別子が
    いずれも”CE-A2”となっているのは誤植でしょうか?(CE-B1とCE-B2かと思ったのですが)

    • nesuke より:

      Lab8010 さん

      コメントありがとうございます。ご指摘の通り、誤植でした。。修正しましたのでご確認下さい。

      MPLS, MP-BGP は理解するまで時間が掛かるかと思いますが、分かりにくい箇所などありましたらまた気軽にコメント下さい。

タイトルとURLをコピーしました