Problemas con la interfaz de red

Configurar la interfaz de red para que la reconozca como “em1”

Eth0Cada dos o tres días al principio, cada pocas horas al final, MartinServer estuvo sufriendo una serie de caídas que me impedían acceder al servidor. No tenia acceso a mis páginas web, pero es que tampoco podía acceder remotamente a una terminal vía SSH. El servidor estaba muerto  (o, más exactamente, desconectado). Para salir del paso, apagaba y volvía a encender el equipo, bien directamente o en remoto a través del HP iLO. Pero aquí había un problema que solucionar 🙂 .

Revisando el log del sistema en /var/log/syslog, me encontré con que el error era el siguiente:

Error getting hardware address for “eth0”: No such device

“Eth0” es el nombre que habitualmente se le da en los sistemas Linux a la tarjeta de red, es decir, al adaptador donde se conecta el cable ethernet que nos permite conectarnos a nuestra red LAN y a internet. Lo que estaba pasando, sencillamente, es que mi servidor no encontraba este adaptador de red.
Para averiguar qué estaba pasando, abro el terminal y tecleo:
ifconfig -a

Y me devuelve algo así:
em1       Link encap:Ethernet  direcciónHW b3:5f:dc:87:da:c0
Direc. inet:192.168.1.100  Difus.:191.161.1.255  Másc:255.255.255.0
Dirección inet6: fd80::b25c:dbcc:fd87:dac0/64 Alcance:Enlace
ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
Paquetes RX:14145493 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:17842179 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:1000
Bytes RX:6871585837 (6.8 GB)  TX bytes:17386533946 (17.3 GB)
Interrupción:16
em2       Link encap:Ethernet  direcciónHW b3:5f:dc:87:da:c1
ACTIVO DIFUSIÓN MULTICAST  MTU:1500  Métrica:1
Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:1000
Bytes RX:0 (0.0 B)  TX bytes:0 (0.0 B)
Interrupción:17

No me extraña que mi servidor no encontrase el adaptador de red. En mi equipo (es algo que pasó tras la actualización a Ubuntu Server 16.04) se está nombrando el adaptador de red como “em1” en vez de como “eth0”. Busqué la posible razón, y por lo visto es para conseguir mayor consistencia en la nomenclatura de las tarjetas de red. No profundicé mucho en la razón, simplemente procedí a solucionar el problema 🙂 .
La mayor parte de los afectados lo que hicieron fue forzar, modificando el Grub, que la tarjeta de red volviese a llamarse “eth0”. En mi caso fui más cómodo (espero que no me dé más problemas en adelante), y lo único que hice fue renombrar el interfaz de red:
sudo nano /etc/network/interfaces

Y aquí dejé el fichero de configuración de red tal que así:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto em1
iface em1 inet dhcp

Listo. A partir de ahora, mi sistema “sabe” que la interfaz del red se llama “em1”. No he vuelto a tener esos problemas de conexión.