Настройка CARP

Обзор

На этой странице описана настройка резервного брандмауэра с возможностью автоматического переключения при отказе. Далее будут приведены последовательные шаги, как создать настройку на основе двух сетей. Сеть 192.168.1.0/24 будет использоваться как внутренняя, а 172.16.0.0/24 - для маршрутизации нашего трафика в интернет.

../../_images/carp-cluster.png

При использовании CARP , все отказоустойчивые интерфейсы должны иметь выделенный IP-адрес, который будет объединён с одним общим виртуальным IP-адресом для связи с обеими сетями. На рисунке выше, пунктирные линии использованы для обозначения виртуальных адресов.

Терминология

CARP (Common Address Redundancy Protocol)

Технология и сетевой протокол, обеспечивающий возможность нескольким хостам, подключенным в один и тот же LAN-сегмент, использовать один и тот же общий виртуальный IP-адрес. CARP определяет, какое из устройств группы должно обрабатывать трафик для виртуального IP-адреса в данный момент. Если мастер-устройство не может выполнять свои функции, то ответственным за виртуальный IP-адрес становится другое устройство группы.

CARP - свободная реализацией протокола VRRP (Virtual Router Redundancy Protocol).

В процессе настройки CARP, на каждом хосте добавляется общий, совместно используемый, виртуальный IP-адрес. Для виртуального IP-адреса указываются специфичные для CARP-технологии параметры - VHID, advbase, advskew, пароль.

VHID (Virtual Host ID)

Уникально идентифицирует несколько хостов, подключенных в один и тот же LAN-сегмент. На данных машинах настраивается один и тот же VHID. Допускается значение от 1 до 255.

advbase (advertisement base)

Задает как часто, в секундах, хост рассылает CARP-сообщения. По умолчанию, используется значение 1 секунда. Допускается значение от 1 до 255.

advskew (advertisement skew)

Для определения, какой из резервных хостов подменит мастер-устройство в случае его выхода из строя, хосты имеют настроенный параметр advskew. Меньшее значение advskew означает больший приоритет - мастер-устройство в группе имеет значение, равное 0. Измеряется в 1/256 секунды; допускается значение от 0 до 254.

Пароль

Используется для аутентификации CARP-сообщений между членами группы.

CARP может обеспечивать общий разделяемый виртуальный IP-адрес для группы обычных серверов, как правило, подключённых к одному LAN-сегменту. В этом случае, создается одна CARP-группа, обеспечивающая один виртуальный IP-адрес.

Технология CARP особенно актуальна в контексте межсетевых экранов / маршрутизаторов, имеющих подключение, как минимум, к двум разным LAN-сегментам. Для таких межсетевых экранов / маршрутизаторов, обычно, создают две CARP-группы: одну с LAN-стороны, а другую - с WAN-стороны. Каждая группа обеспечивает виртуальный IP-адрес, а в общей сложности, обеспечиваются два виртуальных IP-адреса.

CARP-пакеты инкапсулируются в IP-пакеты и имеют идентификатор ID 112 в заголовке IP-пакета. CARP-трафик передается в открытом нешифрованном виде.

При том, что CARP обеспечивает совместно используемый виртуальный IP-адрес, он также требует, чтобы каждый хост в CARP-группе подключался к LAN-сегменту посредством физического адаптера, которому присвоен обычный, уникальный IP-адрес.

Хост в CARP-группе отсылает Ethernet-кадры с MAC-адресом источника 00:00:5E:00:XX, где XX равен идентификатору VHID CARP-группы, на мультивещательный MAC-адрес 01:00:5e:00:00:12. На уровне IP, пакеты отсылаются с IP-адреса, присвоенного физическому адаптеру, на мультивещательный IP-адрес 224.0.0.18.

CARP может использоваться самостоятельно (в случае с обычными серверами), но если стоит задача обеспечить виртуальные IP-адреса для межсетевых экранов, то дополнительно к CARP используется протокол pfSync.

pfSync

