Встановити стійку таблицю маршрутизації на Debian


13

Я змінив свою таблицю маршрутизації, видаливши одне правило та додавши два нові правила для мого другого інтерфейсу eth1:

route del -net 10.1.2.0 netmask 255.255.255.0
route add -host 10.1.2.51 eth1
route add -host 10.1.2.52 eth1

Я хочу, щоб правила пережили перезавантаження. Я міг би написати простий сценарій rc, щоб видалити 1 правило та вставити 2 нових, але мені було цікаво, чи є спосіб налаштувати ifconfig, а не додати правило маршруту для інтерфейсу (eth1) при його запуску, а ще краще, визначити, які правила слід додати.

Який би був чистий спосіб це зробити? Чи ifconfigдозволяє мені вказати спеціальні правила маршрутизації?

Відповіді:


21

Ви можете додавати дзвінки на post-upгачок, коли з’являється інтерфейс. Конфігурація інтерфейсу знаходиться в /etc/network/interfaces. Ось приклад:

auto eth1
iface eth1 inet dhcp
  post-up route del -net 10.1.2.0 netmask 255.255.255.0
  post-up route add -host 10.1.2.51 eth1
  post-up route add -host 10.1.2.52 eth1
  pre-down route add -net 10.1.2.0 netmask 255.255.255.0
  pre-down route add -host 10.1.2.51 eth1
  pre-down route add -host 10.1.2.52 eth1

На сторінці man - інтерфейси :

пост-вгору command
команда Run після підняття інтерфейсу. Якщо ця команда не вдається, тоді ifup скасовує, утримуючись від позначення інтерфейсу як налаштованого (навіть якщо він дійсно налаштований), друкує повідомлення про помилку та виходить зі статусом 0.

попередньо вниз command
команду Run , перш ніж приймати інтерфейс вниз. Якщо ця команда не вдається, тоді ifdown перерветься, позначає інтерфейс як деконфігурований (навіть якщо він насправді не був деконфігурований) та виходить зі статусом 0.

Крім того, в Linux "мережеві інструменти" routeзастаріли, і їх слід замінити інструментами з пакета iproute2 .

Подальше читання:


чи можу я замість того, щоб видаляти перше правило, перешкоджати його створенню? Як все-таки створюється правило маршруту? З мережевих налаштувань у /etc/network/interfaces? І як я можу знати, що коли виконується подальша робота, правило, яке потрібно видалити, вже існує? Сторінка man не говорить про те, в який момент часу вона створена.
Мартін Вегтер

1
Оскільки я не знаю ні вашої мережі, ні вашої конфігурації хоста, я не можу сказати, як цей маршрут зробив шлях до таблиці маршрутизації. Він поставляється з орендою DHCP? Якщо ні, перевірте свої служби /etc/init.dта вивчіть, які з них, можливо, могли б познайомитися з таблицею маршрутизації. Подивіться також на /etc/networkпідкаталоги.
Марко

5
post-upі pre-downє псевдонімами для upі down, відповідно. І додавання в || :кінці рядка дозволяє команді відмовитися і не порушити ifup / ifdown. Зазвичай я додаю це route delв тому випадку, якщо маршрут ще не існує і тому його неможливо видалити.
Тіно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.