Faça alterações permanentes na tabela de roteamento

10

Eu tenho um Raspberry PI 2 modelo B com a versão Raspbian Jessie e estou tentando levar a Internet do meu PC para o Raspberry. Eu tenho 2 interfaces de rede entre eles, um é sobre Ethernet e o outro é sobre Wifi. Eu configurei o endereço IP Ethernet no Raspberry para ser estático, porque tenho uma pequena rede de computadores em casa com endereços IP estáticos e quero que o raspberry faça parte dele. Como minha internet é muito lenta (eu uso um modem dial-up), não quero compartilhar essa internet lenta através da interface Ethernet, porque não quero que todos os computadores conectados a essa rede drenem a velocidade da Internet. Como pretendo apenas levar a Internet ao Raspberry, criei um ponto de acesso Wi-Fi no meu PC, que atribui dinamicamente um endereço IP ao meu Raspberry (o software do ponto de acesso tem algum tipo de DHCP) e isso '

Mas, então, meu problema começa: por padrão, depois que eu o ligo (ou se eu me desconectar e conectar novamente), o Raspberry não se conecta à Internet. Ao digitar ifconfig, recebo:

eth0     
Link encap:Ethernet  HWaddr b8:27:eb:4e:35:65  
inet addr:100.100.100.25  Bcast:100.100.100.255  Mask:255.255.255.0
inet6 addr: fe80::ba27:ebff:fe4e:3565/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     
Link encap:Ethernet  HWaddr 74:da:38:55:f3:a2  
inet addr:192.168.137.201  Bcast:192.168.137.255  Mask:255.255.255.0
inet6 addr: fec0::12:c4f1:c3fc:eb1e:3153/64 Scope:Site
inet6 addr: 2002:be0f:9cea:12:1bc0:1969:c17d:f854/64 Scope:Global
inet6 addr: fe80::bdca:7255:2e27:8341/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Quando digito route -n, recebo:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
0.0.0.0         192.168.137.1   0.0.0.0         UG    303    0        0 wlan0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

Aqui você pode ver como a métrica do meu gateway de conexão Ethernet estática (100.100.100.1) é menor que a métrica do meu gateway de conexão Wifi DHCP (192.168.137.1), para que o meu Raspberry tente acessar a Internet pela interface errada

depois que eu digitar:

sudo route delete  default gateway 192.168.137.1 

e depois :

sudo route add  default gateway 192.168.137.1

minha tabela de roteamento está fixa em:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.137.1   0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

e o Raspberry pode acessar a internet.

Minhas perguntas são:

  1. Existe uma maneira de automatizar esse processo para que eu não precise fazer isso manualmente sempre que ligar o Raspberry?
  2. Existe uma maneira de automatizá-lo para que ele sempre reconheça que deve obter a Internet do Wifi independentemente do intervalo de IP fornecido pelo DCHP do ponto de acesso para essa interface?
  3. Por que a métrica inferior foi atribuída automaticamente à interface Ethernet?

Eu já verifiquei a solução em Como fazer uma alteração na tabela de roteamento persistir? mas isso não funciona para mim, porque no Raspbian Jessie você não edita diretamente o /etc/network/interfacesarquivo /etc/dhcpcd.confpara obter o endereço IP estático

VMMF
fonte

Respostas:

10

Existe uma maneira de automatizar esse processo para que eu não precise fazer isso manualmente sempre que ligar o Raspberry?

Isso não é necessário se a pergunta 2 puder ser resolvida - e pode ...

Existe uma maneira de automatizá-lo para que ele sempre reconheça que deve obter a Internet do Wifi independentemente do intervalo de IP fornecido pelo DCHP do ponto de acesso para essa interface?

Em /etc/dhcpcd.confadição

interface wlan0;
metric 200;

interface eth0
metric 300;

Isso atribuirá a métrica mais baixa à interface WLAN, para que uma seja escolhida para solicitações da Internet.

Por que a métrica inferior foi atribuída automaticamente à interface Ethernet?

Porque é assim que as métricas são atribuídas de acordo com o man dhcpcd.conf (5) :

 metric metric
         Metrics are used to prefer an interface over another one, lowest
         wins.  dhcpcd will supply a default metric of 200 +
         if_nametoindex(3).  An extra 100 will be added for wireless
         interfaces.
Thomas Weller
fonte
+1 Muito obrigado por não ter uma resposta ainda. Eu estava correndo um script manual de cada vez que eu precisava fazer isso
VMMF
Observe que isso não funciona para conexões não DHCP. Se você possui uma conexão estática em / etc / network / interfaces, pode configurar a métrica do gateway substituindo o gateway xxx.xxx.xxx.xxx pela rota ascendente, adicione a métrica padrão gw xxx.xxx.xxx.xxx ###
Sameer Puri
0

O que faço é simplesmente fazê-lo rodar na inicialização.

Adicione sudo route delete defaulte sudo route add default gateway 192.168.137.1, nessa ordem específica, ao seu /etc/init.d/rc.localarquivo.

Esqueci-me se /etc/init.d/rc.localfunciona de imediato para Jessie, ou mesmo se você deve tocá-lo ou não, mas deve ser trivial encontrar outra solução (eu já fiz) .

E isso resolve # 1.


Para priorização de conexões, eu recomendo que você instale ifmetric. Em seguida, simplesmente priorize suas conexões em/etc/network/interfaces

A prioridade mais alta é 0, a seguir é 1, depois 2 e assim por diante.

iface eth0 inet dhcp
 metric 1

iface wlan0 inet static
 address 192.168.0.1
 netmask 255.255.255.0
 network 192.168.0.0
 metric 0

iface eth1 inet dhcp
 metric 2

E é isso para o # 2.


Acho que o nº 3 aconteceu porque os desenvolvedores pensaram que o WiFi é priorizado em ambientes camponeses que não são usuários de energia. Eu só podia especular, já que não consigo encontrar nenhuma informação sobre isso.

PNDA
fonte