Сетевой протокол для синхронизации состояния между несколькими экземплярами межсетевого экрана Packet Filter, выполняющимися на разных хостах.

При переключении на резервный межсетевой экран нужно обеспечить, чтобы он «знал» о всех соединениях, которые обрабатывал межсетевой экран, до этого являвшийся мастер-устройством. Эти функции и берет на себя pfSync.

pfSync-пакеты инкапсулируются в IP-пакеты и имеют идентификатор ID 240 в заголовке IP-пакета. pfSync-трафик передается в открытом нешифрованном виде.

pfSync включается на определенном физическом сетевом адаптере межсетевого экрана. На канальном уровне, pfSync-пакеты отсылаются с MAC-адреса физического адаптера, на мультивещательный MAC-адрес 01:00:5e:00:00:f0. На уровне IP, pfSync-пакеты отсылаются с IP-адреса, присвоенного физическому адаптеру, на мультивещательный IP-адрес 224.0.0.240.

Протокол pfSync редко используется самостоятельно, чаще всего он применяется в связке с протоколом CARP.

Совет

Рекомендуется использовать выделенный интерфейс для пакетов pfSync между хостами, как по соображениям безопасности (инъекция состояния), так и для производтельности.

Предупреждение

При использовании различных сетевых драйверов на обеих машинах, например, при работе кластера высокой доступности на одной физической машине в качестве ведущей и виртуальной машиной, в качестве ведомой, состояния не могут быть синхронизированы, поскольку имена интерфейсов отличаются. Единственным обходным решением является настройка LAGG.

XMLRPC Sync

Сетевой протокол для синхронизации настроек между резервным сервером и основным. Находится в разделе Система ‣ Высокий уровень доступности ‣ Настройки.

В рамках работы XMLRPC, мастер-устройство связывается с резервным устройством по защищенному SSL/TLS-соединению и передает выбранные настройки.

Протокол XMLRPC Sync редко используется самостоятельно - чаще всего он используется в связке с протоколом CARP, и, возможно, pfSync.

Настройка интерфейсов и основных правил брандмауэра

../../_images/carp-cluster.png

В нашем примере, LAN-интерфейсы устройств TING подключены к сети 192.168.1.0/24 (это внутренняя сеть организации). WAN-интерфейсы устройств TING подключены к сети 10.1.1.0/24 (это сеть, подключенная к Интернет).

На первом устройстве кластера, физическим сетевым картам назначены следующие адреса: 192.168.1.1 (LAN-интерфейс) и 10.1.1.115 (WAN-интерфейс).

На втором устройстве кластера, физическим сетевым адаптерам назначены следующие адреса: 192.168.1.2 (LAN-интерфейс) и 10.1.1.150 (WAN-интерфейс).

В процессе настройки, устройства кластера получат возможность использовать общий виртуальный IP-адрес 192.168.1.222 на LAN-стороне и общий виртуальный IP-адрес 10.1.1.222 на WAN-стороне. Для этого будут созданы две CARP-группы с VHID 1 и 3.

Обмен pfSync-трафиком ведется через отдельный Ethernet-кабель, который соединяет сетевой адаптер с IP-адресом 172.16.0.1 на одном устройстве с сетевым адаптером с IP-адресом 172.16.0.2 на другом устройстве.

Примечание

pfSync передается в открытом виде. Настоятельно рекомендуем использовать отдельный Ethernet-кабель для обмена pfSync-трафиком между устройствами по причинам безопасности и производительности.

Настройки физических интерфейсов и их IP-адресов

У каждого хоста в кластере должны быть собственные обычные IP-адреса.

На основном устройстве, в разделе Интерфейсы, настройте следующие интерфейсы / IP-адреса / маски:

LAN

192.168.1.1/24

WAN

10.1.1.115/24

PFSYNC

172.16.0.1/30

На резервном устройстве, в разделе Интерфейсы, настройте следующие интерфейсы / IP-адреса / маски:

LAN

192.168.1.2/24

WAN

10.1.1.150/24

PFSYNC

172.16.0.2/30

