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
・・・略