В нашем облаке мы генерируем MAC с префиксом 2c:c2:60
для экземпляров. Когда мы повторно используем экземпляр или дублируем его, новая копия получает другой MAC-адрес. Когда новая копия загружается, NIC получает имя eth1 из-за нового MAC.
Я вижу, что в /lib/udev/rules.d/75-persistent-net-generator.rules
существуют правила для известных префиксов, таких как 52:54:00 (KVM)
и VMWare (00:0c:29)
. Но этот файл не должен редактироваться , как указано в его первой строке. Мы хотели бы использовать собственный зарегистрированный префикс MAC, а не чужие.
Как полностью отключить генерацию сетевых правил?
На основании ответа JasminJ я прочитал руководство. Ну, я прочитал очень маленькую часть этого. Пятое предложение в разделе «Файлы правил» гласит:
Это можно использовать для замены файла правил, предоставленного системой, локальным файлом, если это необходимо; символическая ссылка в
blockquote>/etc
с тем же именем, что и файл правил в/lib
, указывающая на/dev/null
, полностью отключает файл правил.Я только что проверил это на виртуальной машине, и она действительно работает, как описано. Я предпочитаю это обычным / хакерским методам отключения этой функции.
Вот команда
ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
cd /etc/udev/rules.d
rm -f 70-persistent-net.rules
rm -f 75-persistent-net-generator.rules
echo "# " > 75-persistent-net-generator.rules
См. https://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html
глава «Файлы правил» [ 113]
Вы можете переопределить /lib/udev/rules.d/*
, скопировав их в /etc/udev/rules.d
и затем изменив их.
Или же вы можете создать новый файл с лексически более высоким именем e. г. /etc/udev/rules.d/99-stop-persistent-net.rules
со следующей записью «ничего не делать»:
SUBSYSTEM=="net", DRIVERS=="?*", NAME="%k"
Это должно предотвратить создание новых правил, поскольку udev считает, что интерфейс уже указан в списке. Это также переживет обновления udev и т. Д.
Извините, нет времени, чтобы проверить это ...