Примечание

В данном случае, pfSync - это название, присвоенное обычному физическому сетевому адаптеру. Данный физический адаптер не стоит путать со специальным виртуальным сетевым адаптером pfsync0, который необходим для работы протокола pfSync и который можно увидеть в выводе команды ifconfig.

Примечание

Задание длины префикса отличного от 32 для сети 172.16.0.0, избавляет от необходимости прописывать маршрут к сети 172.16.0.0 в таблице маршрутизации вручную. При задании длины префикса отличной от 32, такой маршрут создается автоматически.

Настройка CARP и виртуальных IP-адресов

На основном устройстве, пройдите в раздел Интерфейсы ‣ Виртуальные IP-адреса и добавьте два виртуальных IP-адреса, как показано ниже:

Виртуальный IP-адрес 192.168.1.222 на LAN-стороне

Тип

Carp

Интерфейс

LAN

IP-адрес

192.168.1.222/24

Пароль

ting

VHID группа

3

Частота публикации

Base 1 / Skew 0

Описание

Виртуальный IP-адрес CARP-группы на LAN-стороне

Виртуальный IP-адрес 10.1.1.222 на на WAN-стороне

Тип

Carp

Интерфейс

WAN

IP-адрес

10.1.1.222/24

Пароль

ting

VHID группа

1

Частота публикации

Base 1 / Skew 0

Описание

Виртуальный IP-адрес CARP-группы на WAN-стороне

Примечание

Настройка виртуальных адресов выполняется вручную только на основном устройстве. После настройки протокола XMLRPC, по нему основное устройство передаст настройки на резервное.

Настройки межсетевого экрана

На основном устройстве, в разделе Межсетевой экран ‣ Правила, создайте правила со следующими параметрами:

Правило для разрешения CARP-трафика на LAN-интерфейсе

Действие

Разрешение

Интерфейс

LAN

Версия TCP/IP

IPv4

Протокол

CARP

Описание

Правило для разрешения CARP-трафика на LAN-интерфейсе

Правило для разрешения CARP-трафика на WAN-интерфейсе

Действие

Разрешение

Интерфейс

WAN

Версия TCP/IP

IPv4

Протокол

CARP

Описание

Правило для разрешения CARP-трафика на WAN-интерфейсе

Правило для разрешения любого трафика (в том числе pfSync и XMLRPC Sync) на pfSync-интерфейсе

Действие

Разрешение

Интерфейс

pfSync

Версия TCP/IP

IPv4

Протокол

Любой

Описание

Правило для разрешения любого трафика на PFSYNC-интерфейсе

На резервном устройстве, в разделе Межсетевой экран ‣ Правила, создайте правило со следующими параметрами:

Правило для разрешения любого трафика (в том числе pfSync и XMLRPC Sync) на pfSync-интерфейсе

Действие

Разрешение

Интерфейс

PFSYNC

Версия TCP/IP

IPv4

Протокол

Любой

Описание

Правило для разрешения любого трафика на PFSYNC-интерфейсе

Примечание

Правила для пропуска CARP-трафика достаточно создать только на основном устройстве. Эти правила будут переданы на резервное устройство после того, как будет настроен механизм XMLRPC Sync. Правила для пропуска pfSync-трафика нужно создать и на основном и на резервном устройствах.

Настройка NAT

Настройка CARP-кластера требует перенастройки NAT, так как теперь именно виртуальный IP-адрес, используемый с WAN-стороны, должен прописываться в пакетах при их преобразовании механизмом NAT.

На основном устройстве, в разделе Межсетевой экран ‣ NAT, выберите раздел Исходящий. Далее, выберите Ручное создание правил исходящего NAT (правила не будут созданы автоматически).

Найдите два правила, которые обеспечивают NAT для внутренней сети. Внутренняя сеть в нашем примере использует адресный блок 192.168.1.0/24, поэтому мы ищем правила, у которых в качестве источника сеть 192.168.1.0/24.

