CARP и Virtual IPs в pfSense - настройка кластера HA
CARP (Common Address Redundancy Protocol) - протокол отказоустойчивости сетевого уровня, разработанный командой OpenBSD как свободная от патентных ограничений альтернатива Cisco HSRP и стандарту VRRP. В pfSense CARP обеспечивает автоматическое переключение виртуальных IP-адресов между узлами кластера при отказе основного узла. Клиенты сети обращаются к виртуальному адресу (CARP VIP), который всегда обслуживается активным узлом - переключение происходит прозрачно, без необходимости изменения сетевых настроек на клиентских устройствах.
Каждый узел кластера периодически отправляет heartbeat-сообщения по каждому интерфейсу, на котором сконфигурирован CARP VIP. При стандартных параметрах частоты (base 1, skew 0 для master) heartbeat отправляется примерно раз в секунду. Узел с наименьшим значением skew отправляет heartbeat быстрее и принимает роль master. Если backup-узел перестаёт получать heartbeat в течение заданного интервала, он повышает свой статус до master и начинает обрабатывать трафик, направленный на CARP VIP.
Требования к IP-адресации
Корректная работа CARP-кластера требует тщательного планирования адресного пространства. Для каждого сетевого интерфейса, участвующего в отказоустойчивости, необходимо выделить минимум три IP-адреса в одной подсети.
Схема адресации
| Назначение | WAN | LAN | Sync |
|---|---|---|---|
| Primary node | 198.51.100.201/24 | 192.168.1.2/24 | 172.16.1.2/24 |
| Secondary node | 198.51.100.202/24 | 192.168.1.3/24 | 172.16.1.3/24 |
| CARP VIP | 198.51.100.200/24 | 192.168.1.1/24 | - |
Sync-интерфейс не требует CARP VIP, поскольку он используется исключительно для прямого обмена данными между узлами кластера (pfsync и XMLRPC).
Требования к размеру подсетей
Для WAN-интерфейса минимально необходима подсеть /29 (6 usable-адресов), позволяющая разместить два адреса узлов, CARP VIP и адрес шлюза провайдера. В production-средах рекомендуется использовать /28 или шире для обеспечения запаса адресов при расширении кластера или добавлении дополнительных CARP VIP.
Для LAN-интерфейса ограничений на размер подсети обычно нет - стандартная подсеть /24 предоставляет достаточный адресный ресурс.
Внимание:
CARP VIP должен находиться в той же подсети, что и индивидуальные адреса узлов на данном интерфейсе. Использование адреса из другой подсети приведёт к неработоспособности CARP на этом интерфейсе.
Адресация для дополнительных интерфейсов
При наличии дополнительных интерфейсов (DMZ, OPT1, OPT2 и т.д.) каждый из них требует аналогичной схемы с тремя адресами. Следует заранее документировать план адресации для всех интерфейсов кластера, чтобы избежать конфликтов и упростить диагностику.
| Интерфейс | Primary | Secondary | CARP VIP |
|---|---|---|---|
| WAN | .201 | .202 | .200 |
| LAN | .2 | .3 | .1 |
| DMZ | 10.0.1.2 | 10.0.1.3 | 10.0.1.1 |
| OPT1 | 10.0.2.2 | 10.0.2.3 | 10.0.2.1 |
| Sync | 172.16.1.2 | 172.16.1.3 | - |
Подготовка оборудования
Надёжность HA-кластера напрямую зависит от качества подготовки аппаратной платформы и сетевой инфраструктуры.
Требования к оборудованию узлов
Оба узла кластера должны иметь идентичную конфигурацию сетевых интерфейсов. Это критическое требование - pfSense выполняет синхронизацию конфигурации через XMLRPC на основании порядка назначения интерфейсов (interface assignment). Если порядок интерфейсов различается между узлами, синхронизация правил файрвола, NAT и других параметров приведёт к некорректным результатам.
Рекомендации по оборудованию:
- Идентичные модели сетевых адаптеров на обоих узлах для обеспечения одинакового порядка назначения интерфейсов
- Одинаковая версия pfSense на обоих узлах
- Достаточный объём оперативной памяти для хранения таблицы состояний (pfsync реплицирует все состояния)
- Раздельные источники питания для исключения единой точки отказа
Внимание:
Интерфейсы на обоих узлах должны быть назначены в строго одинаковом порядке. Если на primary-узле WAN назначен на igb0, LAN на igb1 и Sync на igb2, то на secondary-узле должно быть точно такое же соответствие. Несовпадение приведёт к некорректной синхронизации конфигурации.
Выделенный интерфейс синхронизации
Для обмена данными pfsync и XMLRPC между узлами необходимо выделить отдельный сетевой интерфейс. Использование LAN или WAN-интерфейса для синхронизации технически возможно, но крайне не рекомендуется по следующим причинам:
- Трафик синхронизации состояний может быть значительным при высокой нагрузке
- pfsync передаёт данные в открытом виде - перехват на общем сегменте представляет угрозу безопасности
- Выделенный интерфейс исключает влияние основного трафика на синхронизацию
Sync-интерфейс следует подключать напрямую кроссовер-кабелем между узлами или через выделенный VLAN на коммутаторе, изолированный от общего трафика.
Конфигурация коммутатора
Коммутатор, к которому подключены оба узла кластера, должен поддерживать следующие функции:
| Требование | Описание |
|---|---|
| Multicast-трафик | CARP в режиме multicast использует адрес 224.0.0.18. Коммутатор не должен блокировать или фильтровать этот трафик |
| Несколько MAC-адресов на порту | Каждый CARP VIP использует виртуальный MAC-адрес формата 00:00:5e:00:01:XX (где XX - VHID) |
| Миграция MAC-адресов | При переключении master виртуальный MAC перемещается на другой порт коммутатора |
На управляемых коммутаторах необходимо проверить, что функции port security, MAC address limiting или DHCP snooping не блокируют работу CARP. Эти механизмы защиты могут интерпретировать появление нового MAC-адреса на порту или multicast-трафик CARP как аномалию.
В средах, где multicast-трафик недоступен или заблокирован (некоторые cloud-провайдеры, определённые конфигурации коммутаторов), pfSense Plus поддерживает unicast-режим CARP. В этом режиме heartbeat-сообщения отправляются напрямую на IP-адрес партнёрского узла вместо multicast-группы.
Создание Virtual IP
Виртуальные IP-адреса CARP создаются через веб-интерфейс pfSense в разделе Firewall > Virtual IPs. Настройка выполняется только на primary-узле - при корректно настроенной синхронизации XMLRPC виртуальные адреса автоматически реплицируются на secondary-узел.
Параметры CARP VIP
При создании нового Virtual IP типа CARP необходимо указать следующие параметры:
| Параметр | Описание | Рекомендация |
|---|---|---|
| Type | Тип виртуального IP | Выбрать CARP |
| Interface | Интерфейс привязки | WAN, LAN или другой интерфейс |
| Address(es) | IP-адрес и маска подсети | Адрес из подсети интерфейса, маска совпадает с маской интерфейса |
| Virtual IP Password | Пароль для аутентификации CARP | Сгенерировать случайную строку, одинаковую на обоих узлах |
| VHID Group | Идентификатор виртуальной группы (1-255) | Уникальный в пределах broadcast-домена |
| Advertising Frequency | Base и Skew для управления приоритетом | Base: 1, Skew: 0 для master |

