Як видалити маршрут із таблиці маршрутизації Linux


42

Це виявляється важче, ніж я думав. Маршрути, які я хочу видалити, - це "!" відхилені маршрути, але я не можу сформулювати правильну команду "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 від самої оболонки, але трафік з локальної мережі приймає другий маршрут (відхилений маршрут "!" Або "! H") з причин, які я просто не розумію.


Чи можете ви бути більш конкретними, коли кажете, що трафік рухається за "другим маршрутом"?
Zoredache

Помітьте дві записи таблиці для 192.168.46.79? На оболонці маршрутизатора, якщо я пінг тієї сторони тунелю, він працює. З боку локальної мережі трафік переходить на "другий 192.168.46.79" запис і відхиляється / зменшується.

Я також не розумію, чому SG560 генерує два (2) записи таблиці для "за замовчуванням" та пунктів призначення IPSEC. Я здивований.

Відповіді:


53

з отриманою 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

ви отримаєте всі параметри відповідно зверху


1
Після перезавантаження знову приходить. Як я можу назавжди видалити?
Шямкхадка

1
@shyamkkhadka, це залежить від того, для якого процесу він був створений ... рекомендую вам опублікувати питання з вашим конкретним випадком, щоб проаналізувати його. Дайте детальну інформацію про маршрут, який ви отримали та хочете видалити. Переважно сервер dhcp та клієнт створюватимуть маршрути
Філіп Гачуд

15

Типи маршрутів із !прапором є недоступними або забороненими. route, будучи стародавньою утилітою від мережевих інструментів, не відрізняє їх. Використовуйте iproute2.

Для видалення цих маршрутів мережевим інструментом було б використання route delна них. Однак інструменти net-net не дозволяють розмежовувати відхилений маршрут та інший (оскільки аргумент dev необов’язковий, хоча, якщо не вказано, що пристрій може видалити недоступний маршрут).

iproute2 дозволяє зробити це так:

ip route del unreachable 10.1.0.0/24
ip route del unreachable 192.168.46.79/32

Це може бути недосяжним, але забороняти. Використовуйте ip routeбез аргументів, щоб визначити, який.


8

Я думаю, що це: route del -net 10.1.0.0 netmask 255.255.0.0 metric 2

Я не впевнений на 100%. Але, я думаю, у вас є ще щось неповторне, оскільки у вас є 2 маршрути за замовчуванням.


2
Маршрути за замовчуванням +1: 2 - це завжди знак неправильного налаштування (якщо вони фактично не вказують на різні шлюзи та мають різні показники).
wolfgangsz

-1

Перевірте, чи є "файл конфігурації пристрою" під /etc/network/interfaces.d/ -> у мене був eht0 !! Дійсно, це було eht0, а не eth0!


Можливо, ви хочете дещо розширити свою відповідь, оскільки наразі не очевидно, як це стосується поставленого питання.
жіночий
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.