Установить постоянную таблицу маршрутизации в 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

Со страницы руководства - интерфейсы :

пост-вверх command
команда Run после поднятия интерфейса. Если эта команда не выполняется, то ifup прерывается, воздерживаясь от пометки интерфейса как настроенного (даже если он действительно был настроен), печатает сообщение об ошибке и выходит со статусом 0.

pre-down command
Выполнить команду перед отключением интерфейса. Если эта команда не выполняется, то ifdown прерывается, помечает интерфейс как деконфигурированный (даже если он не был деконфигурирован) и завершается со статусом 0.

Кроме того, в Linux «net-tools» routeустарела и должна быть заменена инструментами из пакета iproute2 .

Дальнейшее чтение:

Marco
источник
Могу ли я вместо того, чтобы удалить первое правило, предотвратить его создание в первую очередь? В любом случае, как создается правило маршрута? Из настроек сети в /etc/network/interfaces? И как я узнаю, что при запуске после запуска правило, которое будет удалено, уже существует? Страница man не говорит, в какой момент она создана.
Мартин Вегтер
1
Поскольку я не знаю ни вашей сети, ни конфигурации вашего хоста, я не могу сказать, как этот маршрут пробился в таблицу маршрутизации. Это идет с арендой DHCP? Если нет, проверьте свои службы /etc/init.dи выясните, какие из них могут быть связаны с таблицей маршрутизации. Также загляните в /etc/networkподкаталоги.
Марко
5
post-upи pre-downявляются псевдонимами для upи down, соответственно. А добавление || :в конце строки позволяет команде завершиться неудачей и не мешать ifup / ifdown. Я обычно добавляю это route del, если маршрут еще не существует и, следовательно, не может быть удален.
Тино