Não é possível excluir uma rota com o gateway 0.0.0.0

7

Estou tentando configurar minhas rotas de uma forma que me permita conectar-se à caixa Vagrant do Solum demo .

Minha tabela de roteamento contém, mas não está limitada a, as seguintes rotas:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0
192.168.76.0    192.168.76.2    255.255.255.0   UG    0      0        0 vboxnet0
192.168.76.0    0.0.0.0         255.255.255.0   U     0      0        0 vboxnet0

Estou suspeitando que a terceira rota (gerada automaticamente na inicialização da caixa Vagrant) está interferindo na segunda rota (criada manualmente), então estou tentando excluí-la.

No entanto, usando um dos seguintes comandos

$ sudo route del 192.168.76.0 gw 0.0.0.0
$ sudo route del 192.168.76.0

retorna:

SIOCDELRT: No such process

que geralmente aparece quando route não consegue encontrar o caminho.

Por outro lado, usando

$ sudo route del 192.168.76.0/24 gw 0.0.0.0
$ sudo route del 192.168.76.0/24

rendimentos:

route: netmask 000000ff doesn't make sense with host route
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
(rest of usage)

O que estou fazendo de errado? Existe uma razão pela qual não posso remover essa rota? Estou errado em assumir que isso interfere com o que eu configurei?

(estou usando o Ubuntu 14.04 +).

    
por Dragomok 23.09.2015 / 18:12

2 respostas

6

Para excluir uma única rota de uma tabela de rotas, é necessário especificar parâmetros suficientes para que uma correspondência única com uma das rotas possa ser feita.

Se você quiser excluir uma sub-rede inteira (ao contrário de um único host), precisará usar o sinalizador -net e alguma indicação do escopo do endereço de rede, ou seja, o parâmetro netmask (por exemplo, 255.255 .255.0) ou um número como / 24 (significando que os primeiros 24 bits são o número da rede e os 8 restantes são usados para hosts). No seu caso, ambos

sudo route del -net 192.168.76.0/24

e

sudo route del -net 192.168.76.0 netmask 255.255.255.0

teria funcionado.

(obrigado a @nephente por adições úteis)

    
por Jos 23.09.2015 / 19:36
0

Comentário feito por Jos está quase correto:

$ sudo route del -net 192.168.76.0/24 remove a rota.

    
por Dragomok 23.09.2015 / 19:21