¿Cómo se restablece /etc/networking/interfaces
al usar "nombres de interfaz de red predecibles"?
Las versiones de Ubuntu anteriores a 15.10 usan nombres de adaptadores de red como:
eth0
eth1
eth2
Reemplazar una tarjeta de red, o mover un vm a un nuevo hipervisor, causaría que Linux incremente el número de interfaz. La eliminación /etc/udev/rules.d/70-peristent-net.rules
haría que Linux se reutilizara eth0
.
Ubuntu 15.10 y versiones posteriores usan ' Nombres de interfaz de red predecibles '. El nombre del adaptador de red se deriva de la dirección mac.
ens3
ens32
ens192
Al migrar una máquina virtual, la red no se iniciará ya que /etc/network/interfaces
todavía hace referencia al antiguo adaptador de red inexistente.
# 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
¿Cuál es la mejor manera de restablecer el archivo / etc / network / interfaces?
Necesito hacer esta acción antes de cerrar el vm y migrar a un nuevo hipervisor ya que estoy usando el empaquetador para crear imágenes doradas automatizadas, basadas en las imágenes doradas chef / bento .
Descubrí que eliminar / etc / network / interfaces no funciona ya que el archivo no se regenera automáticamente en el siguiente arranque después de la migración.
Intenté editar mi archivo grub para volver a la convención de nomenclatura 'eth0'. Si bien / etc / network / interfaces hace referencia al nombre anterior (eth0), el vm no obtendrá una ip, y cualquier reinicio hará que el vm use la nueva convención de nomenclatura. También he encontrado que systemd siempre tendrá prioridad a menos que pueda garantizar biosdevname=0
permanentemente los restos en la configuración de grub . No estoy seguro de cómo aplicar esto permanentemente
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 bios.devname=0"
Si es posible, prefiero no usar cloud init ni usar ningún script posterior al inicio, ya que prefiero mantener las imágenes doradas lo más limpias posible.
Seguramente este es un problema que los proveedores de la nube (Azure, AWS, RackSpace, Openstack) ya han resuelto cuando importan vms. No puedo ser la primera persona en intentar migrar una máquina virtual utilizando nombres de interfaz de red predecibles.
He intentado ejecutar estos comandos antes de apagar y migrar el vm
apt-get remove biosdevname -y;
ln -s /dev/null /etc/systemd/network/99-default.link;
Encuentro cuando migro el vm, /etc/network/interfaces
y ip address
todavía me refiero aens32