Nutanixでは、2021年6月のAOS 6.0ファミリーリリースでAHVへSwitch Port Analyzer(SPAN)が新機能として追加されました。この機能では、AHVの物理NICを流れるインバウンド・アウトバウンドまたは双方向のトラフィックを任意の仮想マシンのvNICへミラーリングできます。
Nutanixでは標準構成として仮想スイッチのアップリンクを10G-NIC×2でVLANトランクポートとして設定しますので、SPANで指定する送信元ポートは基本的にアップリンクのチーミングされたボンドポートとなりそうです。(アップリンクのチーミングメンバーに参加している物理NICのうちの片方のみのNICを送信元ポートとして指定することは不可)
今回は、SPANを設定したいAHV上の任意のVMへ、AHVのアップリンクボンドポートのトラフィックをミラーリングしてみたいと思います。
今回の環境
AOS: 6.0 STS
Hypervisor: AHV 20201105.2076
SPAN宛先VM: Windows Server 2016(vm名: span-distination-vm)
送信先のVMをagent VMにする
agent VMとは、VMの電源ONの間は他のホストへマイグレーションしない仮想マシンの事です。AHV上の仮想マシンをagent VMにするには、任意のCVMへSSHログインして以下コマンドを実行します。
コマンド実行し正常に完了すると、「complete」と表示されます。
SPANの宛先となるVMへvNICを追加
宛先となるVMへ、ポートミラーリング先となるvNICを追加します。任意のCVMへSSHログインし、以下コマンドを実行します。
[nutanix@cvm]$ acli vm.nic_create <仮想マシン名> type=kSpanDestinationNic
コマンドを実行すると「complete」と表示され、vNICが追加されます。
SPANセッションの作成
追加したvNICのMACアドレスやホストUUIDなどの情報を取得後、以下コマンドを実行してSPANセッションを作成します。
nutanix@cvm $ acli net.create_span_session <spanのセッション名> source_list=\{uuid=<ホストuuid>,type=kHostNic,identifier=<ソースポート名>,direction=<トラフィックタイプ>} dest_list=\{uuid=<宛先仮想マシンのuuid>,type=kVmNic,identifier=<宛先仮想マシンへ追加したvNICのmacアドレス>}
かなり長いコマンドになりますが、ポイントだけ解説します。
- ソースポート名:AHVのボンドポートか物理NICのインターフェースを指定します。(例:「br0-up」、「eth0」など)
- トラフィックタイプ:インバウンドのみ→「kIngress」アウトバウンドのみ→「kEgress」、双方向→「kBiDir」
各種情報を入力してコマンドを実行すると、「complete」と表示されてSPANセッションが作成されました。(見づらくてごめんなさい。)
ここまでできたら、SPAN宛先VMでWiresharkなどを用いて送信元ポートのパケットがキャプチャできるようになります。
SPANセッションの削除
作成したSPANセッションを削除したい場合は、任意のCVMへSSH接続し、以下コマンドを実行します。
[nutanix@cvm]$ acli net.delete_span_session <SPANセッション名>
コマンド実行すると、「complete」と表示され、SPANセッションが削除されます。
今回は、AHVでSPANセッションを作成してみました。細かいところまで確認できてないですが、今日はこの辺で。