Измените данные правила так, чтобы в поле Транслируемый IP-адрес / целевой IP-адрес был указан виртуальный IP-адрес, используемый на WAN-стороне. В нашем примере, это IP-адрес 10.1.1.222.

../../_images/nat_rules.png

Примечание

Настройка NAT выполняется вручную только на основном устройстве. После настройки протокола XMLRPC Sync, по нему основное устройство передаст настройки на резервное.

Настройка pfSync

Для включения pfSync проделайте следующие действия.

Пройдите в раздел Система ‣ Высокий уровень доступности и установите флажок Синхронизировать состояния.

Выберите интерфейс, через который будет осуществляться передача pfSync-трафика - в нашем случае, это адаптер pfSync.

../../_images/pfsync_settings.png

Примечание

Данные настройки выполняются вручную и на основном и на резервном устройствах.

Настройка XMLRPC Sync

Примечание

Настройка XMLRPC Sync выполняется только на основном устройстве.

Для включения XMLRPC Sync проделайте следующие действия.

На основном устройстве, пройдите в раздел Система ‣ Высокий уровень доступности.

В блоке настроек Настройки синхронизации конфигурации (XMLRPC Sync), в поле Синхронизировать конфигурацию с IP-адресом, укажите адрес резервного устройства, т.е. 172.16.0.2 в нашем примере.

В поле Имя пользователя удаленной системы укажите имя пользователя, под которым основное устройство будет получать доступ к веб-конфигуратору на резервном устройстве (по умолчанию: root).

В поле Пароль удаленной системы укажите пароль, с которым мастер-устройство будет получать доступ к веб-конфигуратору на резервном устройстве (по умолчанию: ting).

Укажите типы настроек, которые будут переданы на резервное устройство в соответствии со скриншотом:

../../_images/xmlrpcsync_settings.png

Настройка DHCP (опционально)

Если на основном устройстве используется DHCP-сервер, то он потребует перенастройки.

В разделе Службы ‣ DHCPv4 ‣ LAN], в поле Шлюз, пропишите виртуальный IP-адрес, используемый на LAN-стороне. В нашем примере, это IP-адрес 192.168.1.222.

Если используется функционал форвардинга DNS-запросов, то IP-адрес 192.168.1.222 нужно будет также прописать в поле DNS-серверы в настройках DHCP-сервера.

Все пользователи должны использовать в качестве адреса шлюза по умолчанию именно виртуальный IP-адрес, а не физический IP-адрес на LAN-интерфейсе.

DNS-серверы

192.168.1.222

Шлюз

192.168.1.222

Проверка работоспособности кластера

Для того, чтобы все настройки были применены, перезагрузите оба сетевых экрана.

Статус работы CARP можно посмотреть в разделе Интерфейсы ‣ Виртуальные IP-адреса ‣ Статус.

На основном устройстве должен отображаться статус ВЕДУЩЕЕ УСТРОЙСТВО:

../../_images/status_master.png

На резервном устройстве должен отображаться статус РЕЗЕРВНЫЙ:

../../_images/status_slave.png

Статус работы XMLRPC Sync проверяется только на основном устройстве в разделе Система ‣ Высокий уровень доступности ‣ Статус.

../../_images/status_pfsync_xmlrpcsync.png

Таблицу состояний для соединений, обрабатываемых межсетевым экраном, можно увидеть в разделе Межсетевой экран ‣ Диагностика ‣ Снимок состояний. При настроенном и рабочем pfSync, состояния будут одинаковыми на обоих устройствах TING.

../../_images/state_table.png

Проверьте работу кластера:

  • Выключите питания у мастер-устройства. Резервное устройство должно перейти в статус основного устройства.

  • Отключите сетевой кабель Ethernet из LAN-адаптера мастер-устройства. Резервное устройство должно перейти в статус основного устройства.

  • Установите SSH-подключение с клиентского компьютера во внутренней сети к некоторому хосту в Интернете. Выключите сетевой кабель Ethernet из LAN-адаптера основного устройства. Обработка соединения должна быть перехвачена резервным устройством.