VMware ESXi上の仮想マシンのNICのMACアドレスを固定
ESXiの仮想マシンでMACアドレスを固定したい場合の方法を紹介します。
インストールするソフトウェアによっては、ライセンスの管理上、MACアドレスをチェックするものもあるようなので、
MACアドレスが変わってしまうと利用ができなくなるためMACアドレスを自由に設定できると便利だと思います。
VMware ESXi設定
最初から手動で固定値を設定することが可能です。
仮想マシンの「設定の編集」でネットワークアダプタのMACアドレスの部分を「手動」に設定することで、
自由な値を設定できます。
ここで設定可能なのは、ベンダーコードが決まっていて、[00:50:56:xx:xx:xx]という形のMACアドレスのみです。
仮想マシン作成時からこのMACアドレスでNICを生成していた場合は問題なく固定されます。
以下、MACアドレスを「自動」でNIC作成していた場合の対応方法をまとめます。
「自動」に設定した場合、「00:0C:29:xx:xx:xx」という形のMACアドレスが付与されます。
仮想マシンのコピーや移動を行うと下位24ビットの部分が自動的に変更されてしまいます。
そこで、仮想マシンの設定ファイル(.vmxファイル)の中身を書き換えてしまうことで同じMACアドレスで起動させることが可能です。
変更箇所は以下。
・・・略 uuid.location = "56 4d 77 c5 51 f8 7d 3f-cb 82 6e 82 50 aa bb cc" uuid.bios = "56 4d 77 c5 51 f8 7d 3f-cb 82 6e 82 50 aa bb cc" ・・・略 ethernet0.generatedAddress = "00:0c:29:aa:bb:cc" ・・・略
uuid.location、uuid.bios、ethernet0.generatedAddressの設定値を確認し、
下位24ビットが元のMACアドレスの下位24ビットと同一になるように書き換えます。
(上記例だと「aa bb cc」部分)
最初、ethernet0.generatedAddressの部分だけを変えていたのですが、
これだと、仮想マシンをインベントリから削除して追加し直した場合にuuid.locationやuuid.biosの値を見て書き換えられるようです。
これにより、自由なMACアドレスを指定して起動することが可能です。
OS側設定
あとは、OSのNICの指定でMACアドレスを固定して利用する設定にしておけば問題ありません。
CentOSの場合、
/etc/sysconfig/network-scripts/ifcfg-eth0
・・・略 HWADDR=00:0C:29:AA:BB:CC ・・・略
/etc/sysconfig/hwconf
・・・略 class: NETWORK bus: PCI detached: 0 device: eth0 driver: e1000 desc: "Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)" network.hwaddr: 00:0c:29:aa:bb:cc ・・・略