pfSense настройка высокой доступности

В этой статье мы увидим, как настроить два сервера pfSense в режиме кластера, чтобы обеспечить высокую доступность сервиса.

pfSense — одно из немногих решений с открытым исходным кодом, предлагающих технологии высокой доступности.

Диаграмма сети:

LAN :

● Сеть : 192.168.99.0/24
● IP-адрес A pfSense : 192.168.99.1
● IP-адрес B pfSense : 192.168.99.2
● Виртуальный IP-адрес CARP : 192.168.99.100


WAN :

● Сеть : 192.168.1.0/24
● IP-адрес A pfSense : 192.168.1.1
● IP-адрес B pfSense : 192.168.1.2
● Виртуальный IP-адрес CARP : 192.168.1.100


Как это работает:

Методы обеспечения высокой доступности включают в себя 3 основных компонента:

● CARP : протокол для настройки виртуального IP-адреса, который используется pfSense. Этот виртуальный IP-адрес передается вторичному серверу, если первичный сервер сталкивается с проблемой.

● pfsync : протокол, используемый для синхронизации состояния текущих соединений между двумя серверами pfSense (и в более глобальном масштабе между двумя серверами, на которых работает Packet Filter ).

● XML-RPC : протокол для репликации данных с одного сервера на другой. Он используется в pfSense для репликации конфигурации с основного сервера на дополнительный сервер.


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


Для работы каждый сервер pfSense должен иметь уникальный IP-адрес на своем интерфейсе, а также виртуальный IP-адрес, который будет общим для двух серверов pfSense.

Поэтому для pfSense требуется 3 IP-адреса на сеть.

На основном сервере перейдите в Firewall > Virtual IPs:

Нажмите на кнопку «+ Add».

Поля, которые необходимо заполнить, следующие:

● Type : CARP
● Interface : WAN
● Address(es) : виртуальный IP-адрес с маской этого интерфейса. В нашем случае: 192.168.1.100/24
● Virtual IP Password: пароль…
● VHID Group : позвольте pfSense выбрать ее. Он должен быть уникальным для каждого виртуального IP-адреса.
● Advertising frequency : пусть pfSense выбирает ее. Поле «база» — это частота frequency в секундах. Косое поле — это фазовый сдвиг . 0 обычно означает основной сервер.

Такую же настройку выполняем на интерфейсе LAN :


После этого нажмите кнопку «Apply Changes».

Мы можем проверить статус наших виртуальных IP-адресов в меню Status > CARP (failover):

Виртуальные IP-адреса WAN и LAN являются «Master»:

Все эти настройки виртуальных IP-адресов должны выполняться только на основном pfsense (pfSense A)!!!

2. Принудительное использование виртуальных IP-адресов

Виртуальные IP-адреса настроены, но не используются.

Для этого нам нужно настроить pfSense для использования виртуального IP-адреса WAN для исходящего трафика, виртуального IP-адреса LAN для входящего трафика и настроить различные службы для работы с VIP-адресом LAN в качестве адреса по умолчанию (для конфигурации OpenVPN или DHCP, Например).

Все эти настройки должны выполняться только на первичном pfsense (pfSense A)!!!

Настройка исходящего NAT:

Проходим в  Firewall > NAT, Outbound tab.


Отметьте кнопку «Hybrid Outbound NAT rule generation» (Автоматический исходящий NAT + правила ниже)». Затем нажмите кнопку « Add » .

Поля, которые необходимо заполнить, следующие:

● Interface : WAN
● Address Family: IPv4
● Protocol : any
● Source : Сеть — 192.168.1.0/24 ( т . е . подсеть LAN)
● Destination : Any
● Address (Translation) : 192.168.1.100 ( т.е. VIP-адрес на интерфейсе WAN)

После этого нажимаем кнопку «Apply Changes».

Настройка DHCP-сервера:

