このBlogは、製品出荷前バイナリ及びマニュアルをベースに記載しています。出来る限り正確な情報をお伝えするよう努めておりますが、実際に製品に搭載される機能や表示と異なる可能性があります。あらかじめご了承の上、ご利用下さい。
今回は VXLAN を構成するESXi ホストが、異なるネットワークに 所属する場合について記載する予定でしたが
この間に VMworld 2013 が開催され VMware NSX について新しい発表されましたので、先にこちらに紹介したいと思います。
VMware NSX は、VMware のネットワーク仮想化の機能を担う革新的な製品です。
特に重要なのは、VXLAN を実装するにあたり、物理ネットワークで、マルチキャストの実装が必須でなくなった点です。
特定の相手だけと通信することが可能なマルチキャストはメリットがありますが、それを利用する物理ネットワーク全体に実装するには少々敷居が高い部分もありました。VMware NSX では、これを利用する側で選べるようになっており、マルチキャストモード、ユニキャストモード、混在させるハイブリットモードという柔軟な設計が可能になります。
また、これまで、なぜマルチキャストが必要なのかを考えることで、VMware NSX のマルチキャストフリーの実装を理解しやすくなります。
今回は、下図のネットワーク構成を例にマルチキャストが必要な理由について見ていきます。
VLAN10とVLAN20で分割され、ESXi ホストは L3 越えで接続されています。4つの ESXi ホストで、VXLAN5001、5002という2つの セグメントを構成しています。また、1つの VXLAN 上に存在する仮想マシンは、複数のホスト上に点在しているのが見てとれます。
この VXLAN セグメント内で、仮想マシン同士が初めて通信する時、目的の仮想マシンがどの ESXi ホスト上に存在しているかをマルチキャストを使って確認をしていました。VXLAN セグメント1つにつき、1つのマルチキャストアドレスがアサインされておりますので、通信相手がどこのホスト上にいるかは、このマルチキャストアドレスに問い合わせ(注1)をしていました。
また今回のようなネットワーク構成では、ESXi ホスト間のセグメントが分割されておりますので、ルーティングを担うネットワークデバイスで、マルチキャストルーティングが必要でした。
(注1)各仮想マシンが所属している ESXi ホストの Virtual Tunnel End Point(以降 は VTEP) がマルチキャストアドレスに問い合わせを実施
言い換えると、vCNS 5.1での VXLAN 実装は、仮想マシンがどの ESXi 上に存在しているか把握しておらずマルチキャストに依存していたということになります。
この点を改善し、どの ESXi ホスト上にどんな仮想マシンが所属しているかを、NSXコントローラーで、一元管理する実装にしました。
NSXコントローラーは、各 ESXi ホストへこの情報を伝達することで通信相手の ESXi ホストが特定でき、マルチキャストに頼らない VXLAN 実装が可能となりました。
下図は、VMware NSX for vSphere のコンポーネントを表しています。
赤枠のNSXコントローラは仮想マシンとして提供され、他にもMACアドレス、ARP、VTEP の情報を保持、伝達する役割を担います。