Forçar o Raspberry a obter internet de uma rede específica

13

Configurei meu RPi para conectar-se a um dongle 3G na inicialização, configurando ppp e wvdial em

/etc/network/interfaces

O Pi é inicializado e eu tenho conexão com a Internet. Perfeito.

Agora, meu problema é que sempre que eu conecto o Pi ao meu computador via Ethernet (usando este tutorial ), a conexão à Internet é perdida. Mesmo depois de desconectar do computador, ele ainda não se conecta, preciso reiniciar para que possa obter conexão com a Internet novamente.

Existe uma maneira de fazer o Pi permanecer conectado à Internet através da interface do dongle, em vez de tentar fazê-lo através da conexão com o meu computador?

jonathanwiesel
fonte
As duas conexões usam DHCP?
31714 Lawrence
Como é a sua saída do ifconfig?
Bex
Definir uma métrica mais alta em eth0 que ppp0 deve atingir o que você deseja. A métrica mais baixa é a de maior prioridade.
31414 Lawrence

Respostas:

6

Supondo que você trabalhe com o linux (raspian, debian, etc ...):

Você está fazendo duas perguntas diferentes. Primeiro, responderei à pergunta do título:

Forçar o Raspberry a obter internet de uma rede específica

Vou bloquear a sua palavra "rede" (ao contrário de "interface") e responder isso em um sentido de IP puro:

Se você possui várias conexões que podem fornecer a Internet, você controla quais serão usadas através da tabela de rotas.

Para a exibição da tabela de roteamento que normalmente uso netstat -rn( -ré para "show routing", -né para "show me numbers, não tente fazer pesquisas de DNS, que podem travar se minha Internet não estiver configurada corretamente"). Um exemplo muito simples seria assim:

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 ~ $ 

A linha nessa saída que mostra em que direção os pacotes IP serão é a linha com destino 0.0.0.0e uma máscara de genérico 0.0.0.0, normalmente conhecida como default route(a máscara de 0.0.0.0é tudo curinga, esse é realmente o marcador de uma rota padrão) e como atualmente aponta para um endereço específico na faixa `192.168.9 ', o tráfego da Internet passará pela interface Ethernet.

Se eu quiser mudar minha internet para outra rede, usaria (como root) o routecomando e, neste caso, como minha conexão wifi não é ponto a ponto, devo saber o endereço IP do roteador que pode encaminhar tráfego para fora dessa rede (no meu caso 172.20.10.1), então eu faria:

  1. Excluir a rota padrão atual

    sudo route del default
    
  2. Adicione uma nova rota padrão para a outra rede

    sudo route add default gw 172.20.10.1
    

Para sua informação, enquanto routeisso é o que eu uso, vejo alguns que o consideram obsoleto e, em vez disso, recomendo usar o ip routecomando, consulte o comentário de @Fred abaixo para obter sintaxe. referência para reprovação

Existe uma maneira de permanecer conectado através da interface do dongle

Já faz um tempo desde que eu trabalhei com pppe wvdial, e sem configurações (ou pelo menos referências aos guias que você seguiu na configuração), é realmente difícil adivinhar em quais problemas você está se deparando, mas com algumas idéias:

  • A conexão está realmente desativada ou você acabou de perder sua rota padrão quando o eth0 surgiu?
    • Verifique isso em ambos netstat -rne ifconfig.
    • Existe uma interface netstat -rn? Nesse caso, existe uma rota padrão para isso?
    • Em ifconfigvocê vê a interface para o dongle (provável ppp)? é isso UP?
  • Não me lembro onde ppp/ wvdiallog, mas isso deve ser verificado. Esse log informará o estado da conexão e informará se o sistema inteiro foi encerrado por algum motivo
  • Se você pingvir uma interface, tente algo (... qualquer coisa ...) nela e veja se a conexão surge.
    • Eu sei que o ppp/ wvdialcombo tem algum recurso de conexão automática (dependendo da configuração)
      • Portanto, se a conexão surgir com um ping (ou a conexão permanecer ativa o tempo todo): pode ser que a rota padrão (ppp) seja perdida quando você abrir a Ethernet.
      • Se este for o problema, você apenas precisará adicionar uma rota padrão e todo o sistema voltará a ficar online.
Mike Lutz
fonte
2
ip routenão usa a mesma sintaxe. No entanto, você pode copiar e colar sua saída para usar como entrada. Por exemplo, se aparecer default via 192.168.9.1 dev eth0, você pode remover essa rota simplesmente executando ip route del default via 192.168.9.1 dev eth0. Você pode usar facilmente a saída como modelo para adicionar novos comandos, por exemplo ip route add default via 172.20.10.1 dev wlan0.
Fred