ネットワーク NSX

新卒 SE 社員が贈る NSX のキソ︕第 2 回〜NSX Data Center for vSphere の基本構成(登場人物の整理)〜

こんにちは!「新卒社員が贈る NSX のキソ!」第 2 回を担当する VMware 新卒第 4 期生の村田太郎です。第 2 回では NSX Data Center for vSphere を構成する主要なコンポーネントと、ブログ全体で利用する NSX Data Center のサンプル構成についてご紹介いたします。

図 1 NSX Data Center を構成する主なコンポーネント

NSX Data Center for vSphere を構成する主なコンポーネントは図 1 のようになります。 vCenter Server と ESXi ホスト以外は全て NSX Data Center 導入時に新たに展開されるコンポーネントになります。
念のため簡単に説明すると、 ESXi ホストは仮想化の基盤であるハイパーバイザーのインストールされた物理ホストで、この上に仮想マシンが作成されていきます。vCenter Server は ESXi ホストの管理を行うためのコンポーネントで、複数ホストにまたがったネットワークの設定を行う際に必要となります。
vCenter Server によって提供される管理画面が vSphere Client (HTML5)と vSphere Web Client (Flash)ですね。現在はFlash 版と HTML5 版が利用可能になっていますが、今後 Flash 版はなくなり、HTML5 に統合されていく予定です。

図 2 vSphere Client (HTML5)

各コンポーネントはその役割によって、管理プレーン(Management Plane)、制御プレーン(Control Plane)、データプレーン(Data Plane)のいずれかに分類されます。プレーンという言葉は聞きなれないかもしれませんが、あるひとつの機能を実現するのにもいろいろなコンポーネントが関わっていて、それぞれの役割で分類されている、程度に思ってください。
1. NSX Data Center のプレーンについて
NSX Data Center では、各コンポーネントがプレーンごとにぞれぞれ独立して動作しているので、もし制御プレーンに障害が発生しアクセスができない状態になったとしても、データプレーンが動作していれば通信を継続的に正常に処理することができる、などのメリットがあります。
プレーンが分かれておらず、設定、制御、実際の通信を同じコンポーネントで実現していると、そのコンポーネントに障害が発生してしまったときの影響範囲が非常に広くなってしまいますが、役割を分けてコンポーネントが存在しているとそういったことは起こりづらくなります。
管理プレーンは NSX Manager によって構築される NSX Data Center の管理コンポーネント群であり、管理者への一元的な設定、管理を提供します。管理プレーンでは管理トラフィックを扱います。制御プレーンは NSX Data Center における論理スイッチや論理ルーティングなどの制御を行います。データプレーンでは制御プレーンによって与えられたルーティング情報などをもとに実際にパケットのスイッチングなどデータのやりとりを行います。
実際に管理者が操作するのは管理プレーンのコンポーネント、ネットワークの実データが流れるのがデータプレーン、管理者からの操作を受けてデータプレーンを制御するコンポーネントは制御プレーンといったイメージになります。

図 3 NSX のプレーン

2. 各コンポーネントについて
NSX Manager は、NSX Data Center 導入における管理コンポーネントであり、NSX Data Center 導入時に最初に仮想アプライアンス(仮想マシン)として展開されるコンポーネントです。NSX Manager は vCenter Server に登録され、1 対 1 でマッピングされます。NSX Manager の初期構成を終えたのちは、NSX Data Center に関連する設定は対応する vCenter Server 上で行うことが可能になります。

NSX Controller は、NSX Data Center の仮想ネットワークを制御するコンポーネントで、論理ネットワークの制御を行っています。こちらも NSX Manager 同様、実体は仮想マシンで、NSX Manager を展開したのちに vSphere Client から作成します。仮想マシン、ホスト、論理スイッチ、分散論理ルータに関する情報を保持しており、重要な役割を持っているので、可用性を担保するために 3 台でクラスタを組む必要があります。

NSX Data Center には仮想アプライアンスによって提供される機能と vSphere のカーネル上で提供される機能がありますが、 vSphere のカーネル上で提供される機能はハイパーバイザー カーネル モジュールによって実現されます。ハイパーバイザー カーネル モジュールは、もともと vSphere のカーネルで提供されている仮想スイッチである分散仮想スイッチ(vDS: vSphere Distributed Switch)を拡張する形で提供される NSX Data Center のコンポーネントです。論理スイッチ、分散論理ルータ(DLR: Distributed Logical Router)、分散ファイアウォール(DFW: Distributed FireWall)などの機能を提供します。
NSX Data Center の論理スイッチは VXLAN(Virtual eXtensible LAN)というカプセル化の技術を使って実現されています。VXLAN を用いると、L3 ネットワーク上に仮想的な L2 ネットワークを構築することができるようになります。ピンと来ないかもしれませんが、後の回で別途説明がありますので、少々お待ちください。
分散論理ルータ コントロール仮想マシンはその名の通り、分散論理ルータの制御を行います。制御プレーンに属するコンポーネントで、分散論理ルータと他のルータとルーティングプロトコルセッションの確立を行います。

