Сервер - статьи

       

FreeBSD 5.5 CARP


Для FreeBSD вполне хватит встроенной документации (carp(4), sysctl(3), ifconfig(8)). Для общего развития можно прочитать документ “Firewall Failover with pfsync and CARP” Ryan McBride. В принципе этих статьей (как всегда) вполне достаточно для работы, приведу небольшую выдержку из основных настроек.

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

Процедура настройки состоит из следующих этапов

  1. Ядро должно быть собрано со следующей опцией: device carp #Common Address Redundancy Protocol
  2. Настройка ядра
    • net.inet.carp.allow - принимать входящие пакеты carp. (default 1)
    • net.inet.carp.preempt - позволяет виртуальным хостам резервировать друг друга. (default 0).
    • net.inet.carp.log – ведение логов 0,1,2. ( default 1).

    • net.inet.carp.arpbalance - балансировка локального трафика. (default 0)
  3. создание сетевого carp интерфейса ifconfig carpN create. Настраиваемые параметры:
    • advbase и advskew, используются для настройки интервалов посылок объявлений главным хостом группы
    • pass служит для идентификации carp.
    • carpdev используется для определения интерфейса, на котором будет размещен carp.
    • vhid – идентификатор carp-интерфейса.

На сетевом интерфейсе уже должен присутствовать IP адрес из настраиваемой сети.

Пример, создаем виртуальный адрес 192.168.1.10:

Настраиваем ядро sysctl net.inet.carp.arpbalance=1

На 1 машине: ifconfig carp0 create ifconfig carp0 vhid 1 pass SecretPassword 192.168.1.10/24 ifconfig carp1 create ifconfig carp1 vhid 2 advskew 100 pass SecretPassword 192.168.1.10/24

на 2 машине ifconfig carp0 create ifconfig carp0 vhid 1 advskew 100 pass SecretPassword 192.168.1.10/24 ifconfig carp1 create ifconfig carp1 vhid 2 pass SecretPassword 192.168.1.10/24

И на последнем этапе определяем arp адрес и прописываем его на маршрутизаторе.

Содержание раздела