La conexión por cable tiene prioridad sobre la inalámbrica

La conexión por cable tiene prioridad sobre la inalámbrica

He conectado dos máquinas Linux. Una máquina tiene una conexión inalámbrica a mi enrutador mientras que la otra no. La máquina sin acceso inalámbrico (PC1) está configurada de manera que tenga una IP estática única y la otra máquina (PC2) está configurada como su puerta de enlace predeterminada. La PC2 está configurada de manera que también tenga una IP única y utilice el enrutador como puerta de enlace predeterminada. Cuando habilito la conexión por cable, la PC1 puede comunicarse con las interfaces eth0 y wlan0 de la PC2, y la PC2 puede comunicarse con la PC1. Desafortunadamente, cuando la conexión por cable está habilitada, la PC2 no puede comunicarse con el enrutador y, por lo tanto, tampoco la PC1. Básicamente, las conexiones por cable e inalámbricas de PC2 no pueden funcionar al mismo tiempo.

PC2 (NOTA: route-nes el mismo independientemente de que el cableado esté habilitado o no)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.138      0.0.0.0         UG    0      0        0 wlan0
10.0.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     9      0        0 wlan0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

docker0   Link encap:Ethernet  HWaddr 56:84:7a:fe:97:99  
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 60:a4:4c:62:ee:86  
          inet addr:10.0.0.140  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::62a4:4cff:fe62:ee86/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:155 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7744 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12554 (12.5 KB)  TX bytes:1509568 (1.5 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2179347 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2179347 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:217854881 (217.8 MB)  TX bytes:217854881 (217.8 MB)

wlan0     Link encap:Ethernet  HWaddr c0:4a:00:66:58:98  
          inet addr:10.0.0.103  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::c24a:ff:fe66:5898/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1605422 errors:0 dropped:0 overruns:0 frame:0
          TX packets:669649 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1405768536 (1.4 GB)  TX bytes:83997471 (83.9 MB)

PC1 (NOTA: no puedo recuperar el ifconfig de la PC1)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.139      0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0

Respuesta1

La configuración actual de la tabla de enrutamiento de PC2 es su problema. Lo reproduje aquí eliminando las columnas sin importancia y convirtiéndolas de máscara de red a notación CIDR:

Destination     Gateway         Metric Iface
0.0.0.0/0       10.0.0.138      0      wlan0
10.0.0.0/24     0.0.0.0         1      eth0
10.0.0.0/24     0.0.0.0         9      wlan0

La primera fila significa en inglés sencillo "El tráfico a todos los demás sitios se envía a través de la puerta de enlace 10.0.0.138".

La segunda y tercera fila proporcionan el mismo destino, por lo que gana la métrica más baja. Es posible que la fila 3 ni siquiera esté allí. Significado en inglés sencillo "Para llegar a la puerta de enlace 10.0.0.138 y a todos los demás pares 10.0.0.*, envíe a través de eth0"

En conjunto, esto da como resultado que el tráfico destinado a Internet pase por eth0, de ahí la falta de conectividad.

El problema surge porque se utiliza la misma subred en dos dominios puente diferentes en la misma red, lo cual no está permitido. ¡Para!

Cambie la máscara de red de la interfaz eth0 de la PC2 a 255.255.252.0 y asígnele una dirección IP más alejada de la del enrutador, lo que cambiará la tabla de enrutamiento a (por ejemplo, dando a la PC2 eth0 10.0.0.21 y a la PC1 eth0 10.0.0.22)

Destination     Gateway         Metric Iface
0.0.0.0/0       10.0.0.138      0      wlan0
10.0.0.20/30    0.0.0.0         1      eth0
10.0.0.0/24     0.0.0.0         9      wlan0

Ahora el tráfico hacia la puerta de enlace 10.0.0.138 no coincidirá en absoluto con la segunda fila y utilizará la tercera fila correctamente.

Aún mejor sería utilizar un rango que no se superponga para la conexión por cable, por ejemplo 10.0.1.x

Para que el acceso a Internet funcione también para la PC1, su enrutador deberá enviar el tráfico destinado a la PC1 a través de la PC2. Hay dos formas de configurar esto: cambiar la tabla de enrutamiento del enrutador o configurar la PC2 para realizar proxy-ARP.

Respuesta2

Hay algunas cosas que creo que podrían estar causándote problemas:

  1. Usted afirma que la PC1 está usando la PC2 como su puerta de enlace predeterminada; sin embargo, la tabla de enrutamiento de la PC1 de hecho se muestra 10.0.0.139como la puerta de enlace predeterminada, en lugar de la interfaz eth0 de la PC2.10.0.0.140
  2. Si la PC2 es responsable de enrutar el tráfico desde la PC1, ¿ha activado el reenvío de IP en la PC2? No creo que esto esté habilitado de forma predeterminada en Linux. Comprobar con cat /proc/sys/net/ipv4/ip_forward. Si es 0, la PC2 descartará todo el tráfico enrutable que le envíe la PC1.Guía si necesitas encenderlo.
  3. Si el reenvío de IP está realmente habilitado en la PC2, ¿se ha configurado iptables para aceptar el tráfico que llega a su cadena de reenvío? iptables -nvLpara comprobar las reglas de la cadena Forward.

información relacionada