Это оказалось сложнее, чем я думал. Маршруты, которые я хочу удалить, отмечены знаком "!" отклонил маршруты, но, похоже, я не могу сформулировать правильную команду «route del», чтобы это осуществить.
Вот таблица маршрутизации ...
Destination Gateway Genmask Flags Metric Ref Use Iface
67.40.227.206 * 255.255.255.255 UH 0 0 0 ppp0
192.168.46.79 * 255.255.255.255 UH 0 0 0 ipsec0
192.168.46.79 - 255.255.255.255 !H 2 - 0 -
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
10.1.0.0 * 255.255.0.0 U 0 0 0 ipsec0
10.1.0.0 - 255.255.0.0 ! 2 - 0 -
default * 0.0.0.0 U 3 0 0 ppp0
default * 0.0.0.0 U 4 0 0 ppp0
У меня есть две записи для 192.168.46.79 и 10.1.0.0. Они создаются автоматически маленьким маршрутизатором на базе Linux, который я использую. Я могу пропинговать туннели IPSEC из самой оболочки, но трафик из LAN идет по второму маршруту (отклоненный маршрут «!» Или «! H») по причинам, которых я просто не понимаю.
с route -n
команду вы получите
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.178.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 160.98.123.1 0.0.0.0 UG 600 0 0 wlan0
sudo route del -net 0.0.0.0 gw 192.168.178.1 netmask 0.0.0.0 dev eth0
вы получите все параметры соответственно сверху
Типы маршрутов с !
flag недоступны или запрещены. route
, будучи древней утилитой от net-tools, не делает различий между ними. Используйте iproute2.
Способ net-tools для удаления этих маршрутов - использовать route del
в теме. Однако net-tools не предоставляет возможности отличить отклоненный маршрут от другого (поскольку аргумент dev является необязательным, хотя не указание устройства может удалить недоступный маршрут).
iproute2 позволяет сделать это так:
ip route del unreachable 10.1.0.0/24
ip route del unreachable 192.168.46.79/32
Это может быть не недостижимо, но запретить. Использовать ip route
без аргументов, чтобы определить, какие.
Думаю дело в следующем: route del -net 10.1.0.0 netmask 255.255.0.0 metric 2
Я не уверен на 100%. Но я думаю, что у вас происходит что-то еще глупое, поскольку у вас есть 2 маршрута по умолчанию.
Посмотрите, есть ли "файл конфигурации устройства" в /etc/network/interfaces.d/ -> У меня был eht0 !! Действительно, там был eht0, а не eth0!