IP-VPN、次世代広域イーサネットを構成する基盤技術
特集:MPLS技術とその最新動向を知る

近藤卓司
ノーテルネットワークス
2002/4/25

Part.4 広域LANサービスを実現するMPLS

 現在、最も注目されているMPLSの応用例が、MPLSによるレイヤ2 VPNの実現だ。レイヤ2の中でも特にイーサネットに関するものが、多くの日本のキャリアが提供している「広域LANサービス」を拡張する技術の1つとして期待されている。

レイヤ2 VPNの基本「Martini」

 まず、MPLSを用いたレイヤ2 VPNを実現する基本技術となる、「Martini」方式を紹介する。Martiniは、MPLS網を介してさまざまなレイヤ2プロトコルをPoint-to-Pointで運ぶことができる仮想回線「VC(Virtual Circuit)」を提供する技術だ。サポートするレイヤ2プロトコルには、「ATM」「フレーム・リレー」「HDLC/PPP」などが含まれるが、最も注目されているのは「イーサネット」である。つまり、Martiniを用いることにより、MPLS上でPoint-to-PointのイーサネットVCが提供できる。Martiniは現在、転送方式とカプセル化方式を記述した2つの草案が提出されている。標準化の途中ではあるが、多くのベンダがすでに製品へ実装を行っており、異ベンダ間の接続もある程度確認されている。

●Martiniのパケット・フォーマット
 まずは、Martiniのパケット・フォーマットを見てみよう。MartiniはBGP/MPLS VPNと同様の、2つのスタックされたラベルを用いる。PE間で、あらかじめトンネルLSPと呼ばれるLSPを張る。そのトンネルLSP内にイーサネットVCを提供する、複数のVC LSPを通す。トンネルLSPを提供する外側のラベルは「トンネル・ラベル」、VC LSPを提供する内側のラベルは「VCラベル」と呼ばれる。オプションとして「CW(Control Word)」と呼ばれる情報を付けることができるが、イーサネットVCでは用いない。フォワーディングはトンネルLSP、つまり外側のトンネル・ラベルのみを見て行われる(図19)。

図19 Martiniのパケット・フォーマット


●Martiniによる接続例

 具体的に、PE間でMartiniを用いたイーサネットVCを実現する動作を見てみる。まず最初に、イーサネットVCを提供するPE間でトンネルLSPを作る必要がある。もし、複数のPE間でイーサネットVCを提供する必要があるのであれば、そのすべてのPE間でフル・メッシュのトンネルLSPをあらかじめ張っておく必要があることになる。トンネルLSPは、LDP-DUを用いてIGPに従った経路で張るか、RSVP-TEかCR-LDPを用いて明示的な経路指定と帯域予約を行って張る。

 次に、イーサネットVCを識別する共通のVC IDを決める。ここでは、PE1の「Eth/30 VLAN/100」とPE2の「Eth/20 VLAN/200」をPoint-to-Pointで接続することとして、それぞれに共通の「VC ID 2400」を設定する。PE2には、「VC ID 2400」を示すラベルとしてVCラベル2000を割り当て、LDP-DUによりこの情報をPE1へ配布する。この情報を受け取ったPE1は、同じ「VC ID 2400」を持った「Eth/30 VLAN/100」からPE2へフォワーディングするパケットに、VCラベル2000を付ければよいことを知る。PE2へフォワーディングするためにトンネル・ラベル100を付けばいいことは、トンネルLSPの確立の際に分っている。双方向で通信を行うためには、同様にPE1からPE2へもLDP-DUで使用するラベルを割り当てる必要がある(図20)。

図20 MartiniによるPE間接続の仕組み


レイヤ2VPN機能を実現する「Kompella」

 このMartiniを用いてレイヤ2 VPNを実現するのが「Kompella」方式だ。BGP/MPLS VPNと同様に、BGP-MPを用いてラベルの配布を行う。厳密には、Kompellaで用いるBGP-MPは、BGP/MPLS VPNで用いるBGP-MPをさらに拡張したものだ。VPNのメンバーシップの確立にはRTを使う。BGP-MPを用いることで、Point-to-PointのイーサネットVCを個別に張るのではなく、同じVPNのユーザーにポリシーに基づき自動的に確立する機能を提供する。

