Error al iniciar Elevar interfaces de red después de actualizar a 16.04

28

Acabo de actualizar una máquina de servidor virtual 14.04 a 16.04. Después de reiniciar la VM, veo el siguiente error:

[FAILED] Failed to start Raise network interfaces.
 See 'systemctl status networking.service' for details

Después de iniciar sesión, puedo ejecutar el comando mencionado y obtener el siguiente resultado (imagen ya que no puedo conectarme):

ingrese la descripción de la imagen aquí

La configuración se /etc/network/interfacesve bien, con el eth0 configurado manualmente (no se usa dhcp aquí)

Lo que me hace pensar es que las ifconfig -alistas

  • ens160
  • lo

Donde esperaría

  • eth0
  • lo

Intentando subir el dispositivo eth0 a través de

sudo ifup -v eth0 

salidas:

...
Cannot find device "eth0"
Failed to bring up eth0.

El dispositivo de red con cable virtual en sí mismo todavía está configurado en la VM como lo era antes.

ip linktambién se muestra loy ens160: ¿dónde ens160está configurada la dirección mac en vmware para el único dispositivo de red virtual configurado?

ACTUALIZAR

Puedo resolver el problema si cambio todas las referencias de eth0 /etc/network/interfacesa ens160.

PERO , esto me parece mal por varias razones:

  1. Me gustaria entender este problema
  2. Me gustaría apegarme a eth0 en lugar de ens160

Entonces, alguien puede explicar este cambio, que no sucedió en varias otras máquinas 14.04 en el mismo servidor que también actualicé a 16.04.

dufte
fuente
1
Puede
dufte
Una descripción similar de la solución está aquí: askubuntu.com/a/830163/543586
theINtoy

Respuestas:

15

Razón

El problema fue causado por Predictable-Network-Interface-Names de systemd / udev.

Solución posible

Según esta fuente , puedes:

  • Deshabilita la asignación de nombres fijos, de modo que los nombres de kernel impredecibles se usen nuevamente. Para esto, simplemente enmascare el archivo de reglas de udev para la política predeterminada: ln -s / dev / null /etc/udev/rules.d/80-net-setup-link.rules
  • Puede crear su propio esquema de nombres manual, por ejemplo, nombrando sus interfaces "internet0", "dmz0" o "lan0". Para eso, cree sus propios archivos .link en / etc / systemd / network /, que elija un nombre explícito o un mejor esquema de nombres para una, algunas o todas sus interfaces. Vea systemd.link (5) para más información.
  • Pasas net.ifnames = 0 en la línea de comando del kernel

Soluciones aplicadas

Hice crear un nuevo archivo 10-rename-network.rulesen /etc/udev/rules.d/y añadió el siguiente contenido a la misma:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"

dónde

  • eth0 = nombre de interfaz de red deseado, utilizado en /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff = dirección mac de hardware del dispositivo de red

Recomiendo reiniciar después de completar esto para asegurarse de que el cambio sea permanente.

dufte
fuente
Descubrí que tenía que correr update-initramfs -upara que mis cambios tuvieran efecto
Aneel
En mi sistema Debian el archivo es '/etc/udev/rules.d/70-persistent-net.rules'
jeremiah
6

Resuelto cambiando el archivo /etc/network/interfaces.d/setup de:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

a:

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
τασος ματσιγκας
fuente
1

En mi caso, este problema estaba relacionado con tratar de abrir mi puente br0. Me había olvidado de hacer esto:

sudo apt-get install bridge-utils

antes y entonces mi adaptador no pudo comenzar.

gigo
fuente
2
Esto es diferente del problema de OP. ¡No estoy seguro de que esta respuesta pertenezca a esta pregunta!
Zanna
0

Es posible que desee eliminar / modificar el caché de udev para nombres de interfaz de red persistentes / consistentes, ubicados aquí: /etc/udev/rules.d/70-persistent-net.rules

Angel Genchev
fuente