Alteração de gateway padrão

28

Estou usando 3 interfaces Ethernet no Ubuntu, mas quando reinicio, o gateway padrão está mudando para uma interface diferente. Cada vez que inicializo, tenho que mudar o gateway padrão de volta ao eth1 excluindo o gateway padrão e adicionando-o novamente com o eth1. Como posso resolver este problema?

Baran
fonte
Você o configurou manualmente usando o /etc/network/interfacesarquivo ou um software como o Network Manager ou wicd?
Lekensteyn
1
"Gateway" não é igual a "rota". Um gateway é específico para uma interface em que uma rota diz qual interface deve ser usada.
Lekensteyn
O gateway geralmente é uma interface em um dispositivo remoto no qual o nó local depende para decisões de roteamento. Uma declaração de rota propriamente dita pode se referir a uma interface local ou não, mas o destino do roteamento deve ser descoberto a partir de uma pesquisa recursiva, interface conectada ou rota padrão. Uma rota ou gateway padrão é o 'gateway de último recurso' - que será usado na ausência de uma rota mais específica disponível.
22811 Belacqua
Você pode fornecer sua tabela de roteamento, lista de interfaces e outras configurações de rede relevantes que você fez?
22611 Belacqua

Respostas:

33

Para alterar temporariamente a rota padrão, você pode usar um comando ip como este:

$ sudo ip route change default via 192.168.1.1 dev eth0

Se você possui uma configuração de IP estático, /etc/network/interfacespode adicionar uma instrução de gateway para tornar isso permanente.

iface eth0 inet static
    gateway 192.168.1.1
    […]

Usando o DHCP para configurar a rede, você deve ajustar outro arquivo. Adicione a declaração de substituição em /etc/dhcp/dhclient.conf.

supersede routers 192.168.1.1;
Webwurst
fonte
1
Versão gravável (deve ser um espaço entre as aspas):echo supersede routers $(ip route | grep default | cut -f3 -d" ")\; | sudo tee --append /etc/dhcp/dhclient.conf
colan
E se eu tiver várias interfaces? Todos eles não deveriam ter um 'gateway' para cada interface? ? Mas o que afeta o exemplo '' default via 192.168.3.1 dev eth6" saída do comando ip route Ele lista uma interface específica, certo?
JohnyTex
7

Abra o arquivo /etc/network/interfaces

encontre a interface desejada e adicione o seguinte:

gateway 192.x.x.x

Reinicie a rede:

sudo /etc/init.d/networking restart
mount.cifs
fonte
16
E se a interface desejada estiver configurada via DHCP e eu não souber o endereço do gateway que ela atribuirá?
Devmiles.com
0

Eu tive o mesmo problema para a minha interface wifi wlp3s0no Ubuntu 18.04. Isso estava afetando minha capacidade de conectar-me ao compartilhamento e roteador Android fora de casa. A maneira de resolver o problema para mim foi comentar em arquivo /etc/dhcpcd.confo seguinte:

interface wlp3s0
        static ip_address=192.168.0.16/24
        static routers=192.168.0.1
        static domain_name_servers=127.0.0.1

para obter o seguinte

#interface wlp3s0
#        static ip_address=192.168.0.16/24
#        static routers=192.168.0.1
#        static domain_name_servers=127.0.0.1

Em seguida, desconectei da minha rede atual e reconectei uma tentativa route -nou nmclipara ver alterações

Você também pode remover as mesmas linhas quando tiver certeza de que funciona para você.

Por causa dessas linhas, o NetworkManager sempre adicionava uma rota padrão com um gateway errado, principalmente quando eu não estava na minha rede doméstica. Eu estava recebendo "Host de Destino Inacessível" quando estava fazendo um ping 8.8.8.8. A codificação embutida em um gateway /etc/network/interfacesnão era uma solução viável, pois eu me conectei muito a wifis públicos (portanto, nunca o mesmo roteador ou gateway wifi) e, normalmente, o DHCP deve funcionar IMHO "pronto para uso".

PS: Eu nunca editei manualmente, /etc/dhcpcd.confentão não sei por que o arquivo /etc/dhcpcd.confcontém essas linhas.

ThomasG77
fonte