hidemium's blog

日々学んだことをアウトプットする。

Nested ESXiをvMotionした場合の動作について

前回の記事で、vDSを利用したMACラーニングについて書いてみましたが、今回はNested ESXiのvMotionを行った際の挙動について書いてみようと思います。

構成

  • vCenter 7.0 U2
  • ESXi 7.0 Update 2
  • ESXi 7.0 Update 3 Virtual Appliance
  • MACラーニング有効なvDSを用意

vMotion時の動作について

vMotionが行われると、別のホストへVMが移動しますが、その際に通信が切断されないように、vMotion後に移動先ホストがRARPプロトコルを利用し、接続している物理スイッチに対して、vNICのアドレスに関するMACアドレステーブルの更新を行います。

Nested ESXiをvMotionした場合の動作について

Nested ESXiのVMをvMotionした場合、Nested ESXi自身はVMと同様となりますが、Nested ESXi上に稼働しているVMがどのように扱われるかあまり情報がないため、パケットキャプチャを行い確認してみました。

vMotion後の移動先ホストにログインし、pktcap-uwを使い、パケットキャプチャを行います。pktcap-uwのオプションで、--ethtype 0xEthertype のようにEthertypeを指定できるため、RARPのEthertypeの8035を指定します。

pktcap-uw --uplink vmnic0 --ethtype 0x8035 -o /vmfs/volumes/datastore1/test.pcap

EtherType一覧

パケット フィルタ用 pktcap-uw オプション

vMotionを実行し、パケットキャプチャを取得し、pcapファイルをデータストアのファイルブラウザからダウンロードします。 Wiresharkを起動し、pcapファイルを開きます。

Nested ESXiのMACアドレスのみを抽出すると以下のようになります。vMotionのタスクが14:45:31に開始し、14:46:14に終了していました。vMotion処理中にRARPのパケットが送出され、最初は2秒後、次は4秒後、次は6秒後、次は10秒後、次は16秒後といった具合に間隔を長くし、RARPを送出していることが分かります。間隔はフィボナッチ数列になってそうです。

No.  Time    Source  Destination Protocol    Length  Info
14  2022-XX-XX 14:46:08.519875  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed
17  2022-XX-XX 14:46:10.520016  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed
18  2022-XX-XX 14:46:10.520016  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed
21  2022-XX-XX 14:46:14.520214  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed
22  2022-XX-XX 14:46:14.520215  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed
25  2022-XX-XX 14:46:20.520509  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed
26  2022-XX-XX 14:46:20.520509  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed
29  2022-XX-XX 14:46:30.521139  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed
30  2022-XX-XX 14:46:30.521139  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed
34  2022-XX-XX 14:46:46.522160  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed
35  2022-XX-XX 14:46:46.522161  VMware_60:e5:ed Broadcast   RARP    60  Who is 00:50:56:60:e5:ed? Tell 00:50:56:60:e5:ed

Nested ESXi上に稼働しているVMについては、vMotionのタスク後に1度だけRARPが送出されていることが分かります。

No.  Time    Source  Destination Protocol    Length  Info
33  2022-XX-XX 14:46:46.522159  VMware_c6:07:20 Broadcast   RARP    60  Who is 00:0c:29:c6:07:20? Tell 00:0c:29:c6:07:20

MACラーニングが無効なvDSにて、Nested ESXiのVMのvMotionを行った場合も確認しましたが、Nested ESXiのRARPは送出されていましたが、Nested ESXi上に稼働しているVMについては、RARPが送出は確認できませんでした。

物理スイッチ側の動作について確認

vMotion後に物理スイッチ側でNested ESXiのVMとNested ESXi内部にゲストOSのMACアドレスについて、MACアドレステーブルの確認します。
フレームがNested ESXiと同じポートから送出されていることが分かります。

#show mac address-table
  50    0050.5660.e5ed    DYNAMIC     Gi0/6  #Eested ESXiのvmk0
  50    000c.29c6.0720    DYNAMIC     Gi0/6     #ゲストOSのeth0

参考

仮想スイッチ”スイッチへの通知”について(1) | Lab8010