Impossibile eliminare una route con gateway 0.0.0.0


8

Sto cercando di impostare i miei percorsi in un modo che mi permetta di connettermi al box Vagrant della demo di Solum .

La mia tabella di routing contiene, ma non è limitato a, i seguenti percorsi:

$ 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

Sospetto che la terza rotta (generata automaticamente all'avvio di Vagrant box) interferisca con la seconda rotta (creata manualmente), quindi sto cercando di eliminarla.

Tuttavia, utilizzando uno dei seguenti comandi

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

ritorna:

SIOCDELRT: No such process

che di solito viene visualizzato quando routenon è possibile trovare il percorso.

D'altra parte, usando

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

rendimenti:

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

Che cosa sto facendo di sbagliato? C'è un motivo per cui non riesco a rimuovere quella rotta? Sbaglio nel ritenere che interferisca con quello che ho impostato?

(Sto usando Ubuntu 14.04+).


2
In cima alla mia testa: prova route del -net 192.168.76.0. Altrimenti pensa che tu stia cercando di eliminare una route verso un singolo host.
— Jos,

Come hai aggiunto il percorso? Sembra che tu stia usando Vbox, quindi il routing potrebbe far parte della configurazione di Vobx, non posso dire da cosa hai pubblicato.
— Pantera,

Solo per curiosità, ma perché hai impostato quel percorso? A me sembra che la rete 192.168.76.0/24 sia on-link - nessun gateway necessario. Ma quando dai un'occhiata alle istruzioni di installazione che hai collegato, troverai il percorso route add -net 192.168.78.0/24 192.168.76.2che ha molto più senso.
— Nephente,

2
Btw. Se due o più route corrispondono a un host, la più specifica ha la precedenza, ovvero quella con il prefisso più lungo. Una route host statica ha il prefisso / 32 e sarà preferita. Il criterio successivo (di solito) dipende da come il percorso è stato appreso, ad esempio statico o tramite un protocollo di routing, in cui i percorsi on-link hanno la massima precedenza, seguiti da quelli statici, seguiti da percorsi dinamici appresi tramite, ad esempio, OSPF.
— Nephente,

@Jos la tua risposta si è rivelata quasi corretta - se aggiungo solo /24alla fine del comando, funziona. Grazie. Se pubblichi una risposta, forse con qualche elaborazione nell'interesse delle persone che sfoglieranno questa domanda in futuro, la accetterò.
— Dragomok,

Risposte:


11

Per eliminare una singola route da una tabella di route, è necessario specificare parametri sufficienti in modo da poter effettuare una corrispondenza univoca con una delle route.

Se si desidera eliminare un'intera sottorete (al contrario di un singolo host) è necessario utilizzare sia il -netflag sia alcune indicazioni dell'ambito dell'indirizzo di rete, ovvero il netmaskparametro (ad es. 255.255.255.0) o un numero come / 24 (significa che i primi 24 bit sono il numero di rete e gli altri 8 sono utilizzati per gli host). Nel tuo caso, entrambi

sudo route del -net 192.168.76.0/24

e

sudo route del -net 192.168.76.0 netmask 255.255.255.0

avrebbe funzionato.

(grazie a @nephente per utili aggiunte)


oppure seguito specificando l'interfaccia, ad esempio dev vboxnet0->sudo route del -net 192.168.76.0 netmask 255.255.255.0 dev vboxnet0
— adadion il

0

Il commento fatto da Jos è quasi corretto:

$ sudo route del -net 192.168.76.0/24 rimuove il percorso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.