Product SiteDocumentation Site

17.8. Создание уникального MAC-адреса

В некоторых случаях может потребоваться сгенерировать новый уникальный MAC-адрес для виртуальной машины. В настоящее время нет утилиты, которая может напрямую это сделать, поэтому ниже приведен специальный сценарий. Сохраните его в гостевой системе как macgen.py. Для генерации нового MAC-адреса из текущего каталога выполните команду ./macgen.py. Пример:
$ ./macgen.py 
00:16:3e:20:b0:11
	
#!/usr/bin/python
# macgen.py script to generate a MAC address for virtualized guests on Xen
#
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()

Другой способ генерации нового MAC-адреса
Для генерации MAC-адреса и UUID также можно использовать встроенные модули python-virtinst:
# echo  'import virtinst.util ; print\
 virtinst.util.uuidToString(virtinst.util.randomUUID())' | python
# echo  'import virtinst.util ; print virtinst.util.randomMAC()' | 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 ""