Высокая доступность pfSense - кластеры и отказоустойчивость

Высокая доступность pfSense - кластеры и отказоустойчивость

Высокая доступность (High Availability, HA) в pfSense обеспечивается совместной работой трёх технологий: CARP для отказоустойчивости IP-адресов, pfsync для синхронизации таблицы состояний соединений и XMLRPC для репликации конфигурации между узлами кластера. Такая архитектура позволяет организовать прозрачное переключение трафика на резервный узел при отказе основного без разрыва установленных сессий и без ручного вмешательства администратора.

pfSense поддерживает кластеры из двух узлов в конфигурации active/passive. Основной узел (master) обрабатывает весь трафик, направленный на виртуальные IP-адреса CARP. Резервный узел (backup) постоянно получает обновления таблицы состояний через pfsync и изменения конфигурации через XMLRPC. При потере heartbeat-сигналов от основного узла резервный автоматически принимает роль master и начинает обрабатывать трафик.

Протокол CARP разработан командой OpenBSD как свободная от патентных ограничений альтернатива протоколам HSRP (Cisco) и VRRP. В контексте pfSense CARP решает задачу отказоустойчивости на уровне IP-адресов - клиенты сети обращаются к виртуальному адресу, который автоматически обслуживается активным узлом кластера.

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

  • CARP и Virtual IPs - настройка протокола CARP, создание виртуальных IP-адресов, требования к адресации и проверка работоспособности кластера
  • Синхронизация конфигурации - настройка XMLRPC для репликации правил файрвола, NAT, VPN и других параметров между узлами кластера
  • Сценарии отказоустойчивости - тестирование переключения, планирование отказов, мониторинг состояния кластера и восстановление после аварий

Архитектура кластера

Типовая схема HA-кластера pfSense включает следующие компоненты:

КомпонентНазначениеПротокол
CARP VIPВиртуальные IP-адреса для клиентов сетиCARP (multicast/unicast)
pfsyncСинхронизация таблицы состояний соединенийpfsync по выделенному интерфейсу
XMLRPCРепликация конфигурации с primary на secondaryHTTPS (TCP 443)
Sync-интерфейсВыделенный канал связи между узламиОтдельная подсеть

Для каждого интерфейса с CARP требуется минимум три IP-адреса в одной подсети: индивидуальный адрес основного узла, индивидуальный адрес резервного узла и общий виртуальный адрес CARP VIP. Sync-интерфейс использует отдельную подсеть и не требует CARP VIP.

Внимание:

Не следует использовать CARP VIP для административного доступа к узлам кластера (веб-интерфейс, SSH). Для управления каждым узлом необходимо использовать его индивидуальный IP-адрес на соответствующем интерфейсе.

Связанные разделы

  • NAT в pfSense - при использовании CARP правила исходящего NAT должны указывать CARP VIP в качестве адреса трансляции
  • Правила файрвола - на sync-интерфейсе необходимо разрешить трафик XMLRPC и pfsync
  • VPN в pfSense - туннели IPsec и OpenVPN требуют привязки к CARP VIP для корректного переключения
Last updated on