Высокая доступность 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 на secondary | HTTPS (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 для корректного переключения