Отслеживание соединений

Служба отслеживания соединений, как и вся система Netfilter, функционирует в ядре операционной системы. В контролируемой ядром области оперативной памяти хранится актуальная информация о соединениях. Ядро не обеспечивает резервирование, но предоставляет возможности для загрузки и выгрузки информации о соединениях в режиме реального времени. После этого остаётся лишь передать эту информацию между системами кластера. За эту работу отвечает служба «conntrackd», которая работает вне ядра. В конфигурации ARMA Стена эта служба доступна как «conntrack-sync».

Для синхронизации трафика можно использовать либо многоадресную «multicast», либо одноадресную «unicast» рассылку. В большинстве случаев используется «multicast», но возможно указать и «unicast». Для этого после имени интерфейса необходимо использовать ключ «peer», как показано в следующем примере:

set service conntrack-sync interface eth0 peer 192.168.0.250

В связи с тем, что одни и те же механизмы используются для различных целей, в общем случае невозможно одновременно управлять сохранением состояния соединений и осуществлять распределение трафика по нескольким исходящим интерфейсам для балансировки нагрузки на каналы (WAN load balancing). В частности, очистка буферов в рамках управления или настройки службы отслеживания соединений может привести к сбою в работе системы распределения трафика, которая использует учёт соединений для определения фактической загруженности конкретного интерфейса (и, как следствие, канала, к которому этот интерфейс подключён).

Основные настройки

  1. Определение протоколов, для которых будут синхронизироваться локальные записи службы отслеживания состояния:

set service conntrack-sync accept-protocol <proto>

где <proto> – имя протокола. Возможно указать следующие значения: «tcp», «udp», «icmp», «icmp6», «sctp», «dccp».

  1. Установка размера буфера для сообщений от службы отслеживания соединений:

set service conntrack-sync event-listen-queue-size <size>

где <size> – размер буфера в Мбайтах. Возможно указать значение в диапазоне от «0» до «4294967295».

  1. Определение протокола, для которого необходимо синхронизировать записи ожиданий:

set service conntrack-sync expect-sync <proto>

где <proto> – имя протокола. Возможно указать следующие значения: «all», «ftp», «h323», «nfs», «sip», «sqlnet».

  1. Включить механизм отказоустойчивости, используемый для службы отслеживания состояния:

set service conntrack-sync failover-mechanism vrrp sync-group <group>

где <group> – имя группы.

  1. Указать 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.

  1. Указать интерфейс, используемый для синхронизации записей службы отслеживания состояния:

set service conntrack-sync interface <name>

где <name> – имя сетевого интерфейса.

Примечание

Для предотвращения ошибок при изменении HWID сетевой карты, которые могут привести к блокировке загрузки системы, необходимо отключить автоматическое назначение MAC-адреса сетевой карте. Это возможно сделать с помощью команды «set interfaces ethernet ethN hw-id-auto-pinning false».

  1. Указать номер порта для интерфейса, используемого для синхронизации записей службы отслеживания состояния:

set service conntrack-sync interface <name> port <port>

где <port> – номер порта. Возможно указать значение в диапазоне от «1» до «65535».

  1. Указать локальный IPv4-адрес прослушивания входящих соединений для службы отслеживания состояния:

set service conntrack-sync listen-address <ipv4address>

где <ipv4address> – IPv4-адрес.

  1. Указать адрес для группы многоадресной трансляции, используемой для синхронизации записей службы отслеживания состояния:

set service conntrack-sync mcast-group <x.x.x.x>

где <x.x.x.x> – IPv4-адрес назначения многоадресной («multicast») передачи. По умолчанию используется значение «225.0.0.50».

  1. Указать адрес узла отправки одноадресных UDP сообщений для службы отслеживания состояния:

set service conntrack-sync interface <name> peer <x.x.x.x>

где <x.x.x.x> – IPv4-адрес.

  1. Указать размера буфера для синхронизации записей службы отслеживания состояния:

set service conntrack-sync sync-queue-size <size>

где <size> – размер буфера в Мбайтах. Возможно указать значение в диапазоне от «0» до «4294967295».

  1. Отключить внешний кэш и напрямую передать состояния потока в службе отслеживания соединений в ядро резервного межсетевого экрана:

set service conntrack-sync disable-external-cache
  1. Отключите журналирование соединений через Syslog:

set service conntrack-sync disable-syslog
  1. При запуске разрешить conntrackd выполнить полную синхронизацию таблицы conntrack с другим узлом:

set service conntrack-sync startup-resync

Мониторинг состояния

  1. Вывести таблицу службы отслеживания состояния для протокола IP:

show conntrack table ipv4|ipv6

Примечание

В случае отсутствия записей об активных соединениях в таблице и появления предупреждения, это указывает на то, что служба отслеживания состояния не активирована. Для её активации необходимо создать правило трансляции NAT или правило межсетевого экрана.

  1. Вывести записи внешнего кэша синхронизации соединений службы отслеживания состояния:

show conntrack-sync cache external
  1. Вывести записи внутреннего кэша синхронизации соединений службы отслеживания состояния:

show conntrack-sync cache internal
  1. Вывести актуальную статистику службы отслеживания соединений:

show conntrack-sync statistics
  1. Вывести информацию об актуальном состоянии службы отслеживания соединений:

show conntrack-sync status