Добрый час!
Уважаемые пользователи, подскажите пожалуйста как лучше реализовать схему резервирования софт маршрутизатора на 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-схему?
> Линк от провайдера подключен к 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).Откройте для себя ip unnumbered
> Первое что приходит на ум - это CARP. Но к сожалению я
> не до конца понимаю как его прикрутить к сети /30, для
> /24 понятно.Нужно вторую машину соединить с первой череp персональную сеть/влан, чтоб можно было проверять доступность.
Настраиваете carp на первой машине с нужной маской /30 или даже /32
Вторая машина тупо пингует первую, если первая перестает отвечать, то вторая машина скриптом поднимает у себя нужный IP или еще и MAC и светит провайдеру.
Иногда еще придется изменять ip шлюза для внутренней сети.
>[оверквотинг удален]
>> Первое что приходит на ум - это CARP. Но к сожалению я
>> не до конца понимаю как его прикрутить к сети /30, для
>> /24 понятно.
> Нужно вторую машину соединить с первой череp персональную сеть/влан, чтоб можно было
> проверять доступность.
> Настраиваете carp на первой машине с нужной маской /30 или даже /32
> Вторая машина тупо пингует первую, если первая перестает отвечать, то вторая машина
> скриптом поднимает у себя нужный IP или еще и MAC и
> светит провайдеру.
> Иногда еще придется изменять ip шлюза для внутренней сети.Подскажите пожалуйста на примере одного из vlan'ов:
$ cat /etc/rc.confifconfig_vlan111="vlan 111 vlandev eth"
ifconfig_vlan111_alias0="2.2.2.1/28"адреса с 2 по 14 заняты пользователями, у них шлюз - 2.2.2.1. Я так понимаю что carp прикручивать некуда.
Если например было бы так:
$ cat /etc/rc.confifconfig_vlan111="vlan 111 vlandev eth"
ifconfig_vlan111_alias0="2.2.2.14/28"Предположим что заняты адреса с 2 по 13, в таком случае можно сделать так:
ifconfig_carp0="vhid 1 pass testpass 2.2.2.1/28"у пользователя шлюз 2.2.2.1 и все прекрасно фэиловерится.
Верно?
> Подскажите пожалуйста на примере одного из vlan'ов:
> $ cat /etc/rc.confНеправильно.
во-первых, eth - это интерфейс из линукса
во-вторых, rc.conf - это набор сценариев для выполнения shell команд.Для понимания, вы нарисуйте похожую схемку.
|---- vlan1 <server #1> vlan2 ---
|
ISP: no vlan --<switch L2>-|
|
|---- vlan1 <server #2> vlan2 ---Для правильной постановки задачи уточняю:
Вам провайдер выделил сеть белых адресов /28? один из IP он забрал себе на шлюз?
>[оверквотинг удален]
>
> |
>
>
> |---- vlan1 <server #2> vlan2
> ---
>
eth - просто так обозначил сетевой адаптер чтобы не уточнять модель. Если быть более точным, то на машине сетевая карта Broadcom, а драйвер bge.
В rc.conf прописаны cloned_interfaces и vlan'ы в виде, который приводился мною выше. Согласен что не очень удобно, но так исторически сложилось в нашей организации.
Провайдер выдал нам две сети /25, которые статично смаршрутизированы на нашу машину. Мы, в свою очередь, раздаем абонентам адреса.
На вилне который смотрит в сторону провайдера адресация x.x.x.254/30
defaultrouter="x.x.x.253"
Пример с /28 сеткой - это один из вланов, адреса из которого принадлежат абонентам (в нашем случае исключение из правила vlan per user). Хотелось бы на данном примере понять как внедрить вторую машину и использовать CARP.
Спасибо.
>[оверквотинг удален]
> Согласен что не очень удобно, но так исторически сложилось в нашей
> организации.
> Провайдер выдал нам две сети /25, которые статично смаршрутизированы на нашу машину.
> Мы, в свою очередь, раздаем абонентам адреса.
> На вилне который смотрит в сторону провайдера адресация x.x.x.254/30
> defaultrouter="x.x.x.253"
> Пример с /28 сеткой - это один из вланов, адреса из которого
> принадлежат абонентам (в нашем случае исключение из правила vlan per user).
> Хотелось бы на данном примере понять как внедрить вторую машину и
> использовать CARP.Если вам провайдер вам организовал канал /30, то CARP в нынешней реализации не будет работать.
Если хотите устойчивости, то клонируйте настройки на второй тазик.
И запускаете простой скрипт, который по неответу по пингу первого тазика запускает скрипты, которые поднимает сетевые настройки на внутреннем и внешнем интерфейсе.
Ессно на стороне свитча прописаны нужные вланы.
>[оверквотинг удален]
>> Пример с /28 сеткой - это один из вланов, адреса из которого
>> принадлежат абонентам (в нашем случае исключение из правила vlan per user).
>> Хотелось бы на данном примере понять как внедрить вторую машину и
>> использовать CARP.
> Если вам провайдер вам организовал канал /30, то CARP в нынешней реализации
> не будет работать.
> Если хотите устойчивости, то клонируйте настройки на второй тазик.
> И запускаете простой скрипт, который по неответу по пингу первого тазика запускает
> скрипты, которые поднимает сетевые настройки на внутреннем и внешнем интерфейсе.
> Ессно на стороне свитча прописаны нужные вланы.Ясно. Спасибо. Просто хотел сделать более красивое решение с карпом.
> Ясно. Спасибо. Просто хотел сделать более красивое решение с карпом.Просите, чтоб провайдер соорудил ip unnumbered
и у вас будет три ip вместо одного :)