RabbitMQ メッセージ バスは、NSX Manager でホストされる vsfwd(RMQ クライアント)と RMQ サーバ プロセス間の通信に利用されます。メッセージ バスは NSX Manager により使用され、カーネルの分散ファイアウォールに組み込む必要があるポリシー ルールなど、さまざまな情報を ESXi ホストに送信します。

NSX 分散ファイアウォールは、ハイパーバイザー カーネルが組み込まれたファイアウォールで、仮想ワークロードや仮想ネットワークを表示および管理できます。データセンター、クラスタ、仮想マシン名、タグ、ネットワーク構造(IP/VLAN/VXLAN アドレスなど)のような VMware vCenter オブジェクトや Active Directory のユーザー グループ ID に基づいて、アクセス制御ポリシーを作成できます。物理ホスト間で仮想マシンの vMotion が実行されたときに、ファイアウォール ルールを書き換えることなく、整合性のあるアクセス制御ポリシーが適用されるようになりました。分散ファイアウォールにはハイパーバイザーが組み込まれているため、ライン レートに近いスループットが実現し、物理サーバにおけるワークロード統合を強化できます。このファイアウォールの特性である分散性により、ホストをデータセンターに追加すると自動的にファイアウォールのキャパシティが拡張されるスケール アウト アーキテクチャが実現します。

NSX Manager Web アプリケーションと ESXi ホスト上の NSX コンポーネントは、NSX Manager Web アプリケーションと同じ仮想マシンで実行される RabbitMQ ブローカ プロセスを通じて相互に通信します。通信プロトコルとして AMQP (Advanced Message Queueing Protocol) を使用し、チャネルは SSL を使用して保護します。ESXi ホストで、VSFWD (vShield Firewall Daemon) プロセスは、ブローカへの SSL 接続を確立および維持し、他のコンポーネントの代わりにメッセージを送受信します。この通信には IPC を使用します。

図 1. ESXi ホストのユーザーおよびカーネル空間の図