RTNETLINK answers: File exists

Vamos a ver cómo solucionar el error “RTNETLINK answers: File exists“. Se trata de un problema de configuración de las interfaces de red en Linux (en este caso en CentOS 7).

 

El error “RTNETLINK answers: File exists

 
Todo comienza cuando estamos configurando la red de una máquina, probablemente después de haber trasteado un poco con ella, y al reiniciar el servicio de red …  Error!  [FAILED]

 

Recibimos el error:



Job for network.service failed because the control process exited with error code. See “systemctl status network.service” and “journalctl -xe” for details.

 

 

Y al revisar el status del servicio de red comprobamos que aparece el error mencionado “RTNETLINK answers: File exists“:



systemctl status network.service

 

También examinaremos el resultado de journalctl -xe, que seguro que nos ofrece más info de utilidad.
 


 

CAUSA DEL ERROR RTNETLINK answers: File exists

 
El problema que genera este error, es que el servicio NetworkManager y el servicio network están activos, con lo que se crean conflictos al configurar las interfaces de red.
 

El servicio NetworkManager crea un servicio dhclient, con una o varias instancias, que se encarga de conseguir dirección IP por medio de DHCP.

 

 

Solución al error RTNETLINK answers: File exists

 

  • Paramos/matamos el servicio dhclient creado por NetworkManager.

 

 
 

 

 

  • Reiniciamos el servicio de red y probablemente recibiremos más errores. En este caso: “Device has different MAC address than expected, ignoring.

 

Está claro que tenemos algún problema con la MAC registrada en el archivo de configuración de la interfaz eth0 en este caso; parece que la MAC real de la interfaz es distinta a la MAC registrada en el archivo de configuración /etc/sysconfig/network-scripts/ifcfg-eth0.
 

Ejecutamos el comando:

ifconfig

o

ip address

para comprobar la configuración de las interfaces de red y ver la MAC real de la interfaz.


 


 

  • Revisamos y comprobamos la MAC, si no es la adecuada, la corregimos; lo hacemos en el archivo de configuración mencionado : /etc/sysconfig/network-scripts/ifcfg-eth0

 

 

  • paramos el servicio NetWorkManager :
systemctl stop NetworkManager

 

systemctl disable NetworkManager

 

  • Además, en nuestros archivos ifcfg-eth0 y ifcfg-lo, para evitar conflictos con NetworkManager y los archivos de configuración de nuestras interfaces de red, añadimos:
NM_CONTROLLED=no
ONBOOT=yes

 

  • Reiniciamos la red:
service network restart

o

systemctl restart network

 



Y ya hemos solucionado el error “RTNETLINK answers: File exists” y tenemos la red configurada correctamente, utilizando el servicio network.service, y con NetworkManager deshabilitado.