Синхронизация отслеживаемых соединений
Служба отслеживания соединений, как и вся система Netfilter, функционирует в ядре ОС. В контролируемой ядром области оперативной памяти хранится актуальная информация о соединениях. Ядро не обеспечивает резервирование, но предоставляет возможности для загрузки и выгрузки информации о соединениях в режиме реального времени. После этого остаётся лишь передать эту информацию между системами кластера. За эту работу отвечает служба «conntrackd», которая работает вне ядра. В конфигурации ARMA Стена эта служба доступна как «conntrack-sync».
Для синхронизации трафика можно использовать либо многоадресную «multicast», либо одноадресную «unicast» рассылку. В большинстве случаев используется «multicast», но возможно указать и «unicast». Для этого после имени интерфейса необходимо использовать ключ «peer», как показано в следующем примере:
set service conntrack-sync interface eth0 peer 192.168.0.250
В связи с тем, что одни и те же механизмы используются для различных целей, в общем случае невозможно одновременно управлять сохранением состояния соединений и осуществлять распределение трафика по нескольким исходящим интерфейсам для балансировки нагрузки на каналы (WAN load balancing). В частности, очистка буферов в рамках управления или настройки службы отслеживания соединений может привести к сбою в работе системы распределения трафика, которая использует учёт соединений для определения фактической загруженности конкретного интерфейса (и, как следствие, канала, к которому этот интерфейс подключён).
Основные настройки
Определение протоколов, для которых будут синхронизироваться локальные записи службы отслеживания состояния:
set service conntrack-sync accept-protocol <proto>где <proto> – имя протокола. Возможно указать следующие значения: «tcp», «udp», «icmp», «icmp6», «sctp», «dccp».
Установка размера буфера для сообщений от службы отслеживания соединений:
set service conntrack-sync event-listen-queue-size <size>где <size> – размер буфера в Мбайтах. Возможно указать значение в диапазоне от «0» до «4294967295».
Определение протокола, для которого необходимо синхронизировать записи ожиданий:
set service conntrack-sync expect-sync <proto>где <proto> – имя протокола. Возможно указать следующие значения: «all», «ftp», «h323», «nfs», «sip», «sqlnet».
Включить механизм отказоустойчивости, используемый для службы отслеживания состояния:
set service conntrack-sync failover-mechanism vrrp sync-group <group>где <group> – имя группы.
Указать IP-адрес или подсеть, для которых локальные записи службы отслеживания состояния не будут синхронизироваться:
set service conntrack-sync ignore-address <address>где <address> – IP-адрес или подсеть в формате: «x.x.x.x»/«x.x.x.x/х» – для IPv4, «h:h:h:h:h:h:h:h»/«h:h:h:h:h:h:h:h/х» – для IPv6.
Указать интерфейс, используемый для синхронизации записей службы отслеживания состояния:
set service conntrack-sync interface <name>где <name> – имя сетевого интерфейса.
Примечание
Для предотвращения ошибок при изменении HWID сетевой карты, которые могут привести к блокировке загрузки системы, необходимо отключить автоматическое назначение MAC-адреса сетевой карте. Это возможно сделать с помощью команды «set interfaces ethernet ethN hw-id-auto-pinning false».
Указать номер порта для интерфейса, используемого для синхронизации записей службы отслеживания состояния:
set service conntrack-sync interface <name> port <port>где <port> – номер порта. Возможно указать значение в диапазоне от «1» до «65535».
Указать локальный IPv4-адрес прослушивания входящих соединений для службы отслеживания состояния:
set service conntrack-sync listen-address <ipv4address>где <ipv4address> – IPv4-адрес.
Указать адрес для группы многоадресной трансляции, используемой для синхронизации записей службы отслеживания состояния:
set service conntrack-sync mcast-group <x.x.x.x>где <x.x.x.x> – IPv4-адрес назначения многоадресной («multicast») передачи. По умолчанию используется значение «225.0.0.50».
Указать адрес узла отправки одноадресных UDP-сообщений для службы отслеживания состояния:
set service conntrack-sync interface <name> peer <x.x.x.x>где <x.x.x.x> – IPv4-адрес.
Указать размер буфера для синхронизации записей службы отслеживания состояния:
set service conntrack-sync sync-queue-size <size>где <size> – размер буфера в Мбайтах. Возможно указать значение в диапазоне от «0» до «4294967295».
Отключить внешний кэш и напрямую передать состояния потока в службе отслеживания соединений в ядро резервного межсетевого экрана:
set service conntrack-sync disable-external-cache
Отключить запись сообщений в syslog:
set service conntrack-sync disable-syslog
При запуске разрешить conntrackd выполнить полную синхронизацию таблицы conntrack с другим узлом:
set service conntrack-sync startup-resync
Мониторинг состояния
Вывести записи внешнего кэша синхронизации соединений службы отслеживания состояния:
show conntrack-sync cache external
Вывести записи внутреннего кэша синхронизации соединений службы отслеживания состояния:
show conntrack-sync cache internal
Вывести актуальную статистику службы отслеживания соединений:
show conntrack-sync statistics
Вывести информацию об актуальном состоянии службы отслеживания соединений:
show conntrack-sync statusПримечание
После первоначальной настройки параметр «last state transition» в информации о состоянии службы имеет значение «no transition yet», что является ожидаемым поведением. При этом сама служба находится в работоспособном состоянии и синхронизация между устройствами выполняется. Значение параметра «last state transition» изменится после изменения статуса VRRP.