Alterando permanentemente a métrica de uma interface

1

Esta é a minha tabela de roteamento quando conecto meu telefone Android via USB ao meu Raspberry e habilito o tethering USB.

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.42.129  0.0.0.0         UG    204    0        0 usb0
0.0.0.0         192.168.0.1     0.0.0.0         UG    303    0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0
192.168.42.0    0.0.0.0         255.255.255.0   U     204    0        0 usb0

Eu quero que wlan0 seja a interface preferida. Então, como posso alterar a métrica de uma das interfaces permanentemente?

Além disso, como o Linux decide qual valor de métrica será usado para uma interface?

    
por MatMis 25.12.2017 / 23:20

1 resposta

5

Uma das soluções é definir as configurações em /etc/network/interfaces adicionando rota padrão com uma métrica predefinida:

auto lo
iface lo inet loopback

# Primary interface
auto wlan0
iface wlan0 inet static 
    address 192.168.0.100
    netmask 255.255.255.0 
    dns-nameservers 192.168.0.1 8.8.8.8
    post-up /sbin/ip route add default via 192.168.0.1 dev wlan0 metric 10
    post-down /sbin/ip route del default via 192.168.0.1 dev wlan0 metric 10
    wpa-ssid <your_SSID>
    wpa-psk <your_PSK>

Talvez seja necessário adicionar outras opções de Wi-Fi específicas às suas configurações.

Outra solução é alterar a métrica no /etc/dhcpcd.conf . De acordo com a métrica manual do dhcpcd pode ser atribuída à interface:

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. 

Adicione estas linhas a /etc/dhcpcd.conf :

interface wlan0
metric 200

interface usb0
metric 300

E reinicie o dhcpcd e os serviços de rede.

    
por 26.12.2017 / 00:31