Usar ip addr en lugar de ifconfig informes “ Respuestas RTNETLINK: El archivo existe ” en Debian

Tengo un sistema Debian que funciona como un enrutador inalámbrico con eth0 y wlan0. Ahora agregué una red adicional manualmente en eth1 con ifconfig:

 alix:~# ifconfig eth1 192.168.0.2 netmask 255.255.255.0 alix:~# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 alix:~# ping 192.168.0.254 PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data. 64 bytes from 192.168.0.254: icmp_req=1 ttl=64 time=0.537 ms 64 bytes from 192.168.0.254: icmp_req=2 ttl=64 time=0.199 ms 64 bytes from 192.168.0.254: icmp_req=3 ttl=64 time=0.188 ms ^C --- 192.168.0.254 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2005ms rtt min/avg/max/mdev = 0.188/0.308/0.537/0.161 ms 

Todo funciona bien como puede ver.

Ahora me gustaría que la configuración fuera permanente. Por lo tanto, agregué la siguiente sección a /etc/network/interfaces:

 alix:~# sed -n "/iface eth1/,/^$/p" /etc/network/interfaces iface eth1 inet static address 192.168.0.2 netmask 255.255.255.0 

Pero cuando intento iniciar la red, obtengo el siguiente error:

 alix:~# ifconfig eth1 down alix:~# ifup -v eth1 Configuring interface eth1=eth1 (inet) run-parts --verbose /etc/network/if-pre-up.d run-parts: executing /etc/network/if-pre-up.d/hostapd ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1 RTNETLINK answers: File exists Failed to bring up eth1. 

Cuando ejecuto el comando ip manualmente, obtengo el mismo error:

 alix:~# ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1 RTNETLINK answers: File exists 

¿Qué falla con el comando? ¿Y cómo puedo decirle a Debian que haga lo correcto?

Respuesta

Entendí que tenía que vaciar el dispositivo antes mencionándolo:

# ip addr flush dev eth1 

Borrar información de configuración de interfaz configurada manualmente como esta es mencionado en el Guía del servidor Ubuntu .

Comentarios

  • Sigo recibiendo un error (ligeramente diferente) RTNETLINK answers: No such process Failed to bring up eth1 PERO mi Eth1 está asignado correctamente ahora Y está ARRIBA / ARRIBA.
  • Sí, el mismo problema aquí: RTNETLINK answers: No such process Failed to bring up eth1
  • Incluso si sus respuestas resuelven el problema. Sería genial si pudiera decir lo que realmente hace. ¿Qué es este archivo RTNETLINK que existe?
  • @ceving: ¿puede explicarnos qué es RTNETLINK answers file? Además, después de vaciar, mi tarjeta de red no toma una nueva IP automáticamente, ¿cómo pedirle a dhcp una nueva IP?
  • Una advertencia es que esto borra todos los ámbitos, que no siempre es lo que desea. (Lo descubrí por las malas)

Responder

Usando ip addr flush funcionará, pero también borrará todas y cada una de las direcciones configuradas en esa interfaz, posiblemente incluida la que está usando, si ha iniciado sesión en una máquina remota. Esto puede bloquear su dispositivo.

RNETLINK answers: File exists ocurre cuando «estás intentando add una regla que entra en conflicto con una regla existente. Supongo que OP estaba encontrando esto porque ya habían configurado la dirección con ifconfig. Por lo general, este error se puede resolver convirtiendo el comando add en un change o replace comando.

Es mucho más seguro utilizar ip addr change o ip addr replace en su lugar.

Comentarios

  • Esta no es una opción para alguien que usa solo ifup y ifdown , porque el comando está cableado en esos scripts.
  • @alerone usando " sudo ip addr change " arrojame esta salida. " No hay suficiente información: " dev " se requiere el argumento. " Necesito / necesitamos más información para usar tu idea. Sería bueno.

Respuesta

Tuve un problema similar que para cuando jugué la escena de 10,000 monedas era exactamente esto, y estaba tratando dd las cosas que faltan en / e / n / id / etho

Pero al estudiar la página de manual para las interfaces, noté que TODO el conjunto de ejemplos tenía solo 2 líneas de datos reales, la dirección ipv4 / 24 y una línea de puerta de enlace que especifica la dirección de mi enrutador. Así que reduje mi archivo eth0 a eso, reinicié y funcioné perfectamente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *