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: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
SIOCDELRT: Nie ma takiego procesu
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ą: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
Tym sposobem poradzimy sobie z każdym wpisem w tablicy trasowania.
Komentarze (2)