Forcer Raspberry à obtenir Internet à partir d'un réseau spécifique

13

J'ai configuré mon RPi pour qu'il se connecte à un dongle 3G au démarrage en activant ppp et wvdial

/etc/network/interfaces

Le Pi démarre et j'ai une connexion Internet. Parfait.

Maintenant, mon problème est que chaque fois que je connecte le Pi à mon ordinateur via Ethernet (en utilisant ce tutoriel ), la connexion Internet est perdue. Même après la déconnexion de mon ordinateur, il ne se connecte toujours pas, je dois redémarrer pour qu'il puisse à nouveau se connecter à Internet.

Existe-t-il un moyen de faire en sorte que le Pi reste connecté à Internet via l'interface du dongle au lieu d'essayer de le faire via la connexion à mon ordinateur?

jonathanwiesel
la source
Les deux connexions utilisent-elles DHCP?
Lawrence
À quoi ressemble votre sortie ifconfig?
Bex
La définition d'une métrique plus élevée sur eth0 que ppp0 devrait atteindre ce que vous voulez. La métrique inférieure est la priorité la plus élevée.
Lawrence

Réponses:

6

En supposant que vous travaillez avec linux (raspian, debian, etc ...):

Vous posez deux questions différentes, je vais d'abord répondre à la question du titre:

Forcer Raspberry à obtenir Internet à partir d'un réseau spécifique

Je vais verrouiller votre mot "réseau" (par opposition à "interface") et répondre à cela dans un sens IP pur:

Si vous disposez de plusieurs connexions pouvant fournir Internet, vous contrôlez celles qui seront utilisées via la table de routage.

Pour voir la table de routage que j'utilise normalement netstat -rn( -rest pour "montrer le routage", -nest pour "montrez-moi les numéros, n'essayez pas de faire des recherches DNS, qui pourraient se bloquer si mon internet n'est pas configuré correctement"). Un exemple vraiment simple ressemblerait à ceci:

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 ligne dans cette sortie qui indique la direction des paquets IP est la ligne avec un dest de 0.0.0.0et un masque de générique de 0.0.0.0, qui est normalement connue sous le nom de default route(un masque de 0.0.0.0est tout caractère générique, c'est vraiment le marqueur d'une route par défaut), et comme il pointe actuellement vers une adresse spécifique dans la plage `192.168.9 ', le trafic Internet passera par l'interface Ethernet.

Si je veux passer mon Internet à l'autre réseau, j'utiliserais (en tant que root) la routecommande, et dans ce cas, étant donné que ma connexion wifi n'est pas point à point, je dois connaître l'adresse IP du routeur qui peut acheminer le trafic hors de ce réseau (dans mon cas, c'est le cas 172.20.10.1), donc je ferais:

  1. Supprimer l'itinéraire par défaut actuel

    sudo route del default
    
  2. Ajouter une nouvelle route par défaut pour l'autre réseau

    sudo route add default gw 172.20.10.1
    

Pour info, routec'est ce que j'utilise, je vois que certains le considèrent obsolète et recommandent plutôt d'utiliser la ip routecommande, voir le commentaire de @Fred ci-dessous pour la syntaxe. référence pour dépréciation

Existe-t-il un moyen de rester connecté via l'interface du dongle

Cela fait longtemps que je n'ai pas travaillé avec pppet wvdial, et sans configs (ou au moins des références aux guides que vous avez suivis pour les configurer), il est vraiment difficile de deviner quels problèmes vous rencontrez, mais en quelques idées:

  • La connexion est-elle vraiment coupée ou avez-vous perdu votre route par défaut lorsque votre eth0 est apparu?
    • Vérifiez cela dans les deux netstat -rnet ifconfig.
    • Une interface est-elle présente netstat -rn? si oui, existe-t-il une route par défaut?
    • En ifconfigvoyez-vous l'interface pour le dongle (probable ppp)? est-ce UP?
  • Je ne me souviens pas où ppp/ wvdiallog, mais cela devrait être vérifié. Ce journal vous indiquera l'état de la connexion et devrait vous informer si le système entier s'est arrêté pour une raison quelconque
  • Si vous voyez une interface, essayez pingquelque chose (... n'importe quoi ...) dessus, et voyez si la connexion est établie.
    • Je sais que le ppp/ wvdialcombo a une capacité de connexion automatique (selon la configuration)
      • Donc, si la connexion a généré un ping (ou si la connexion est restée active tout le temps): il se peut que la route par défaut (ppp) se soit perdue lorsque vous avez activé Ethernet.
      • Si tel est le problème, il vous suffira d'ajouter une route par défaut et l'ensemble du système reviendrait en ligne.
Mike Lutz
la source
2
ip routen'utilise pas tout à fait la même syntaxe. Cependant, vous pouvez copier et coller sa sortie pour l'utiliser comme entrée. Par exemple, s'il apparaît default via 192.168.9.1 dev eth0, vous pouvez supprimer cette route simplement en l'exécutant ip route del default via 192.168.9.1 dev eth0. Vous pouvez facilement utiliser la sortie comme modèle pour ajouter de nouvelles commandes, par exemple ip route add default via 172.20.10.1 dev wlan0.
Fred