Назад | Перейти на главную страницу

Как удалить маршрут из таблицы маршрутизации Linux

Это оказалось сложнее, чем я думал. Маршруты, которые я хочу удалить, отмечены знаком "!" отклонил маршруты, но, похоже, я не могу сформулировать правильную команду «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!