Nie można usunąć trasy z bramą 0.0.0.0

8

Próbuję skonfigurować trasy w sposób, który pozwoli mi połączyć się z Vagrant boxem wersji demonstracyjnej Solum .

Moja tabela routingu zawiera między innymi następujące trasy:

$ 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

Podejrzewam, że trzecia trasa (generowana automatycznie przy uruchomieniu Vagrant box) zakłóca drugą trasę (utworzoną ręcznie), więc próbuję ją usunąć.

Jednak za pomocą jednego z następujących poleceń

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

zwroty:

SIOCDELRT: No such process

który zwykle pojawia się, gdy routenie można znaleźć trasy.

Z drugiej strony za pomocą

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

daje:

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

Co ja robię źle? Czy istnieje powód, dla którego nie mogę usunąć tej trasy? Czy mylę się, zakładając, że koliduje z tym, który skonfigurowałem?

(Używam Ubuntu 14.04+).

Dragomok
źródło
2
Z czubka głowy: spróbuj route del -net 192.168.76.0. W przeciwnym razie wydaje się, że próbujesz usunąć trasę do jednego hosta.
Jos
Jak dodałeś trasę? Wygląda na to, że używasz vbox, więc routing może być częścią konfiguracji vobx, nie mogę stwierdzić z tego, co opublikowałeś.
Panther
Z ciekawości, ale dlaczego wybrałeś tę trasę? Wydaje mi się, że sieć 192.168.76.0/24 jest połączona - nie jest wymagana brama. Ale kiedy spojrzysz na instrukcje konfiguracji, które połączyłeś, znajdziesz trasę, route add -net 192.168.78.0/24 192.168.76.2która ma o wiele większy sens.
Nephente
2
Btw. Jeśli dwie lub więcej tras pasuje do hosta, pierwszeństwo ma najbardziej konkretna, czyli ta z najdłuższym prefiksem. Statyczna trasa hosta ma prefiks / 32 i będzie preferowana. Kolejne kryterium (zwykle) zależy od sposobu uczenia się trasy, np. Statyczny lub za pośrednictwem protokołu routingu, w którym trasy w łączu mają najwyższy priorytet, następnie statyczne, a następnie trasy dynamiczne poznane np. Przez OSPF.
Nephente
@Jos twoja odpowiedź okazała się prawie poprawna - jeśli dodam tylko /24do końca polecenia, to zadziała. Dziękuję Ci. Jeśli opublikujesz odpowiedź, być może z pewnym dopracowaniem w interesie osób, które będą przeglądać to pytanie w przyszłości, zaakceptuję.
Dragomok

Odpowiedzi:

11

Aby usunąć pojedynczą trasę z tabeli tras, musisz określić wystarczającą liczbę parametrów, aby możliwe było unikalne dopasowanie z jedną z tras.

Jeśli chcesz usunąć całą podsieć (w przeciwieństwie do jednego hosta), musisz użyć zarówno -netflagi, jak i pewnego wskazania zakresu adresu sieciowego, tj. netmaskParametru (np. 255.255.255.0) lub liczby takiej jak / 24 (co oznacza, że ​​pierwsze 24 bity to numer sieci, a pozostałe 8 służy do hostów). W twoim przypadku oba

sudo route del -net 192.168.76.0/24

i

sudo route del -net 192.168.76.0 netmask 255.255.255.0

działałby.

(dzięki @nephente za przydatne dodatki)

Jos
źródło
lub po określeniu interfejsu, na przykład dev vboxnet0->sudo route del -net 192.168.76.0 netmask 255.255.255.0 dev vboxnet0
adadion
0

Komentarz Jos jest prawie poprawny:

$ sudo route del -net 192.168.76.0/24 usuwa trasę.

Dragomok
źródło