Рис. 1. Создание Virtual IP типа CARP
Назначение VHID
VHID (Virtual Host ID) - уникальный идентификатор виртуальной группы CARP в пределах одного broadcast-домена (VLAN или физического сегмента). Значение VHID находится в диапазоне от 1 до 255.
Рекомендуемая схема назначения VHID:
| Интерфейс | Протокол | VHID |
|---|---|---|
| WAN | IPv4 | 200 |
| WAN | IPv6 | 201 |
| LAN | IPv4 | 1 |
| LAN | IPv6 | 2 |
| DMZ | IPv4 | 10 |
| OPT1 | IPv4 | 20 |
Значения VHID не должны пересекаться в пределах одного broadcast-домена. Если в сегменте присутствуют несколько независимых CARP-кластеров (например, два кластера pfSense на одном WAN-сегменте), каждый из них должен использовать уникальные VHID.
Внимание:
Конфликт VHID между независимыми кластерами в одном broadcast-домене приводит к непредсказуемому поведению - оба кластера будут конкурировать за одну виртуальную группу, вызывая постоянные переключения ролей master/backup.
Advertising Frequency
Параметр Advertising Frequency определяет частоту отправки CARP heartbeat и состоит из двух компонентов:
- Base - базовый интервал в секундах (по умолчанию 1)
- Skew - дополнительная задержка в единицах 1/256 секунды
Узел с наименьшим значением (base + skew/256) отправляет heartbeat чаще и становится master. На primary-узле следует использовать skew 0, на secondary - skew 100 или выше. Чем больше значение skew, тем ниже приоритет узла.
При синхронизации через XMLRPC значения skew автоматически корректируются на secondary-узле, обеспечивая правильную иерархию приоритетов.
Настройка CARP на Primary
Конфигурация CARP на основном узле выполняется в первую очередь. Все настройки впоследствии реплицируются на secondary через XMLRPC.
Предварительные условия
Перед созданием CARP VIP на primary-узле необходимо выполнить:
- Назначить все сетевые интерфейсы через Interfaces > Interface Assignments
- Сконфигурировать статические IP-адреса на каждом интерфейсе (WAN, LAN, Sync)
- Убедиться, что primary-узел имеет сетевой доступ к шлюзу провайдера
- Задать уникальное hostname для primary-узла через System > General Setup
Создание WAN CARP VIP
Перейти в Firewall > Virtual IPs и нажать Add.
Заполнить параметры:
| Параметр | Значение |
|---|---|
| Type | CARP |
| Interface | WAN |
| Address(es) | 198.51.100.200/24 |
| Virtual IP Password | (случайная строка) |
| VHID Group | 200 |
| Advertising Frequency | Base: 1, Skew: 0 |
| Description | WAN CARP VIP |
Нажать Save, затем Apply Changes.

