8.8. 新しい一意の MAC アドレスの生成
ゲスト仮想マシン用に新しい、一意の MAC アドレスを生成する必要がある場合があります。書き込み時に新しい MAC アドレスを生成するためのコマンドラインツールはありません。以下のスクリプトは、ゲスト仮想マシンの新規の MAC アドレスを生成することができます。ゲスト仮想マシンの スクリプトを
macgen.py
として保存します。これで、そのディレクトリーから ./macgen.py を使用してスクリプトを実行でき、新しい MAC アドレスが生成されます。出力の例を以下に示します。
./macgen.py
$ ./macgen.py
00:16:3e:20:b0:11
macgen.py script to generate a MAC address for guest virtual machines
#!/usr/bin/python
# macgen.py script to generate a MAC address for guest virtual machines
#
import random
#
def randomMAC():
mac = [ 0x00, 0x16, 0x3e,
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]
return ':'.join(map(lambda x: "%02x" % x, mac))
#
print randomMAC()
8.8.1. ゲスト仮想マシン用に新しい MAC を生成する別の方法
python-virtinst の組み込み モジュールを使用して、ゲスト仮想マシン設定ファイルで使用するための新しい MAC アドレスと UUID を生成することもできます。
echo 'import virtinst.util ; print\ virtinst.util.uuidToString(virtinst.util.randomUUID())' | python echo 'import virtinst.util ; print virtinst.util.randomMAC()' | python
# echo 'import virtinst.util ; print\
virtinst.util.uuidToString(virtinst.util.randomUUID())' | python
# echo 'import virtinst.util ; print virtinst.util.randomMAC()' | python
上記のスクリプトは、以下のようにスクリプトファイルとして実装することもできます。
-*- mode: python; -*-
#!/usr/bin/env python
# -*- mode: python; -*-
print ""
print "New UUID:"
import virtinst.util ; print virtinst.util.uuidToString(virtinst.util.randomUUID())
print "New MAC:"
import virtinst.util ; print virtinst.util.randomMAC()
print ""