Если pfSense является DHCP-сервером в сети, мы собираемся изменить его конфигурацию. Заходим в Services > DHCP Server.

Мы модифицируем поле «Gateway», чтобы указать VIP-адрес (192.168.99.100).



Настройка OpenVPN-сервера:

Если сервер OpenVPN настроен на pfSense, мы модифицируем интерфейс прослушивания службы (обычно «WAN»), заменив его на VIP-адрес (192.168.1.100).
Это изменение выполняется в разделе VPN > OpenVPN, вкладка Servers.



Настройка службы VPN IPsec:

Если туннель IPsec настроен на pfSense, необходимо изменить интерфейс прослушивания IPsec VPN (обычно «WAN»), заменив его на VIP-адрес (192.168.1.100).
Эта модификация выполняется в разделе VPN > IPsec, а затем в части фазы 1.


У нас есть покрытие основных услуг, на которые влияют виртуальные IP-адреса.

3. Настройка высокой доступности


Нам еще нужно настроить службу высокой доступности.

Перейдите в System > High Avail. Sync:


На этой странице нужно настроить две вещи: pfsync (синхронизация состояний) и XMLRPC Sync (синхронизация конфигурации).

Настройки синхронизации состояния (pfsync):

Поля, которые необходимо заполнить, следующие:

● Synchronize States : установите этот флажок, чтобы активировать pfsync.
● Synchronize Interface : если у вас нет выделенного интерфейса для синхронизации между двумя узлами, просто выберите «LAN». Что мы и делаем в нашем случае.
● pfsync Synchronize Peer IP : IP-адрес pfSense B. В нашем случае: 192.168.99.2.

Параметры синхронизации конфигурации (XMLRPC Sync)

Поля, которые необходимо заполнить, следующие:

● Synchronize Config to IP : на первичном pfSense (pfSense A) введите IP-адрес вторичного pfSense (pfSense B). В нашем случае: 192.168.99.2 . Имейте в виду, что это должен быть тот же IP-адрес, который вы ввели ранее в поле «pfsync Synchronize Peer IP». Это поле необходимо оставить пустым на вторичном pfSense (pfSense B) .

● Remote System Username : на первичном pfSense (pfSense A) введите имя пользователя для доступа к вторичному pfSense (pfSense B) — по умолчаниюоно должно быть « admin ». Это поле необходимо оставить пустым на вторичном pfSense (pfSense B) .

● Remote System Password : на основном pfSense (pfSense A) введите пароль учетной записи администратора (или выбранной вами альтернативной учетной записи). Это поле необходимо оставить пустым на вторичном pfSense (pfSense B) .

Затем мы проверяем сервисы, которые хотим синхронизировать. По умолчанию используются все службы (нажмите кнопку « Переключить все »).


Сделав это, нажмите на кнопку «Save».

Разрешить потоки репликации в правилах брандмауэра

Последнее, что нужно сделать, это авторизовать сетевые потоки для процесса репликации.

Перейдите в Firewall > Rules.


Есть два сетевых потока, которые можно разрешить:

● Синхронизация XML-RPC, которая выполняется через порт 443.

● Синхронизация протокола pfsync.

Самый простой способ — создать alias с IP-адресами двух серверов pfSense в локальной сети:


Затем мы создаем правило брандмауэра с alias:


Хорошие новости. Конфигурация выполнена!

Мы можем провести некоторые тесты…

Прежде всего, на этом этапе важно сделать резервную копию обоих ваших серверов pfSense (“Diagnostics” > “Backup & Restore”).

Затем, чтобы проверить правильность работы высокой доступности, можно выполнить несколько тестов. Вот несколько примеров:

● остановить основной pfSense ;

● отключите сетевой кабель от интерфейса LAN или WAN основного pfSense;

● отключить службу CARP на первичном pfSense («Статус» > «CARP (отказоустойчивость)») ;

● скачать файл или запустить ping-запросы при переключении с основного на дополнительный сервер

Related Articles