Добрый час!
Уважаемые пользователи, подскажите пожалуйста как лучше реализовать схему резервирования софт маршрутизатора на FreeBSD?
В данный момент используется следующая структура сети:
Линк от провайдера подключен к 2 порту (untagged) коммутатора (D-Link DES-3026), к первому порту (tagged) подключена машина с FreeBSD (FreeBSD 8.2-STABLE), 5 порт - trunk порт идет на следующий коммутатор к которому подключены абоненты. Машина выполняет функции маршрутизации трафика, DNS resolving и ipfw nat. Абонентов в сети порядка 70. До каждого абонента идет отдельный vlan. Некоторым выдается сеть /24 из серых ip-адресов, некоторым выдается 1 белый ip-адрес (то есть на vlan'e роутера 2.2.2.1/30, у пользователя 2.2.2.2/30).
Необходимо получить структуру при которой появился бы дополнительная машина на которую, в случае отказа первой, происходило бы переключение.
Первое что приходит на ум - это CARP. Но к сожалению я не до конца понимаю как его прикрутить к сети /30, для /24 понятно.
В связи с вышесказанным возникают следующие вопросы:
Реально ли использовать в данном случае CARP? Если да, то очень хотелось бы услышать решение. Если нет, то в как в таком случае реализовать подобную failover-схему?
Благодарю.
FreeBSD, резервирование маршрутизатора.
Получается большая кучка разных шлюзов по умолчанию, на которые нужно прикручивать CARP.
А если поднять CARP в одной подсети, между ним и абонентами поставить свитч или роутер, который будет форвардить пакеты от абонентов на CARP интерфейс по его IP адресу, и уже на этой железке раздавать вланы с сетями нужной ширины? Для абонента шлюз по умолчанию не меняется, пакеты в любом случае придут куда надо. Насколько я понимаю работу CARP, в этом случае корректно должно работать. Правда, тогда нужно отвязаться от адресов шлюза в настройках у абонентов (он может быть прописан в качестве DNS сервера) и раздать адреса CARP интерфейса. Или применить что-то вроде DNAT или DNS форвардинга, чтобы не трогать эти настройки.
А если поднять CARP в одной подсети, между ним и абонентами поставить свитч или роутер, который будет форвардить пакеты от абонентов на CARP интерфейс по его IP адресу, и уже на этой железке раздавать вланы с сетями нужной ширины? Для абонента шлюз по умолчанию не меняется, пакеты в любом случае придут куда надо. Насколько я понимаю работу CARP, в этом случае корректно должно работать. Правда, тогда нужно отвязаться от адресов шлюза в настройках у абонентов (он может быть прописан в качестве DNS сервера) и раздать адреса CARP интерфейса. Или применить что-то вроде DNAT или DNS форвардинга, чтобы не трогать эти настройки.
Спасибо за ответ. В данный момент склоняюсь к более простой схеме, а именно: поставить вторую машину, которая будет пинговать первую или телнетится на какой-нибудь порт на ней, в случае не удачи меняет у себя настройки заливает на коммутатор новый конфиг, в котором первый порт изменен на порт этой бэкапной машины и весь трафик идет через неё.