El uso de ip addr en lugar de ifconfig informa "RTNETLINK responde: el archivo existe" en Debian

53

Tengo un sistema Debian que funciona como un enrutador inalámbrico con eth0y wlan0. Ahora agregué una red adicional manualmente eth1con ifconfig:

alix: ~ # ifconfig eth1 192.168.0.2 máscara de red 255.255.255.0
alix: ~ # netstat -rn
Tabla de enrutamiento IP del kernel
Puerta de enlace de destino Banderas Genmask Ventana MSS 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 de datos.
64 bytes de 192.168.0.254: icmp_req = 1 ttl = 64 tiempo = 0.537 ms
64 bytes de 192.168.0.254: icmp_req = 2 ttl = 64 tiempo = 0.199 ms
64 bytes de 192.168.0.254: icmp_req = 3 ttl = 64 tiempo = 0.188 ms
^ C
--- 192.168.0.254 estadísticas de ping ---
3 paquetes transmitidos, 3 recibidos, 0% de pérdida de paquetes, tiempo 2005ms
rtt min / avg / max / mdev = 0.188 / 0.308 / 0.537 / 0.161 ms

Todo funciona bien como puedes ver.

Ahora me gustaría hacer que la configuración sea 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
  dirección 192.168.0.2
  máscara de red 255.255.255.0

Pero cuando trato de iniciar la red me sale el siguiente error:

alix: ~ # ifconfig eth1 abajo
alix: ~ # ifup -v eth1
Configuración de la interfaz eth1 = eth1 (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts: ejecutando /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 etiqueta eth1
RTNETLINK responde: el archivo existe
No se pudo mostrar eth1.

Cuando ejecuto el ipcomando manualmente obtengo el mismo error:

alix: ~ # ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 etiqueta eth1
RTNETLINK responde: el archivo existe

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

ceving
fuente

Respuestas:

83

Lo siento pero lo tengo yo mismo. Tuve que vaciar el dispositivo antes de abrirlo:

alix: ~ # ip addr flush dev eth1

La eliminación de la información de configuración de la interfaz establecida manualmente se menciona en la Guía del servidor de Ubuntu .

ceving
fuente
Todavía recibo un error (ligeramente diferente) RTNETLINK answers: No such process Failed to bring up eth1PERO mi Eth1 está correctamente asignado ahora Y está ARRIBA / ARRIBA.
Harperville
sí, el mismo problema aquí: RTNETLINK answers: No such process Failed to bring up eth1
Drew
77
Incluso si tus respuestas resuelven el problema. Sería genial si pudieras decir lo que realmente hace. ¿Qué es este archivo RTNETLINK que existe?
humanityANDpeace
@ceving: por favor, ¿puedes explicar qué es RTNETLINK answers file? Además, después de enjuagar, mi tarjeta de red no toma una nueva ip automáticamente, ¿cómo pedirle a dhcp una nueva ip?
realtebo
@realtebo @humanityANDpeace Inspeccione el manual del kernel sobre netlink y rtnetlink . Pero dudo que realmente quieras saber. Este es un mensaje de error que la ipherramienta obtiene del núcleo. Y en lugar de traducir el mensaje en algo útil para los usuarios finales, lo ippasa de largo. Pero si realmente desea conocer las partes internas, use Ask Questionel Add Commentbotón en lugar del botón.
ceving
-1

Tuve un problema similar que para cuando jugué la escena de 10.000 dineros era exactamente esto, y había estado tratando de agregar las cosas que faltaban a / e / n / id / etho

Pero al estudiar la página de manual para 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 eliminé mi archivo eth0 y reinicié, y funcionó perfectamente.

Gene
fuente