Pfsync - это протокол, используемый пакетным фильтром для
управления и обновления таблиц состояния для stateful inspection и NAT. По умолчанию, сообщения о смене состояния рассылаются через синхронизационный интерфейс с помощью IP multicast пакетов. При этом используется IP protocol 240 и multicast-группа 224.0.0.240. Мы реализуем данную схему синхронизации таблиц состояний для получения отказоустойчивого решения, когда переход на новый master происходит без разрыва сессий клиентов.
pfsync(4) является также названием псевдоустройства, через которое происходит синхронизация таблиц (кроме состояний, созданных правилами, помеченных флагом no-sync или пакетов pfsync(4)) pfsync(4) может быть сконфигурирован на физическом интерфейсе, чтобы синхронизировать таблицы нескольких брандмауэров.
Физический синхронизационный интерфейс может быть настроен с помощью команды ifconfig(8), используя параметр syncdev. Для примера, на вашем брандмауэре вы можете выполнить команду:
# ifconfig pfsync0 syncdev rl2
Предполагаем, что интерфейс rl2 на обоих хостах находится в сети 192.168.1.0/24 (для Mickey и Minnie) или 192.168.2.0/24 (для Donald и Daisy) и брандмауэры соединены между собой "кривым(обратным)" патчкордом.
Использование "обратного" патчкорда рекомендуется потому, что pfsync не поддерживает механизмы шифрации или авторизации, поэтому при работе через коммутатор эти пакеты могут быть перехвачены злоумышленником.
В качестве альтернативы, вы можете использовать ключевое слово syncpeer для указания адреса брандмауэра, с которым осуществляется синхронизация. Система будет использовать этот адрес вместо рассылки широковещательных пакетов и вы можете использовать IPsec для защиты трафика. В случае использования syncdev вы должны иметь поддержку псевдоустройства enc(4) для инкапсуляции/деинкапсуляции трафика ipsec(4).
# ifconfig pfsync0 syncpeer 192.168.1.101 syncdev enc0
Для того, чтобы изменения не пропали после перезагрузки, внесите данные в файл /etc/hostname.pfsync0:
up syncdev rl2