MC, 23:26 piątek, 29.06.2012 r.
Ilustracja do artykułu: Linux ip route — Jak usunąć wpis z routing table (SIOCDELRT)

Linux ip route — Jak usunąć wpis z routing table (SIOCDELRT)

Wpis w temacie usuwania elementów z tablicy trasowania pakietów sieci. Może być szczególnie przydatny dla tych, który próbują wykonać tę operację przy pomocy polecenia route, jednak otrzymują błąd: "SIOCDELRT: Nie ma takiego procesu". Pokażę tutaj alternatywną drogę.

W czym rzecz?

Kilka dni temu miałem problem z siecią VPN polegający na tym, że co pewien czas traciłem połączenie. Przy ponownej próbie nawiązania kontaktu otrzymywałem informację, że nie można stworzyć nowych węzłów komunikacyjnych, ponieważ odpowiednie trasy już istnieją zapisane w tablicy. Długo nie myśląc wydałem polecenia route, żeby podejrzeć jakie wpisy widnieją w tablicy trasowania:
$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.30       *               255.255.255.255 UH    0      0        0 tun0
10.8.0.0        10.8.0.30       255.255.255.0   UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     2      0        0 eth1
10.100.0.0      10.8.0.30       255.255.255.0   UG    0      0        0 tun0
link-local      *               255.255.0.0     U     1000   0        0 eth1
default         netiabox.home   0.0.0.0         UG    0      0        0 eth1
Pomyślałem, że usunę ręcznie wpisy, żeby móc połączyć się na nowo z wirtualną prywatną siecią.
$ sudo route del 10.8.0.0
SIOCDELRT: Nie ma takiego procesu
Niestety okazało się, że nie każdy węzeł można tak uproszczonym poleceniem usunąć.

Jak więc sobie poradzić?

W takiej sytuacji znacznie prościej jest użyć polecenia ip z odpowiednimi parametrami. Najpierw zerknijmy, jak wygląda tablica trasowania zwrócona za jego pomocą:
$ ip r
10.8.0.30 dev tun0 proto kernel scope link src 10.8.0.29
10.8.0.0/24 via 10.8.0.30 dev tun0
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.180 metric 2
10.100.0.0/24 via 10.8.0.30 dev tun0
169.254.0.0/16 dev eth1 scope link metric 1000
default via 192.168.1.254 dev eth1 proto static

Teraz wystarczy skopiować wpis z interesującą nas trasą i ją usunąć w poniższy sposób:
$ sudo ip r del 10.8.0.0/24 via 10.8.0.30 dev tun0

Tym sposobem poradzimy sobie z każdym wpisem w tablicy trasowania.

Komentarze (2)

Imię:
Treść:
Administrator 2017-08-08 07:25:46
@Lukasz, cieszę się i również pozdrawiam.
Lukasz 2017-07-24 22:26:45
Dziękuję. Pomogłeś mi. Pozdrawiam!