Evite definir uma rota padrão para uma interface gerenciada por DHCP

0

Eu tenho uma caixa Ubuntu 16.04 (Xenial) com duas interfaces wifi. Um ( wlxAABBCC ) é gerenciado pelo Network Manager, o outro ( wlan0 ) é gerenciado manualmente por /etc/network/interfaces.d . Eu quero a rota padrão para a própria máquina que use wlxAABBCC , não wlan0 .

O plano é conectar um dispositivo somente de ethernet a um roteador sem fio via wlan0 e usar wlxAABBCC para todo o resto. Portanto, wlan0 transmite as informações de DHCP e posso configurar uma tabela ip route personalizada que apenas transmite tráfego do endereço eth0 . wlan0 ainda precisa de um endereço no roteador, então eu preciso do DHCP para fazer ... alguma coisa.

Eu tentei isso em /etc/network/interfaces.d/wlan0 :

auto wlan0 
iface wlan0 inet dhcp
    wpa-conf /etc/network/wlan0_wpa.conf

Mas eu recebo duas rotas padrão:

$ ip route show
default via 192.168.1.1 dev wlan0 
default via 192.168.1.1 dev wlxAABBCC proto static metric 600

Eu não quero isso. Todo o tráfego vai passar por wlan0 agora.

Eu tentei definir a métrica de wlxAABBCC para 0 com nmcli connection modify id "SSID" ipv4.route-metric 0 , mas ainda é relegado a 1 pelo Network Manager quando surge wlan0 .

Então eu tentei isso em /etc/network/interfaces.d/wlan0 :

auto wlan0 
iface wlan0 inet dhcp
    wpa-conf /etc/network/wlan0_wpa.conf
    up ip route del default dev wlan0

Mas no breve tempo entre wlan0 chegando e wlxAABBCC chegando, um monte de serviços parecem "escolher" wlan0 como sua interface preferida e não se recuperam quando essa rota padrão é descartada ( incluindo SSH e Avahi, então não posso me conectar).

Encontrei esta pergunta de falha de servidor , que sugere o uso de uma sub-rotina manual e de uma configuração DHCP personalizada. Então eu tentei:

auto wlan0 
iface wlan0 inet manual
    up /sbin/dhclient -4 -v -pf /run/dhclient.${IFACE}.pid \
        -lf /var/lib/dhcp/dhclient.${IFACE}.leases -I \
        -df /var/lib/dhcp/dhclient6.${IFACE}.leases \
        -cf /etc/network/dhclient_wlan0.conf ${IFACE}
    down /sbin/dhclient -4 -v -r -pf /run/dhclient.${IFACE}.pid \
        -lf /var/lib/dhcp/dhclient.${IFACE}.leases -I \
        -df /var/lib/dhcp/dhclient6.${IFACE}.leases \
        -cf /etc/dhcp/dhclient_wlan0.conf ${IFACE}
    wpa-conf /etc/network/wlan0_wpa.conf

... onde /etc/network/dhclient_wlan0.conf é baseado no conf padrão do DHCP, mas sem routers e qualquer ...static-routes opções:

send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
    netbios-name-servers, netbios-scope, interface-mtu,
    ntp-servers;

timeout 300;

Ainda define duas rotas padrão.

Eu adicionei isso ao arquivo de configuração DHCP personalizado:

interface wlan0 {
    supersede routers ""
}

AINDA CONFIGURA DUAS ROTAS PADRÃO.

Por que o DHCP ainda adiciona uma rota padrão com essa configuração personalizada? O que eu preciso fazer para que wlan0 consiga um endereço via DHCP, mas não seja a interface padrão?

    
por detly 29.04.2018 / 15:22

0 respostas