●Kompellaによる接続例
 具体的に、PE間でKompellaを用いたレイヤ2 VPNを実現する動作を見てみる。Kompellaは、BGP/MPLS VPNとMartiniで使われている方法を流用している点が多いので理解しやすい。まず最初に、PE間でBGP-MPセッションを張る。ここで、すでにPE間のトンネルLSPが確立されていることが前提となる。Kompellaでは、ユーザーごとに「VFT(Virtual Forwarding Table)」と呼ぶテーブルを持っている。PE2のサイト2が接続されているVFT Aに、以下の設定を行う。

 RTは、同じVPNであることを識別するカラーを設定する。ここでは「RT Red」とする。「CE ID」は、自分に接続されているCE(サイト)を識別するユニークな値で、「CE Range」がレイヤ2 VPNを介して接続可能な相手のCE数だ。CE IDは、CD Rangeの範囲で1から順番にアサインする。ここでは、「CE ID 10」「CE Range 20」とする。最後に自分が提供するVLAN IDを意味する「Sub-int ID」を設定する。Sub-int IDは、101から120を用いるとする。

 同様の設定を、PE1にも行っておく。PE2と同一の「RT Red」「CE ID 1」「CE Range 20」とし、「Sub-int ID」は201から220とする。この情報に「Label Base」と呼ぶ情報を加えた「VCT(Virtual Connection Table)」をBGP-MPで配布する。Label Baseは自動的に割り振られ、CE Rangeに設定した分が連続した値で予約される。Label Baseは、2000が割り振られたとする。BGP-MPを受け取ったPE1が、RT Redを見てVPNを識別し、このVCTをVTF Aに渡す。VTF Aは受け取ったVCTを見てあて先「CE ID 10」のVCラベルとしてLabel Baseに自分の「CE ID 1」を足した値「2001」を用いればよいことを知る。あて先「CE ID 10」と接続する自身のVLAN IDは、予約してあるSub-int IDの10番目となる210を用いればよいことも知る。双方向で通信を行うためには、PE1からPE2へも同じ動作を行う。フォワーディングは、Martiniと同様のトンネル・ラベルとVCラベルを用いる(図21)。

図21 KompellaによるPE間接続の仕組み


●MACアドレスに基づくフォワーディングの実現

 ここまで説明して多くの人が疑問に思っただろうが、「Martini」「Komplla」のどちらにも、レイヤ2スイッチ機能、つまりMACアドレスの学習に基づいたフォワーディングを実現する機能は含まれていない。MartiniはPoint-to-PointのイーサネットVCを提供し、Kompellaは複数の拠点で自動的にPoint-to-PointのイーサネットVCを張る機能を提供するだけだ。広域LANサービスのバックボーンとして利用できるMACラーニング機能を持つマルチポイントのレイヤ2 VPNは、「VPLS/LPE L2VPN」方式や「lasserre-vkompella」方式が提案されており、提案の中心となっているベンダにより製品への先行実装も進められている。


 次章では、現在検討されているさらに新しいMPLSの応用技術を紹介する。


「これからのMPLS」へ


Index
特集:MPLS技術とその最新動向を知る
  Part.1 MPLSとは何か?
・MPLSと従来のルーティングとの違い
・MPLSの役割とは?
  Part.2 MPLS通信の仕組み
・MPLSの基本用語
・ラベル情報の配布
・経路の決定と帯域幅の確保
  Part.3 MPLSの応用「IP-VPN」
・最もポピュラーなIP-VPN「BGP/MPLS VPN」
・BGP/MPLS VPN以外のVPN実現方式
Part.4 広域LANサービスを実現するMPLS
・レイヤ2VPNの基本「Martini」
・レイヤ2VPN機能を実現する「Kompella」
  Part.5 これからのMPLS
・MPLSにおけるQoS/信頼性の実現
・MPLSによるネットワーク統合/さらなる応用
 


「Master of IP Network総合インデックス」



Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間