馬場 達也
近年、ソフトウェアやハードウェアなどのリソースをネットワーク経由で利用する形態である「クラウドコンピューティング」が流行っている。クラウドコンピューティングには、SaaS(Software as a Service)やPaaS(Platform as a Service)、IaaS(Infrastructure as a Service)などの「パブリッククラウド」や、企業毎に自社のデータセンタ上でサーバ仮想化技術を使用して、社内の部門に対して仮想サーバの貸し出しサービスを行う「プライベートクラウド」などが存在するが、複数の企業のプライベートクラウドを物理的に同じインフラ上で実現することでコスト削減を実現する「仮想プライベートクラウド」が注目されてきている。仮想プライベートクライドでは、サーバの論理分割だけでなく、ネットワークの論理分割を行い、各社のプライベートクラウド間のセキュリティを確保する必要がある。本稿では、この論理分割を実現するための新しいネットワーク技術であるVXLANおよびNVGREについて説明する。
現在は、各社が自社のデータセンタに独自にプライベートクラウドを構築している。この状態では、サーバの集約効果はあるものの、コスト削減効果は限定的であった。このため、サーバだけでなく、データセンタやネットワークも他社と共有することでコストを削減する「仮想プライベートクラウド」が注目されている(図1)。
1台の物理サーバを複数の企業が共同利用するためには、サーバ仮想化技術を利用するが、ネットワークを複数の企業が共同利用するためには、VLAN(Virtual Local Area Network)などのネットワーク仮想化技術が必要となる。ネットワークの論理分割の方法としてVLANをはじめとする従来技術を使用する場合は、パケットにVID(VLAN ID)を付与し、図2のように、レイヤ3スイッチ、ファイアウォール、ロードバランサ、レイヤ2スイッチ、サーバなどを垂直に並べる方法が取られる。
図1: 仮想プライベートクラウドの仕組みとメリット
図2: ネットワークの論理分割のイメージ
この仮想プライベートクラウド環境においては、いくつかの問題が指摘されている。ひとつは、VIDが不足するという問題である。VLANでは、図3のように、イーサヘッダに12ビットの長さのVID(VLAN Identifier)を含むVLANタグを埋め込むことで、レイヤ2レベルでテナントを識別する。このVIDは0と4095を除いて、最大4,094個割り当てが可能である。しかし、仮想プライベートクラウドを利用する企業が増えると、4,094では足りないという問題がある。
図3: タグVLANのプロトコルフォーマット
ふたつめは、ライブマイグレーションへの対応である。ライブマイグレーションに対応するためには、仮想マシンが移動した後でも、同じネットワーク設定(IPアドレスおよびデフォルトゲートウェイ)で利用できるように、フラットなレイヤ2ネットワークで構成する必要がある(図4)。しかし、既存の環境では、レイヤ3スイッチやルータなどのレイヤ3機器が存在することが多く、このような機器を越えてライブマイグレーションを行うことができない。
図4: ライブマイグレーション時のVLANの問題
このため、テナントを識別するための識別子の上限を増やし、さらに、トンネル技術によって、レイヤ3ネットワーク上にレイヤ2ネットワークをオーバーレイで実現する仕組みを備えたVXLAN(Virtual Extensible Local Area Network)およびNVGRE(Network Virtualization using Generic Routing Encapsulation)というプロトコルの提案がされている。
VXLANは、VMwareとCiscoが中心となって提案している、現在のVLANを拡張する技術である。2011年8月に、VMware、Cisco、Arista、Broadcom、Citrix、Red Hatの共著で、“VXLAN: A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks”(draft-mahalingam-dutt-dcops-vxlan-00.txt)[1]というインターネットドラフトが提出された。
図5のように、VXLANでは、12ビットのVIDの上限(4,094)を拡張するために、24ビット(1,677万)の「VNI(VXLAN Network Identifier)」を含むVXLANヘッダを使用する。また、ライブマイグレーションに対応するため、イーサフレーム全体をUDPおよびVXLANヘッダでカプセル化することによって、レイヤ3ネットワーク上にフラットなレイヤ2ネットワークを実現することが可能となっている。
図5: VXLANのフォーマット
図6にVXLANのアーキテクチャを示す。VXLANに対応した仮想スイッチの間で同じテナントに所属する仮想サーバを結ぶトンネルを構築し、テナントは24ビットのVNIで識別される。間に存在する物理スイッチや仮想サーバはVXLANに対応する必要はない。
図6: VXLANのアーキテクチャ
NVGREは、Microsoftが中心となって提案している、現在のVLANを拡張する技術である。2011年9月に、Microsoft、Arista、Intel、Dell、HP、Broadcom、Emulexの共著で、“NVGRE: Network Virtualization using Generic Routing Encapsulation”(draft-sridharan-virtualization-nvgre-00.txt)[2]というインターネットドラフトが提出された。
図7のように、NVGREでは、12ビットのVIDの上限(4,094)を拡張するために、24ビット(1,677万)の「TNI(Tenant Network Identifier)」を含むGREヘッダを使用する。また、ライブマイグレーションに対応するため、イーサフレーム全体をGREでカプセル化することによって、レイヤ3ネットワーク上にフラットなレイヤ2ネットワークを実現することが可能となっている。
図7: NVGREのフォーマット
図8にNVGREのアーキテクチャを示す。NVGREに対応した仮想スイッチの間で同じテナントに所属する仮想サーバを結ぶトンネルを構築し、テナントは24ビットのTNIで識別される。間に存在する物理スイッチや仮想サーバはNVGREに対応する必要はない。
図8: NVGREのアーキテクチャ
VXLANとNVGREは、同じようなアーキテクチャであるが、以下のふたつの点が異なっている。
NVGREは、トンネリングに汎用のGREを使っているが、多くのネットワークチップはGREをサポートしているため、実装が容易であるという特徴がある。
(2) ECMPへの対応ECMP(Equal-Cost Multi-Path)は、5つの情報(送信元IPアドレス、宛先IPアドレス、プロトコル、送信元ポート、宛先ポート)を使って回線のロードバランシングを行う技術である。VXLANはUDPでカプセル化するため、UDPのポート番号が使用できるが、NVGREは、カプセル化にGREを使用しており、TCP/UDPのポート番号が存在しない。このため、NVGREでは、ECMPによるロードバランシング機能が十分に機能しないという問題が指摘されている。
VXLANおよびNVGREのセキュリティレベルは、VLANとほぼ同じレベルであるが、管理すべきIDの数が多くなるため、設定ミスが増加し、セキュリティレベルが下がる可能性がある。
VXLANおよびNVGREは、両方ともレイヤ2レベルでの仮想化を実現しており、論理分割のレベルはVLANと同じである。
(2) 運用面での課題VLANと同様にVNIやTNIと呼ばれているIDの管理が課題となる。1677万のIDを管理すると、設定ミスが増加し、セキュリティレベルが下がる可能性がある。このため、何らかのIDの自動割り当てが可能なコントローラ機能が必要となる。
VMwareの仮想スイッチや、VMware上で動作する仮想スイッチ「Cisco Nexus 1000V」においてVXLANのサポートが予定されている。
VXLANおよびNVGREは、トンネルで構築されたレイヤ2ネットワーク上で、マルチキャスト通信およびブロードキャスト通信を行うために、物理インフラのマルチキャスト機能を使用する。つまり、物理インフラ上のルータに、DVMRP(Distance Vector Multicast Routing Protocol)、PIM-DM (Protocol Independent Multicast-Dense Mode)、PIM-SM(Protocol Independent Multicast-Sparse Mode)などのマルチキャストルーティングの設定を行い、テナント毎にマルチキャストグループを対応付けする作業が必要となる。
また、VXLANでは48バイト、NVGREでは40バイトのトンネル用のヘッダが付加されるため、MTUが減少し、フラグメントが発生するという問題がある。このため、サーバ側で経路MTU探索を行い、フラグメントが発生しないように注意する必要がある。
VXLANおよびNVGREの両仕様ともインターネットドラフトの初版の段階ではあるが、VMware、Citrix、Microsoft、Red Hat、Ciscoといった大手ベンダが強力にサポートしており、標準化に先行して仮想スイッチへの実装が進むと予想される。
VLAN IDの枯渇の問題と、レイヤ2フラットなネットワークの実現という意味では、OpenFlowも解決策のひとつであり、今後、VXLAN、NVGRE、OpenFlow [3]の3方式の動向をチェックしていく必要がある。
以上
| [1] | “VXLAN: A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks”, |
| [2] | “NVGRE: Network Virtualization using Generic Routing Encapsulation”, |
| [3] | IPA,『情報セキュリティ技術動向調査(2010 年下期)』「8. OpenFlowによるネットワーク分離」, |