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+).


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)


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ę.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.