Obliga a Raspberry a obtener internet de una red específica

13

Configuré mi RPi para conectarme a un dongle 3G en el arranque configurando ppp y wvdial en

/etc/network/interfaces

El Pi arranca y tengo conexión a internet. Perfecto.

Ahora mi problema es que cada vez que conecto el Pi a mi computadora a través de Ethernet (usando este tutorial ) se pierde la conexión a Internet. Incluso después de desconectarme de mi computadora, aún no se conecta, necesito reiniciar para que pueda volver a conectarse a Internet.

¿Hay alguna manera de hacer que el Pi permanezca conectado a Internet a través de la interfaz del dongle en lugar de que intente hacerlo a través de la conexión a mi computadora?

jonathanwiesel
fuente
¿Ambas conexiones usan DHCP?
Lawrence
¿Cómo se ve su salida ifconfig?
Bex
Establecer una métrica más alta en eth0 que ppp0 debería lograr lo que desea. La métrica más baja es la de mayor prioridad.
Lawrence

Respuestas:

6

Asumiendo que trabajas con Linux (Raspian, Debian, etc ...):

Estás haciendo dos preguntas diferentes, primero responderé la pregunta del título:

Obliga a Raspberry a obtener internet de una red específica

Voy a bloquear su palabra "red" (en lugar de "interfaz") y responderé en un sentido IP puro:

Si tiene varias conexiones que podrían proporcionar Internet, usted controla cuál se utilizará a través de la tabla de rutas.

A la vista, la tabla de enrutamiento que uso normalmente netstat -rn( -res para "mostrar enrutamiento", -nes para "mostrarme números, no intente hacer búsquedas de DNS, que podrían bloquearse si mi Internet no está configurado correctamente"). Un ejemplo realmente simple se vería así:

pi@homeServer ~ $ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.9.1     0.0.0.0         UG        0 0          0 eth0
192.168.9.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.20.10.0     0.0.0.0         255.255.255.240 U         0 0          0 wlan0
pi@homeServer ~ $ 

La línea en esa salida que muestra en qué dirección irán los paquetes IP es la línea con un destino 0.0.0.0y una máscara genérica 0.0.0.0, que normalmente se conoce como default route(una máscara de 0.0.0.0es todo comodín, que es realmente el marcador de una ruta predeterminada), y Como actualmente apunta a una dirección específica en el rango '192.168.9', el tráfico de Internet irá a través de la interfaz de Ethernet.

Si quiero cambiar mi internet a la otra red, usaría el routecomando (como root) y, en este caso, dado que mi conexión wifi no es punto a punto, debo conocer la dirección IP del enrutador que pueda reenviar el tráfico fuera de esa red (en mi caso, eso es 172.20.10.1) así que haría:

  1. Eliminar la ruta predeterminada actual

    sudo route del default
    
  2. Agregar una nueva ruta predeterminada para la otra red

    sudo route add default gw 172.20.10.1
    

Para su información, aunque routees lo que uso, veo que algunos lo consideran obsoleto y en su lugar recomiendan usar el ip routecomando, vea el comentario de @Fred a continuación para obtener la sintaxis. referencia para desaprobación

¿Hay alguna manera de mantenerse conectado a través de la interfaz del dongle?

Ha pasado un tiempo desde que trabajé con pppy wvdial, y sin configuraciones (o al menos referencias a las guías que siguió para configurarlas) es realmente difícil adivinar con qué problemas se encuentra, pero como algunas ideas:

  • ¿La conexión está realmente inactiva o acabas de perder tu ruta predeterminada cuando apareció tu eth0?
    • Comprueba esto en ambos netstat -rny ifconfig.
    • ¿Hay una interfaz en netstat -rn? Si es así, ¿hay una ruta predeterminada?
    • ¿En ifconfigves interfaz para el dongle (probable ppp)? es eso UP?
  • No recuerdo dónde ppp/ wvdiallog, pero eso debería verificarse. Ese registro le indicará el estado de la conexión y debería informarle si el sistema completo se ha apagado por algún motivo.
  • Si ve una interfaz, intente pingalgo (... cualquier cosa ...) en ella y vea si surge la conexión.
    • Sé que ppp/ wvdialcombo tiene alguna capacidad de conexión automática (dependiendo de la configuración)
      • Entonces, si la conexión surgió con un ping (o si la conexión se mantuvo activa todo el tiempo): podría ser que la ruta predeterminada (ppp) se perdiera cuando sacaste el ethernet.
      • Si este es el problema, solo necesitará agregar una ruta predeterminada y todo el sistema volverá a estar en línea.
Mike Lutz
fuente
2
ip routeno usa la misma sintaxis. Sin embargo, puede copiar y pegar su salida para usarla como entrada. Por ejemplo, si se muestra default via 192.168.9.1 dev eth0, puede eliminar esa ruta simplemente ejecutando ip route del default via 192.168.9.1 dev eth0. Puede usar fácilmente la salida como plantilla para agregar nuevos comandos, por ejemplo ip route add default via 172.20.10.1 dev wlan0.
Fred