Preferencia de interfaz de red


8

¿Cómo determina Linux qué interfaz de red usar, cuando ambos están conectados a la misma red?

Tenga en cuenta que esta no es una pregunta sobre el enrutamiento. Estoy familiarizado con cómo funciona eso. Esto ocurre si, por ejemplo, tengo mi computadora portátil conectada a mi enrutador inalámbrico a través de mi tarjeta Ethernet y mi tarjeta inalámbrica, o si tengo dos tarjetas Ethernet conectadas ambas al mismo enrutador.

Puedo decir por experiencia que en mi caso, mi computadora portátil parece favorecer la tarjeta ethernet (eth0) en lugar de la inalámbrica (eth1: sé que ese no es un nombre típico para una interfaz inalámbrica, pero eso es lo que tengo), pero estaba preguntándose, ¿cómo decide eso? Si solo selecciona la interfaz con el número más bajo, ¿qué sucede si las dos opciones son, por ejemplo, eth0 y wlan0?

Editar: @Nils ha señalado que esto todavía es una cuestión de enrutamiento, y la tabla de enrutamiento proporciona la respuesta (ver su respuesta). Esto todavía deja mi pregunta original, pero en una forma diferente. ¿Qué determina el orden de las entradas en la tabla de enrutamiento en Linux? Por ejemplo, aquí está mi tabla de enrutamiento mientras estoy conectado a ambas interfaces:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.4.1     0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.4.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.4.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1

Está claro que eth0 es una prioridad más alta en la tabla que eth1 para los destinos en la red local, pero ¿eso se decide en Linux desde la latencia del enlace, el rendimiento del enlace, incluso el nombre de la interfaz, o qué? (La misma pregunta podría ser por qué eth0 es la interfaz para la ruta predeterminada).

Respuestas:


6

Bueno, esta es una pregunta de enrutamiento.

La respuesta es simple: la primera entrada que dará la mejor entrada de enrutamiento es "el ganador". Así que mira netstat -rnpara ver qué interfaz es la primera.

Actualización: la configuración de enrutamiento de inferface de red normalmente se configura durante el inicio del sistema. Entonces, el orden de inicio de los dispositivos de red será el orden en esa tabla. Con los dispositivos PCI, estos normalmente se procesan primero por el número de ranura más bajo. Los dispositivos externos (por ejemplo, USB) normalmente vienen más tarde.

Pero el orden exacto depende de la secuencia de comandos de inicio de red de su versión de Linux (esto es algo en lo que difieren mucho).

Por cierto: si desea hacer uso de sus dos enlaces, debe optar por la vinculación . Allí puede configurar el orden de uso de sus enlaces.


1
Eso tiene sentido. Cuando dije enrutamiento, lo que quise decir fue que no era simplemente una cuestión de elegir qué interfaz está conectada a la red de destino (directa o indirectamente), ya que ambas lo están. Debería haber sido más cuidadoso con mi terminología. Gracias por los consejos útiles (especialmente sobre la vinculación). Sin embargo, esto todavía deja mi pregunta original en una forma ligeramente diferente. ¿Cómo se determina el orden de las entradas de enrutamiento en Linux (edité la pregunta original)?
Dominick Pastore

@Dominick Actualicé mi respuesta en consecuencia. ¿Qué distribución y qué versión principal estás usando?
Nils

Ah No me di cuenta de que podía variar tanto entre distribuciones. Busqué información al respecto, pero todo lo que encontré fueron artículos sobre cómo configurar las entradas de enrutamiento, no cómo se determinan las originales. Estoy usando Xubuntu 12.04. Esto plantea otra pregunta (aunque pequeña; me siento muy iluminado por su respuesta :-)). Si estoy conectado vía inalámbrica (eth1) y luego me conecto vía Ethernet (eth0), la ruta predeterminada y las entradas principales en la tabla de enrutamiento vuelven a eth0. Esto parece ir en contra de su respuesta. ¿Estoy malentendido, o es una idiosincrasia de NetworkManager, o qué?
Dominick Pastore

@Dominick Ubuntu es muy especial. Hace algunas cosas mágicas en segundo plano al conectar / desconectar dispositivos de red. Supongo que reinicia toda la pila de red allí. (Normalmente uso SLES / RH y no soy demasiado profundo en Ubuntu)
Nils

-3

Para no ofenderlo, pero si está familiarizado con la parte de enrutamiento de su pila de comunicaciones TCP / IP en cualquier máquina Linux, también debe saber que, en el mejor de los casos, los resultados de conectar dos interfaces de red a la misma red son impredecibles. Si yo fuera usted, deshabilitaría la ifconfig eth0 downconexión inalámbrica en mi computadora portátil o ejecutaría un comando (suponiendo que eth0 es su conexión Ethernet por cable) para apagarla. Linux puede tener algo de inteligencia para hacer la misma selección para cada paquete, pero en caso de un problema de red en algún momento, puede dar algunos resultados inesperados. Mis 2 centavos


1
No es impredecible El primer golpe en la tabla de enrutamiento se usa según lo explicado por @Nils.
gertvdijk
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.