NSX Edge ゲートウェイは、North-South 方向のルーティング、境界ファイアウォール、NAT、DHCP、VPN、ロードバランシングなどのネットワークサービスを提供します。
分散論理ルータ コントロール仮想マシンと NSX Edge ゲートウェイもそれぞれ別々の仮想マシンとして作成されるコンポーネントです。分散論理ルータ自体は ESXi の「カーネル」で動作しますが、分散論理ルータを制御するのは分散論理ルータ コントロール「仮想マシン」であることに注意してください。この辺はよくこんがらがりますが、基本的に実データのやりとりは ESXi のカーネルで行われると思ってください。
NSX Data Center のコンポーネントの中でルーティングの機能を有するものは分散論理ルータと NSX Edge の 2 つがあります。なぜ同じ機能を複数のコンポーネントが持っているのか不思議に思われる方もいるかもしれませんが、分散論理ルータと NSX Edge ルータはルーティングを担当するトラフィックのタイプによって使い分けられます。

図 4 North-South/East-Westトラフィック

データセンターにおける通信は、データセンターの内外を行き来する North-South トラフィックと、データセンター内部の East-West トラフィックに分類されます。
分散論理ルータは East-West トラフィックのルーティングを、NSX Edge では North-South トラフィックのルーティングを主に行います。
3. サンプル構成図と今後の流れ
さて、NSX Data Center の主要なコンポーネントについての紹介を終えたところで、これらのコンポーネントがどのように展開されていくのかを、サンプル構成図を用いて次の回から順を追ってご紹介いたします。
このサンプル構成図は、論理ネットワーク構成図になっており、物理ネットワーク図ではないことに注意してください。ESXi ホストの絵が載っており、なんとなくその上に仮想マシンが配置されているように見えますが、気にしないでください。これは論理ネットワーク図なのでデバイスの物理的な配置には左右されません。この辺りの頭の切り替えが仮想ネットワークを理解する際のポイントになります。

図 5 サンプル構成図(NSX Data Center 導入前)
図 6 サンプル構成図(NSX Data Center 導入後)

図 5 が NSX Data Center 展開前、図 6 が NSX Data Center 展開後のサンプル構成図になります。
このサンプル構成(NSX Data Center 展開前)では、ESXi ホスト 4 台でクラスタを組んでおり、vCenter Server が 1 台の非常にシンプルな構成となっています。NSX Data Center 展開前の仮想マシンはどのネットワークにも接続していません。ネットワークは 4 つの VLAN に分かれており、それぞれ VTEP(後述)用、仮想マシンネットワーク用、管理ネットワーク用、vMotion 用となっています。今回はこのサンプル構成図を用いて NSX についてご紹介いたしますので vMotion 用の VLAN については特に関係ありませんが、通常 vSphere 環境を構築する際には管理ネットワーク、vMotion ネットワークなどでセグメントを分けるので、それにならった形の構成になっています。
それでは、NSX Data Center がどのように展開されていくのか見ていきましょう。
コラム ~ vSS と vDS ~
ハイパーバイザー カーネル モジュールのご紹介の際に、何気なく vDS の拡張ですと書いてしまいましたが、ここで簡単におさらいしておきたいと思います。
もともと、vSphere 上の仮想マシンが通信を行う際には、vSphere のカーネル内部に存在する仮想的なスイッチ、vSS(vSphere Standard Switch)を経由していました。vSS は各物理ホスト単位で設定を行う、ESXi に標準の機能になります。
各物理ホスト単位でスイッチの設定を行うとなると、ホスト数が多い場合、仮想スイッチの管理が手間になってきますし、設定ミスの可能性も上がってきますが、この問題を解決するものが、vDS(vSphere Distributed Switch)になります。
vDS では複数ホストの仮想スイッチを一元的に設定、管理することが出来るようになります。
VMware は、仮想ネットワークに取り組んできた長い歴史があり(スイッチの出荷ポート数で考えると、データセンタ―にある物理の ToR スイッチ以上のポート数を既に出荷済み!)、この vDS が仮想ネットワークの基礎となり、次世代のネットワーク仮想化プラットフォームとしての NSX に昇華されることになったのです!

vSS と vDS

vSS、vDS に関する詳しい説明は、「新卒 SE 社員が贈る vSphere のキソ」(https://blogs.vmware.com/vmware-japan/2014/08/vsphere_kiso01.html)をご覧ください。