Дистрибутив, названный ipcop, существует с 2007 и разработан точно для Вашей цели. http://distrowatch.com/table.php?distribution=ipcop
Я думаю, что существует много причин сильно в пользу ipcop, которые помещают его перед набором:
Как другое сообщение упоминает, pfsense может быть интересен, большая разница - то, что pfsense (как moonwall) основан на FreeBSD, не на Linux.
Можно добавить вызовы к 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
Команда выполнения после перевода в рабочее состояние интерфейса. Если эта команда приводит к сбою затем ifup аварийные прекращения работы, воздерживаясь от маркировки интерфейса, как настроено (даже при том, что это было действительно настроено), печатает сообщение об ошибке и выходит с состоянием 0.предвниз
command
Команда выполнения перед приведением в нерабочее состояние интерфейса. Если эта команда сбои затем ifdown аварийные прекращения работы, отмечает интерфейс как deconfigured (даже при том, что это действительно не был deconfigured), и выходит с состоянием 0.
Кроме того, на Linux “сетевые инструменты” route
удерживается от использования и должен быть заменен инструментами от iproute2 пакета.
Дальнейшее чтение:
/etc/network/interfaces
? И как я знаю, что, когда пост работает, rule-to-be-removed уже существует? В странице справочника не говорится, в каком моменте времени она создается. – Martin Vegter 26.07.2013, 23:40/etc/init.d
и займитесь расследованиями, которые возможно могли переделать таблицу маршрутизации. Также взгляните в/etc/network
включая подкаталоги. об/мин – Marco 26.07.2013, 23:49post-up
иpre-down
псевдонимы дляup
иdown
, соответственно. И добавление a|| :
в конце строки позволяет команде приводить к сбою и не нарушать ifup/ifdown. Я обычно добавляю это кroute del
, в случае, если маршрут еще не существует и следовательно не может быть удален. – Tino 22.02.2015, 21:02