Eu tenho uma interface enp7s0 em 192.168.0.11.
Meu roteador é 192.168.0.1.
Minha tabela de roteamento é
Ziel Router Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 enp7s0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp7s0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp7s0
Tudo está funcionando bem. Não tenho iptalbes configurado.
Agora eu tento redefinir minha tabela de roteamento e definir o gw padrão novamente.
ip route flush table main
route add default gw 192.168.0.1
A descarga está ok. Mas a adição falha.
SIOCADDRT: network is unreachable
Qual é o problema aqui??
No Linux, por padrão (quando um endereço não é adicionado com o sinalizador noprefixroute ), adicionar um endereço a uma interface adiciona implicitamente uma rota à LAN com link de escopo . Você tem uma rota para o seu gateway porque é alcançável usando dev enp7s0 :
Ao liberar as rotas, você também liberou a rota de link de escopo implícita:
Portanto, você tem dois métodos para recuperá-lo: adicione-o de volta manualmente (
ip route add 192.168.0.0/24 dev enp7s0
), ou desative a interface e, em seguida, acione novamente, o que acionará novamente a adição da rota de link de escopo implícita:A única diferença é a presença de
proto kernel
como indicação de que a rota foi adicionada pelo kernel e não manualmente. Portanto, é melhor não usar o comando flush (use delete ), ou adicionar outros filtros (por exemplo:ip route flush scope global
preservará as rotas das LANs locais)