Настройка CARP
Обзор
На этой странице описана настройка резервного брандмауэра с возможностью автоматического переключения при отказе. Далее будут приведены последовательные шаги, как создать настройку на основе двух сетей. Сеть 192.168.1.0/24
будет использоваться как внутренняя, а 172.16.0.0/24
- для маршрутизации нашего трафика в интернет.
При использовании 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.
Настройка интерфейсов и основных правил брандмауэра
В нашем примере, 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-адреса, как показано ниже:Тип |
Carp |
Интерфейс |
LAN |
IP-адрес |
192.168.1.222/24 |
Пароль |
ting |
VHID группа |
3 |
Частота публикации |
Base 1 / Skew 0 |
Описание |
Виртуальный IP-адрес CARP-группы на LAN-стороне |
Тип |
Carp |
Интерфейс |
WAN |
IP-адрес |
10.1.1.222/24 |
Пароль |
ting |
VHID группа |
1 |
Частота публикации |
Base 1 / Skew 0 |
Описание |
Виртуальный IP-адрес CARP-группы на WAN-стороне |
Примечание
Настройка виртуальных адресов выполняется вручную только на основном устройстве. После настройки протокола XMLRPC, по нему основное устройство передаст настройки на резервное.
Настройки межсетевого экрана
На основном устройстве, в разделе
, создайте правила со следующими параметрами:Действие |
Разрешение |
---|---|
Интерфейс |
LAN |
Версия TCP/IP |
IPv4 |
Протокол |
CARP |
Описание |
Правило для разрешения CARP-трафика на LAN-интерфейсе |
Действие |
Разрешение |
---|---|
Интерфейс |
WAN |
Версия TCP/IP |
IPv4 |
Протокол |
CARP |
Описание |
Правило для разрешения CARP-трафика на WAN-интерфейсе |
Действие |
Разрешение |
---|---|
Интерфейс |
pfSync |
Версия TCP/IP |
IPv4 |
Протокол |
Любой |
Описание |
Правило для разрешения любого трафика на PFSYNC-интерфейсе |
На резервном устройстве, в разделе
, создайте правило со следующими параметрами:Действие |
Разрешение |
---|---|
Интерфейс |
PFSYNC |
Версия TCP/IP |
IPv4 |
Протокол |
Любой |
Описание |
Правило для разрешения любого трафика на PFSYNC-интерфейсе |
Примечание
Правила для пропуска CARP-трафика достаточно создать только на основном устройстве. Эти правила будут переданы на резервное устройство после того, как будет настроен механизм XMLRPC Sync. Правила для пропуска pfSync-трафика нужно создать и на основном и на резервном устройствах.
Настройка NAT
Настройка CARP-кластера требует перенастройки NAT, так как теперь именно виртуальный IP-адрес, используемый с WAN-стороны, должен прописываться в пакетах при их преобразовании механизмом NAT.
На основном устройстве, в разделе Исходящий. Далее, выберите Ручное создание правил исходящего NAT (правила не будут созданы автоматически).
, выберите разделНайдите два правила, которые обеспечивают NAT для внутренней сети. Внутренняя сеть в нашем примере использует адресный блок 192.168.1.0/24
, поэтому мы ищем правила, у которых в качестве источника сеть 192.168.1.0/24
.
Измените данные правила так, чтобы в поле Транслируемый IP-адрес / целевой IP-адрес был указан виртуальный IP-адрес, используемый на WAN-стороне. В нашем примере, это IP-адрес 10.1.1.222
.
Примечание
Настройка NAT выполняется вручную только на основном устройстве. После настройки протокола XMLRPC Sync, по нему основное устройство передаст настройки на резервное.
Настройка pfSync
Для включения pfSync проделайте следующие действия.
Пройдите в раздел
и установите флажок Синхронизировать состояния.Выберите интерфейс, через который будет осуществляться передача pfSync-трафика - в нашем случае, это адаптер pfSync.
Примечание
Данные настройки выполняются вручную и на основном и на резервном устройствах.
Настройка XMLRPC Sync
Примечание
Настройка XMLRPC Sync выполняется только на основном устройстве.
Для включения XMLRPC Sync проделайте следующие действия.
На основном устройстве, пройдите в раздел
.В блоке настроек Настройки синхронизации конфигурации (XMLRPC Sync), в поле Синхронизировать конфигурацию с IP-адресом, укажите адрес резервного устройства, т.е. 172.16.0.2
в нашем примере.
В поле Имя пользователя удаленной системы укажите имя пользователя, под которым основное устройство будет получать доступ к веб-конфигуратору на резервном устройстве (по умолчанию: root
).
В поле Пароль удаленной системы укажите пароль, с которым мастер-устройство будет получать доступ к веб-конфигуратору на резервном устройстве (по умолчанию: ting
).
Укажите типы настроек, которые будут переданы на резервное устройство в соответствии со скриншотом:
Настройка DHCP (опционально)
Если на основном устройстве используется DHCP-сервер, то он потребует перенастройки.
В разделе 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 можно посмотреть в разделе
.На основном устройстве должен отображаться статус ВЕДУЩЕЕ УСТРОЙСТВО
:
На резервном устройстве должен отображаться статус РЕЗЕРВНЫЙ
:
Статус работы XMLRPC Sync проверяется только на основном устройстве в разделе
.Таблицу состояний для соединений, обрабатываемых межсетевым экраном, можно увидеть в разделе
. При настроенном и рабочем pfSync, состояния будут одинаковыми на обоих устройствах TING.Проверьте работу кластера:
Выключите питания у мастер-устройства. Резервное устройство должно перейти в статус основного устройства.
Отключите сетевой кабель Ethernet из LAN-адаптера мастер-устройства. Резервное устройство должно перейти в статус основного устройства.
Установите SSH-подключение с клиентского компьютера во внутренней сети к некоторому хосту в Интернете. Выключите сетевой кабель Ethernet из LAN-адаптера основного устройства. Обработка соединения должна быть перехвачена резервным устройством.