Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Сохранение маршрутов


Автор: admsasha 4.2.2009, 03:14
Имеется mandriva. На ней прописаны маршруты для разных сетей. Для востановления маршрутов после перезагрузки все строки добавил в /etc/rc.d/rc.local. 
Проблема в следующем:
1. Если я выдерну сетевой провод и потом вставлю обратно, все марштуры слетают, хоть и интерфейсы поднимается.
2. Если я перегружаю network , все марштуры слетают, хоть и интерфейсы поднимается.

Как сделать чтобы в этих случаях снова таблица маршрутизации востанавливалась ? Может куда то надо записать её ? какой то файл, который автоматически стартует при поднятии интерфейса ?

Автор: bilbobagginz 4.2.2009, 09:32
Цитата(admsasha @  4.2.2009,  03:14 Найти цитируемый пост)
Как сделать чтобы в этих случаях снова таблица маршрутизации востанавливалась ? Может куда то надо записать её ? какой то файл, который автоматически стартует при поднятии интерфейса ? 

не знаю как точно это сделать в Mandriva, но в Debian системах это решается так:
есть каталог, в котором находятся настройки сети /etc/network
в нем есть файл /etc/network/interfaces, в котором лежат настройки самих интерфейсов.
для каждого интерфейса есть параграф настроек.
в этом параграфе есть некоторые строки, начинающиеся ключевыми словами:
  • pre-up
  • up
  • post-up
  • pre-down
  • down
  • post-down
После оных в той же строке идёт команда или имя скрипта. 
Эти "опции" запускаются "во времени" относительно самой команды поднятия интерфейса по названиям.
Аналогично в том же каталоге /etc/network есть несколько подкаталогов для специальных скриптов, с похожими именами:
  • if-pre-up.d - каталог скриптов, запускающихся ДО настройки интерфейса
  • if-up.d - каталог скриптов, запускающихся "во время" команды настройк, но до того как интерфейс обозначается как up.
  • if-down.d - каталог скриптов, запускающихся ДО команды снятия интерфейса
  • if-post-down.d - каталог скриптов, запускающихся ПОСЛЕ команды снятия интерфейса
Все скрипты из этих каталогов получают несколько специальных переменных для определения с каким интерфейсом их команда настройки была запущена, на каком этапе команда, специальный PATH, и т.п.
возможное применение:
можно написать 1 скрипт, который для eth0 будет добавлять 1 маршрут, а для eth1 - другой, и т.д.
скритпы в каждом каталоге запускаются в алфавитном порядке.

то что тебе надо - это
  • добавить в каталог if-post-up. скриптик addroutes (имя не важно) с маршрутами для каждого поднявшегося интерфейса
  • добавить скриптик rmroutes в if-pre-down.d, соответственно
в "РедХат"ых системах, напр. в SLES10, почти идентичный механизм в /etc/sysconfig/network/scripts
думаю в Mandriva есть схожий механизм, тоже, и в том же месте.

Стоит почитать однако доки, насчет конвенций к окружению данных скриптов, а именно:
  • когда они запускаются
  • как они получают арггументы
  • в каком порядке в каталоге они запускаются
  • может есть шаблончик для таких скриптов
удачи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)