IP-VPNのネットワークはPEルータとPルータで構成

通信キャリアのIP-VPNのネットワークは、ユーザ側からみると巨大なルータです。その巨大なルータは、PE(Provider Edge)ルータおよびP(Provider)ルータで構築されています。

PEルータ

PEルータはIP-VPNを考える上でとても重要なルータで、IP-VPNの契約ユーザのCEルータを収容するルータです。1台のPEルータには1つの契約ユーザのCEルータだけではなく、いくつもの契約ユーザのCEルータがつながることになります。IP-VPNを巨大なルータと見立てた場合のインタフェースに相当するのがPEルータです。

Pルータ

PルータはIP-VPNの契約ユーザとは直接接続していないルータです。IP-VPN内でユーザのデータを転送するためのルータです。

CEルータ

CE(Customer Edge)ルータは、IP-VPNに接続するユーザ側のルータです。CEルータは、ユーザ側のルータなので、ユーザが設定と管理をしなければいけません。

MP-BGPとMPLS

PEルータとPルータで、IP-VPNのユーザから見ると、まるで巨大なルータであるかのように振る舞います。そのために、MPLSとMP-BGPを利用します。MP-BGPはIP-VPNの契約ユーザのルート情報を管理するために利用し、MPLSはIP-VPN上でユーザのデータを転送するために利用しています。MPLSを利用していることからIP-VPNはMPLS-VPNと表現することもよくあります。

MPLSはPEルータとPルータで利用しています。一方、MP-BGPは基本的にPEルータのみです。

図  IP-VPNのネットワーク構成
図 IP-VPNのネットワーク構成

MP-BGPの概要

MP-BGP(Multi Protocol-BGP)はBGPv4を拡張したルーティングプロトコルです。MPLS-VPNでは、通常のIPv4のルート情報の代わりにVPNv4ルート情報を扱えるようにMP-BGPを利用します。

IP-VPNでは、PEルータは契約ユーザのルート情報をすべて管理します。ただ、契約ユーザのIPアドレスは重複する可能性があります。社内のネットワークはプライベートアドレスを使ってアドレッシングするのが一般的です。ある契約ユーザと別の契約ユーザで同じプライベートアドレス範囲を利用している可能性があります。

IPアドレスの重複を回避するために、32ビットのIPv4アドレスを96ビットのVPNv4アドレスへ拡張して、契約ユーザごとのルート情報を管理するようにしています。VPNv4アドレスとは、32ビットのIPv4アドレスの前に64ビットのRD(Route Distinguisher)を付け加えた96ビットのアドレスです。RDで契約ユーザを識別できるようにしています。

図 VPNv4ルート
図 VPNv4ルート
図ではRDを簡略化しています。RDは64ビットの数値です。

そして、PEルータ間でVPNv4アドレスをアドバタイズするために、PEルータ間でMP-BGPを利用しています。また、MP-BGPはMPLSのラベル情報も扱うことができます。最終的にPEルータは、収容している契約ユーザの拠点のルート情報をすべて契約ユーザごとのルーティングテーブルに保持します。

図 3 PEルータ 契約ユーザごとのルーティングテーブル
図 PEルータ 契約ユーザごとのルーティングテーブル

MPLSの概要

MPLS( Multi Protocol Label Switching )は、もともとIPパケットの転送(IPルーティング)を高速化する目的で開発されていた技術です。通常のIPルーティングは、IPヘッダの宛先IPアドレスに一致するルーティングテーブルのルート情報を最長一致検索で検索しています。最長一致検索では、32ビットのIPアドレスのどのビットまでを参照するかがルート情報ごとに異なり、また、ルート情報をすべてチェックしなければいけません。

一方、MPLSでは、IPパケットにMPLSラベルを付加して、固定長のラベルを参照することで効率よく転送先を判断して、高速なルーティングを可能にしています。このような目的でMPLSを利用するときには、IPヘッダにMPLSヘッダでカプセル化して、さらにイーサネットなどのレイヤ2プロトコルのヘッドをカプセル化します。レイヤ3のIPヘッダとレイヤ2のヘッダの間にMPLSヘッダを付加するので、レイヤ2.5などと呼ばれることもありました。

図 4 MPLSのカプセル化(ルーティングの高速化)
図 MPLSのカプセル化(ルーティングの高速化)

MPLS-VPNでユーザのIPパケットの転送

MPLS-VPNで、契約ユーザのIPパケットを転送するときにはMPLSヘッダ(ラベル)を多重化して付加します。契約ユーザからのIPパケットをPEルータで受信すると、2つのラベルを付加します。

内側のラベル:契約ユーザのルートを識別するためのラベル
外側のラベル:出口となるPEルータまで転送するためのラベル

Pルータは外側のラベルのみを参照して、出口になるPEルータまで転送します。そして、出口のPEルータは内側のラベルから契約ユーザの転送するべきCEルータを識別します。ラベルはすべて取り除き元のIPパケットにして適切なCEルータへ転送します。

図 5 MPLS-VPNでのパケットの転送
図 MPLS-VPNでのパケットの転送

IP-VPNの仕組みのポイント

IP-VPNの仕組みのポイント
  • IP-VPNのネットワークは、PEルータとPルータで構成されている
  • PEルータは契約ユーザのCEルータを収容するルータで、契約ユーザのルート情報をすべて保持する
  • PルータはCEルータとは直接接続せず、MPLSでユーザのデータを転送する
  • PEルータおよびPルータでMPLSを利用し、PEルータ間でMP-BGPを利用する
  • 契約ユーザのルート情報はRDを付加したVPNv4ルートとしてPEルータで保持する
  • ユーザのIPパケットにMPLSヘッダ(ラベル)を2つ付加して転送する