Как выполнить сброс /etc/networking/interfaces
при использовании «предсказуемых имен сетевых интерфейсов»?
Версии Ubuntu старше 15.10 используют имена сетевых адаптеров, такие как:
eth0
eth1
eth2
Замена сетевой карты или перемещение виртуальной машины на новый гипервизор приведет к тому, что Linux увеличит номер интерфейса. Удаление /etc/udev/rules.d/70-peristent-net.rules
приведет к повторному использованию Linux eth0
.
В Ubuntu 15.10 и новее используются « Предсказуемые имена сетевых интерфейсов ». Имя сетевого адаптера происходит от MAC-адреса.
ens3
ens32
ens192
При миграции vm сеть не запускается, поскольку /etc/network/interfaces
все еще ссылается на старый несуществующий сетевой адаптер.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens32
iface ens32 inet dhcp
pre-up sleep 2
Как лучше всего сбросить файл / etc / network / interfaces?
Мне нужно выполнить это действие перед выключением виртуальной машины и миграцией на новый гипервизор, поскольку я использую упаковщик для создания автоматических золотых изображений, основанных на золотых изображениях шеф-повара / бенто .
Я обнаружил, что удаление / etc / network / interfaces не работает, так как файл не восстанавливается автоматически при следующей загрузке после миграции.
Я попытался отредактировать мой файл grub, чтобы вернуться к соглашению об именах 'eth0'. Хотя / etc / network / interfaces ссылается на старое имя (eth0), виртуальный компьютер не получит ip, и любые перезагрузки заставят виртуальный сервер использовать новое соглашение об именах. Кроме того, я обнаружил, что systemd всегда будет иметь приоритет, если я не могу гарантировать biosdevname=0
постоянное сохранение в конфигурации grub . Не уверен, как навсегда применить это
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 bios.devname=0"
Если возможно, я бы предпочел не использовать облачную инициализацию или использовать какие-либо сценарии после запуска, так как я бы предпочел сохранять золотые изображения как можно более чистыми.
Конечно, это проблема, которую облачные провайдеры (Azure, AWS, RackSpace, Openstack) уже решили при импорте vms. Я не могу быть первым, кто попытается перенести виртуальную машину, используя предсказуемые имена сетевых интерфейсов.
Я пытался запустить эти команды перед выключением и миграцией виртуальной машины
apt-get remove biosdevname -y;
ln -s /dev/null /etc/systemd/network/99-default.link;
Я нахожу, когда я перенести VM, что /etc/network/interfaces
и ip address
до сих пор ссылаются наens32