あなたのネットワークにVMware NSXは必要ですか? - (2)

(1)の続きです。

NSXにおいて、各Hypervisorに実装される論理ネットワーク機能(Kernelレベルでの機能)は分散仮想スイッチおよび分散仮想ルータの役割を担うものと思われます。マルチハイパーバイザー対応のために、NSXのオーバーレイスイッチ/ルータ機能はESXiにおいては標準のvSwitchとは分離されて実装されることになるかもしれません*1。一番シンプルに実装する方法としては、ESXに対して「Nicira NVPのためにKVMへの実装においてOpen vSwitchに施した拡張と同じもの」を既存の仮想スイッチとは別に、NSX vSwitchとして実装してしまうやり方でしょう。NSX vSwitchをVSSともVDSとも統合せずに別個の新しいネットワーク機能として実装することにより、vSphere的な管理を一切通さずにNSX Controllerから制御できることとなりますし、VSS/VDSにおけるこれまでの実装や拡張はNSXとは切り離しておくことで、「NSXを使わない構成における仮想スイッチ」であったり、「NSX管理範囲外の要素のための仮想スイッチ」であったりといった使用目的に使う場合には、これまでのやり方やノウハウ、ナレッジ、連携仕様・実装などをそのまま使うことができるからです*2

前述の通り、どうやらNSXでは(少なくとも初期リリース時点においては)標準機能として実装されるのはまずはL2とL3まで、となると思われます(TCPポート番号などに基づくACLなどのフィルタリング機能は含まれると思いますが)。L2の分散仮想スイッチは既存のESX vSwitchおよびOpen vSwitchなどですでにある意味で実現されているわけですがオーバーレイネットワーク関連の機能が追加され、さらにはL3の分散ルータ機能が論理ネットワークに対して提供されることになります。L3分散ルータとしてのデータプレーン実装は各エッジノード上のNSX vSwitchなりOpen vSwitchの拡張なりに落とし込まれるようですが、各テナント毎に既存物理ネットワークとのダイナミックルーティング*3によるルーティングテーブルをやりとりするためのコントロールプレーンとしての役割を持った仮想アプライアンス(NSX Edge)がNSX Controllerとは別に必要となります(NSX ControllerはNSX vSwitchとは管理接続で繋がっているとしても、各テナントのネットワーク自体に疎通できるとは限らないため)。

下図はVMwareウェブサイトのブログから拝借したものですが、NSXが提供するオーバーレイネットワークに接続したVM間でのL3通信がNSX vSwitchで折り返されていることが図示されています。

また、下図では別ホスト上のVM間でのNSXによるオーバーレイネットワークを通じたL3通信が、オーバーレイの下ではL2スイッチングとして処理されていることが図示されています。

また、L4以上の機能についてもNSX自身がオプションとして?用意するFirewallやVPN、Load Balancerなどの機能も提供されることとなりそうですが、それらについてはNSX APIに対応したサードパーティ製のネットワークにも対応する予定とされており、基本的には仮想アプライアンスを使った実装形態となるでしょう(VMware標準の機能に対する管理はNSX Edgeに統合される可能性もありますが)。NSX ControllerにPlug-inのようなカタチで管理機能が付加されるのか、もしくは別途各ベンダー独自の管理ポイントとの連携となるのかはまだ明確ではありませんが、実際のL4-7処理を行う機能を持った仮想アプライアンスが各エンドノードに分散配置される構成を取るのであれば、いくら中央制御するとはいえそれらの間でどのようにL4-7の機能が整合性を持って処理されるのかは興味深いところです(各種仮想アプライアンスに対して処理を渡すルール管理はできても、実際のL4-7処理そのものは各アプライアンス側での処理となるでしょう)。また、物理アプライアンスや、分散配置されない仮想アプライアンスにも対応するようですので、そうした場合は分散制御は不要となりますが、今度はそこへのトラフィックボトルネックとならないように注意する必要がでてきます。

下図も同じくVMwareブログからの拝借ですが(^_^;)、ここではFirewall処理についてもNSX vSwitchで処理している図となっています。しかし標準機能としてのプロトコルおよびポート番号ベースの標準Firewall機能を超える様々な実装やIDS/IPS、アンチウィルス処理など、ネットワークにおけるL4-7処理すべてをエッジ処理することはできないのではないかと思われ、どのように実装されることとなるのでしょうか。

そもそもオーバーレイである以上、オーバーレイに対応していない物理ネットワークとの接点や、物理サーバおよびオーバーレイに対応していない仮想環境との通信には、オーバーレイを解除するゲートウェイが必要となります。L2 Bridge機能のゲートウェイは複数あっても問題ないと思いますが、L3ゲートウェイは基本的には各ネットワークで1箇所となるでしょう(冗長構成にはできるでしょうけど)。また、NSXに対応する物理スイッチをL2ゲートウェイとすることで物理サーバとの接続性は確保できると思われますが、L3以上の機能を提供する物理アプライアンス・ネットワーク機器と基本的にすべてがオーバーレイであることを前提とするNSXを果たして有機的に組み合わせることができるのか、その辺りがどうなるのかはまだ私もよくわかりません。

そんなこんなで、NSXを使うことによって物理的なネットワークに依存しない論理ネットワークを構成することは確かにできるでしょうが、その上にL3-7までの様々な機能を盛り込んだネットワークを頑張って作り上げていったら、結局、物理ネットワークとはまた違った複雑性を持った新たな論理ネットワークがもう一つ出来上がっただけだった…とかなるとしたら…(^_^;)

そろそろお後がよろしいようで…。

はたして、(3)はあるのかないのか…。

*1:対して、すでに直接的に拡張を組み込んでいるOpen vSwitchを使用するKVMXenについてはそのままの実装となるでしょう

*2:NSX機能をvSphere Clientを通じて操作するハンズオンもありましたので、「vSphere的な管理」にあえて統合する形式が選択されることになるかもしれません。NSX Managerを通してのAPI実装なんでしょうけど…マルチハイパーバイザーでの管理性を統合したいのであればちょっとどうかとも思いますが、vSphereだけで使うのであればWeb Clientへの統合は必要と判断したのかとも思います。はてさて…。

*3:BGP, OSPF, IS-ISなどに対応する模様です。