Рис. 2. Параметры WAN CARP VIP на primary-узле
Создание LAN CARP VIP
Повторить процедуру для LAN-интерфейса:
| Параметр | Значение |
|---|---|
| Type | CARP |
| Interface | LAN |
| Address(es) | 192.168.1.1/24 |
| Virtual IP Password | (случайная строка) |
| VHID Group | 1 |
| Advertising Frequency | Base: 1, Skew: 0 |
| Description | LAN CARP VIP |
Нажать Save, затем Apply Changes.
Дополнительные интерфейсы
Для каждого дополнительного интерфейса (DMZ, OPT1, OPT2) необходимо создать отдельный CARP VIP по аналогичной процедуре. Каждый VIP должен иметь уникальный VHID в пределах своего broadcast-домена.
Пример для DMZ-интерфейса:
| Параметр | Значение |
|---|---|
| Type | CARP |
| Interface | DMZ |
| Address(es) | 10.0.1.1/24 |
| Virtual IP Password | (случайная строка) |
| VHID Group | 10 |
| Advertising Frequency | Base: 1, Skew: 0 |
| Description | DMZ CARP VIP |
IPv6 CARP VIP
При использовании двойного стека (dual-stack) для каждого IPv6-адреса необходимо создать отдельный CARP VIP с собственным VHID. Процедура аналогична IPv4, но в поле Address указывается IPv6-адрес с соответствующей длиной префикса.
| Параметр | Значение |
|---|---|
| Type | CARP |
| Interface | WAN |
| Address(es) | 2001:db8::200/64 |
| VHID Group | 201 |
| Advertising Frequency | Base: 1, Skew: 0 |
| Description | WAN CARP VIP IPv6 |
Настройка CARP на Secondary
Конфигурация secondary-узла выполняется после завершения настройки primary. При корректно работающей синхронизации XMLRPC CARP VIP создаются автоматически на secondary-узле. Если синхронизация ещё не настроена, виртуальные адреса необходимо создать вручную.
Предварительные условия
На secondary-узле необходимо выполнить:
- Назначить интерфейсы в точно таком же порядке, как на primary
- Задать уникальные статические IP-адреса на каждом интерфейсе (отличные от primary)
- Указать уникальное hostname через System > General Setup
- Убедиться в сетевой связности между узлами через sync-интерфейс
Внимание:
Не подключайте secondary-узел к LAN-коммутатору до тех пор, пока на нём не сконфигурированы уникальные адреса, отличные от адресов primary-узла. Подключение двух узлов с одинаковыми адресами к одному сегменту вызовет конфликт IP-адресов и потерю связности.
Ручное создание VIP на Secondary
Если XMLRPC-синхронизация ещё не настроена, создать CARP VIP вручную с идентичными параметрами, изменив только значение Skew:
| Параметр | Primary | Secondary |
|---|---|---|
| Type | CARP | CARP |
| Interface | WAN | WAN |
| Address(es) | 198.51.100.200/24 | 198.51.100.200/24 |
| Virtual IP Password | (совпадает) | (совпадает) |
| VHID Group | 200 | 200 |
| Advertising Frequency Base | 1 | 1 |
| Advertising Frequency Skew | 0 | 100 |
Значение Skew 100 на secondary обеспечивает, что при штатной работе обоих узлов primary всегда будет отправлять heartbeat раньше и удерживать роль master. Чем выше значение Skew, тем ниже приоритет узла в выборах master.
Автоматическая синхронизация VIP
При настроенной XMLRPC-синхронизации CARP VIP создаются на secondary автоматически. pfSense автоматически корректирует значение Skew на secondary-узле, обеспечивая правильную иерархию приоритетов. В этом случае ручное создание VIP на secondary не требуется и не рекомендуется - дублирование может привести к конфликтам.
Проверка статуса
После создания CARP VIP на обоих узлах необходимо проверить корректность работы кластера.
Просмотр статуса CARP
Перейти в Status > CARP (failover) на каждом узле. Страница отображает текущее состояние каждого CARP VIP.

