Не вдається видалити маршрут із шлюзом 0.0.0.0


8

Я намагаюся налаштувати свої маршрути таким чином, що дозволить мені підключитися до Vagrant вікна демонстрації Solum .

Моя таблиця маршрутів містить, але не обмежується ними, такі маршрути:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0
192.168.76.0    192.168.76.2    255.255.255.0   UG    0      0        0 vboxnet0
192.168.76.0    0.0.0.0         255.255.255.0   U     0      0        0 vboxnet0

Я підозрюю, що третій маршрут (автоматично генерується при запуску коробки Vagrant) заважає другому маршруту (створюється вручну), тому я намагаюся його видалити.

Однак, використовуючи будь-яку з наступних команд

$ sudo route del 192.168.76.0 gw 0.0.0.0
$ sudo route del 192.168.76.0

повертає:

SIOCDELRT: No such process

яка зазвичай спливає, коли routeне вдається знайти маршрут.

З іншого боку, використовуючи

$ sudo route del 192.168.76.0/24 gw 0.0.0.0
$ sudo route del 192.168.76.0/24

врожайність:

route: netmask 000000ff doesn't make sense with host route
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
(rest of usage)

Що я роблю неправильно? Чи є причина, що я не можу видалити цей маршрут? Я помиляюся, якщо вважати, що це заважає тому, що я створив?

(Я використовую Ubuntu 14.04+).


2
Вгорі голови: спробуйте route del -net 192.168.76.0. В іншому випадку він вважає, що ви намагаєтесь видалити маршрут до одного хоста.
Джос

Як ви додали маршрут? Здається, ви використовуєте vbox, тому маршрутизація може бути частиною конфігурації vobx, я не можу сказати з того, що ви розмістили.
Пантера

Тільки з цікавості, але чому ви встановили цей маршрут? Мені здається, мережа 192.168.76.0/24 працює на зв’язку - шлюз не потрібен. Але коли ви подивитесь на пов’язані вами інструкції з налаштування, ви знайдете маршрут, route add -net 192.168.78.0/24 192.168.76.2який має набагато більше сенсу.
Нефенте

2
Btw. Якщо два або більше маршрутів узгоджуються з хостом, пріоритетним є найбільш конкретний, тобто той, який має найдовший префікс. Статичний маршрут хоста має префікс / 32 і буде кращим. Наступний критерій (як правило) залежить від того, як маршрут був вивчений, наприклад, статичний або за допомогою протоколу маршрутизації, де маршрути на прямій лінії зв'язку мають найвищий пріоритет, за якими слідують статичні, а потім динамічні маршрути, вивчені за допомогою OSPF.
Нефенте

@Jos ваша відповідь виявилася майже правильною - якщо я просто додаю /24до кінця команди, вона працює. Дякую. Якщо ви опублікуєте відповідь, можливо, з деякою деталізацією в інтересах людей, які переглянуть це питання в майбутньому, я прийму його.
Драгомок

Відповіді:


11

Щоб видалити один маршрут із таблиці маршрутів, потрібно вказати достатню кількість параметрів, щоб можна було зробити унікальне збіг із одним із маршрутів.

Якщо ви хочете видалити цілу підмережу (на відміну від одного хоста), вам потрібно використовувати -netпрапор і деяку вказівку на область мережевої адреси, тобто або netmaskпараметр (наприклад, 255.255.255.0), або число типу / 24 (мається на увазі, що перші 24 біти - це номер мережі, а решта 8 - для хостів). У вашому випадку обидва

sudo route del -net 192.168.76.0/24

і

sudo route del -net 192.168.76.0 netmask 255.255.255.0

працював би.

(спасибі @nephente за корисні доповнення)


або після цього, вказуючи інтерфейс, наприклад dev vboxnet0->sudo route del -net 192.168.76.0 netmask 255.255.255.0 dev vboxnet0
adadion

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