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.
- Luego revisamos el archivo de config de la red, en este caso /etc/sysconfig/network-scripts/ifcfg-eth0, y configuramos correctamente la red.
- 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.