Рис. 3. Статус CARP - primary-узел в состоянии MASTER
Корректное состояние кластера:
| Узел | Ожидаемый статус всех VIP |
|---|---|
| Primary | MASTER |
| Secondary | BACKUP |
Если все VIP на primary отображаются как MASTER, а на secondary как BACKUP, кластер работает корректно.
Тест ручного переключения
pfSense позволяет выполнить плановое переключение без физического отключения оборудования. На странице Status > CARP (failover) primary-узла нажать кнопку Enter Persistent CARP Maintenance Mode. Это переведёт все VIP primary-узла в состояние BACKUP, и secondary примет роль MASTER.
Порядок тестирования:
- На primary перейти в Status > CARP (failover)
- Нажать Enter Persistent CARP Maintenance Mode
- Убедиться, что все VIP на primary перешли в BACKUP
- На secondary проверить, что все VIP перешли в MASTER
- Проверить доступность сервисов через CARP VIP
- На primary нажать Leave Persistent CARP Maintenance Mode
- Убедиться, что primary вернул статус MASTER для всех VIP
Проверка из командной строки
Статус CARP можно проверить через SSH или консоль:
ifconfig | grep -A 2 carpВывод для master-узла:
carp: MASTER vhid 200 advbase 1 advskew 0
carp: MASTER vhid 1 advbase 1 advskew 0Вывод для backup-узла:
carp: BACKUP vhid 200 advbase 1 advskew 100
carp: BACKUP vhid 1 advbase 1 advskew 100Использование CARP VIP
Создание CARP VIP - необходимый, но не достаточный шаг. Для корректной работы HA-кластера все сетевые сервисы должны быть привязаны к CARP VIP вместо индивидуальных адресов интерфейсов.
Правила NAT
Все правила исходящего NAT (outbound NAT) должны использовать CARP VIP в качестве адреса трансляции (Translation Address). При использовании адреса интерфейса (Interface Address) трансляция будет работать только на том узле, который в данный момент является master. После переключения на secondary исходящий NAT перестанет функционировать, поскольку клиенты будут ожидать ответы с IP-адреса CARP VIP, а secondary будет транслировать через свой собственный адрес.
Настройка в Firewall > NAT, вкладка Outbound:
- Переключить режим на Hybrid Outbound NAT rule generation
- Создать правило:
- Interface: WAN
- Source: LAN Subnets (или конкретная подсеть)
- Translation Address: выбрать CARP VIP (198.51.100.200)
- Нажать Save, затем Apply Changes

