Як видалити маршрут із таблиці маршрутизації 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.