Рис. 4. Правило Outbound NAT с привязкой к CARP VIP
Внимание:
Не используйте CARP VIP в качестве Source (адреса источника) в правилах outbound NAT для трафика самого файрвола. Это может нарушить работу протоколов, зависящих от адреса источника (DNS, NTP, обновления пакетов). Правила с CARP VIP должны применяться только к трафику внутренних подсетей.
Правила проброса портов
Правила Port Forward (Firewall > NAT > Port Forward) должны указывать CARP VIP в поле Destination:
| Параметр | Значение |
|---|---|
| Interface | WAN |
| Destination | WAN CARP VIP (198.51.100.200) |
| Destination Port | Порт сервиса |
| Redirect Target IP | Внутренний IP сервера |
При использовании адреса WAN-интерфейса вместо CARP VIP проброс портов будет работать только на одном узле.
Правила файрвола
Правила файрвола для входящего трафика на CARP VIP создаются автоматически при настройке Port Forward (если включена опция автоматического создания правила). Для ручных правил в качестве Destination следует указывать алиас или конкретный CARP VIP.
DHCP-сервер
Конфигурация DHCP-сервера должна использовать CARP VIP в качестве шлюза (gateway) и DNS-сервера, выдаваемых клиентам:
Настройка в Services > DHCP Server, вкладка LAN:
| Параметр | Значение |
|---|---|
| DNS Servers | 192.168.1.1 (LAN CARP VIP) |
| Gateway | 192.168.1.1 (LAN CARP VIP) |
Это гарантирует, что клиенты сети обращаются к виртуальному адресу, который всегда обслуживается активным узлом кластера. При указании индивидуального адреса одного из узлов клиенты потеряют доступ к шлюзу и DNS при отказе этого узла.
VPN-туннели
IPsec и OpenVPN-туннели следует привязывать к CARP VIP:
- IPsec: в параметрах Phase 1 указать CARP VIP в качестве Interface или Local Address
- OpenVPN: в настройках сервера или клиента указать CARP VIP в поле Interface
При использовании IPsec с CARP VIP необходимо создать отдельное правило outbound NAT для ISAKMP-трафика (порт 500/UDP) с флагом Static Port и привязкой к CARP VIP.
Миграция с других платформ
Администраторы, переходящие на pfSense с других файрволов, могут использовать следующие соответствия для планирования миграции HA-кластера.
Cisco ASA Failover
| Cisco ASA | pfSense | Примечание |
|---|---|---|
| Failover pair (active/standby) | CARP cluster (master/backup) | Аналогичная модель active/passive |
| Failover IP address | CARP VIP | Виртуальный адрес для клиентов |
| Stateful failover | pfsync | Синхронизация таблицы состояний |
| Failover link | Sync interface | Выделенный интерфейс синхронизации |
| Failover key | CARP password | Аутентификация между узлами |
| Primary/Secondary unit | Primary/Secondary node | Роли узлов в кластере |
| Monitored interfaces | CARP VIP per interface | pfSense мониторит каждый CARP VIP отдельно |
| Preempt | Skew values | Управление приоритетом через значение Skew |
В Cisco ASA failover-пара может выполнять автоматическое переключение как при отказе узла, так и при отказе отдельного интерфейса. В pfSense CARP работает per-interface - если на одном интерфейсе узел потерял связность, он может перейти в BACKUP только для этого интерфейса, оставаясь MASTER на остальных. Такое состояние (split master) требует дополнительного контроля через Gateway Groups или скрипты мониторинга.
Fortinet FortiGate HA
| FortiGate HA | pfSense | Примечание |
|---|---|---|
| HA cluster (active-passive) | CARP cluster | Аналогичная модель |
| Virtual MAC/IP | CARP VIP + виртуальный MAC | Автоматическое назначение MAC 00:00:5e:00:01:XX |
| Heartbeat interface | Sync interface | Выделенный интерфейс |
| HA priority | CARP Skew | 0 = highest priority |
| Session pickup | pfsync | Синхронизация состояний |
| Config sync | XMLRPC | Синхронизация конфигурации |
| HA group ID | VHID | Идентификатор виртуальной группы |
FortiGate HA поддерживает active-active кластеры с балансировкой нагрузки. pfSense поддерживает только active-passive. При миграции с active-active FortiGate необходимо учитывать, что вся нагрузка будет обрабатываться одним узлом pfSense.
MikroTik VRRP
| MikroTik VRRP | pfSense CARP | Примечание |
|---|---|---|
| VRRP interface | CARP VIP | Виртуальный IP-адрес |
| VRID | VHID | Идентификатор виртуального маршрутизатора |
| Priority (0-255) | Skew (0-240) | Инвертированная логика: VRRP 255 = highest, CARP 0 = highest |
| Preempt mode | Всегда активен | pfSense CARP всегда работает в режиме preempt |
| Authentication | CARP password | Аутентификация heartbeat |
| Sync connection tracking | pfsync | MikroTik требует отдельной настройки connection tracking sync |
Ключевое различие: в MikroTik VRRP высокий priority (255) означает высший приоритет, в pfSense CARP низкий skew (0) означает высший приоритет. При планировании миграции необходимо инвертировать логику приоритетов.
MikroTik не имеет встроенного аналога XMLRPC для синхронизации конфигурации между узлами. Администраторы, привыкшие к ручной синхронизации конфигурации MikroTik, получат значительное преимущество от автоматической синхронизации pfSense через XMLRPC.
Устранение неполадок
Оба узла в состоянии MASTER
Наиболее распространённая проблема - оба узла одновременно отображают статус MASTER для одних и тех же VIP. Возможные причины:
Блокировка multicast-трафика. CARP использует multicast-адрес 224.0.0.18 для heartbeat-сообщений. Если коммутатор или промежуточное сетевое оборудование блокирует multicast, узлы не получают heartbeat друг от друга и оба считают себя master.
Диагностика:
tcpdump -i em0 proto carpЕсли heartbeat от второго узла не отображается, проблема в сетевой связности на уровне L2.
Несовпадение паролей CARP. Если пароли Virtual IP Password различаются между узлами, heartbeat-сообщения отклоняются как неаутентифицированные.
Решение: убедиться, что пароль CARP VIP идентичен на обоих узлах. При использовании XMLRPC-синхронизации пароль реплицируется автоматически.
Конфликт VHID. Наличие другого устройства в том же broadcast-домене с тем же VHID вызывает конкуренцию за виртуальную группу.
Решение: изменить VHID на уникальное значение, не используемое другими устройствами в сегменте.
Split brain
Состояние split brain возникает, когда оба узла являются master для разных наборов интерфейсов. Например, primary является MASTER на WAN, но BACKUP на LAN, а secondary - наоборот. Это приводит к асимметричной маршрутизации и потере связности.
Причины:
- Физический отказ одного из сетевых интерфейсов на одном узле
- Проблема с кабелем или портом коммутатора на отдельном интерфейсе
- Различные VLAN-конфигурации на портах коммутатора
Диагностика:
- Проверить статус всех интерфейсов на обоих узлах через Status > CARP (failover)
- Проверить физическое подключение каждого интерфейса через Status > Interfaces
- Проверить логи CARP: Status > System Logs, вкладка System, фильтр по “carp”
Решение: устранить причину потери связности на конкретном интерфейсе. При невозможности быстрого устранения - временно перевести проблемный узел в maintenance mode для обеспечения целостности маршрутизации.
CARP не выполняет переключение
Если при отказе primary-узла secondary не принимает роль master:
Проверить heartbeat. На secondary выполнить:
tcpdump -i em0 proto carpЕсли heartbeat от primary продолжает поступать, primary не в состоянии отказа - проблема в другом.
Проверить значение Skew. Если skew на secondary слишком велик (например, 240), переключение может занимать длительное время. Уменьшить skew до 100.
Проверить сетевой стек. Убедиться, что на secondary не заблокирован CARP-трафик правилами файрвола на соответствующем интерфейсе.
Проверить demotion counter. pfSense может автоматически увеличивать demotion counter при обнаружении проблем, блокируя переход в MASTER:
sysctl net.inet.carp.demotionЗначение 0 - нормальное. Ненулевое значение указывает на проблему, препятствующую принятию роли master.
Проблемы с multicast
В виртуализированных средах (VMware, Proxmox, Hyper-V) multicast-трафик CARP может блокироваться на уровне виртуального коммутатора.
VMware vSwitch/vDS:
- Включить Promiscuous Mode: Accept
- Включить Forged Transmits: Accept
- Включить MAC Address Changes: Accept
Proxmox (Linux Bridge):
- Убедиться, что мост не фильтрует multicast
- Проверить параметр
multicast_snoopingна мосте
Hyper-V:
- Включить MAC Address Spoofing на виртуальном адаптере
- Разрешить multicast в параметрах виртуального коммутатора
Медленное переключение
Если переключение при отказе primary занимает более 5-10 секунд:
- Уменьшить значение advbase до 1 (если ещё не установлено)
- Уменьшить skew на secondary (рекомендуется 100)
- Проверить нагрузку на CPU обоих узлов - при высокой нагрузке обработка CARP heartbeat может задерживаться
- Убедиться, что pfsync корректно синхронизирует состояния - без синхронизации secondary должен заново установить все соединения, что увеличивает время восстановления
Логирование CARP-событий
Для отслеживания переключений и диагностики проблем включить расширенное логирование CARP:
Status > System Logs > Settings:
- Log CARP State Changes: включить
События CARP записываются в системный журнал и доступны в Status > System Logs, вкладка System. При интеграции с внешней SIEM-системой (например, Wazuh) CARP-события могут быть использованы для создания правил оповещения о переключениях в кластере.
Связанные разделы
- Синхронизация конфигурации - настройка XMLRPC и pfsync для полноценной работы кластера
- Сценарии отказоустойчивости - тестирование и планирование отказов
- Правила файрвола - настройка правил для sync-интерфейса
- Исходящий NAT - привязка правил NAT к CARP VIP
- VPN в pfSense - привязка VPN-туннелей к CARP VIP для отказоустойчивости