Балансировка нагрузки

Балансировка нагрузки на WAN-интерфейсах

Подсистема балансировки нагрузки автоматически добавляет маршруты для каждого пути в таблицу маршрутизации и балансирует трафик между настроенными интерфейсами в зависимости от работоспособности и веса интерфейса.

Минимально необходимая конфигурация для балансировки WAN-интерфейса должна включать в себя следующие элементы:

  • требуется добавить как минимум один сетевой интерфейс маршрутизатора с заданным адресом и адресом следующего узла;

  • необходимо добавить хотя бы одно правило с балансируемыми интерфейсами.

Примечание

Балансировка нагрузки не используется совместно с динамической маршрутизацией. Сервис создаёт настраиваемые таблицы маршрутизации и правила брандмауэра, что делает его несовместимым с протоколами динамической маршрутизации.

Для настройки балансировочной нагрузки необходимо перейти в раздел «Балансировка нагрузки на WAN-интерфейсах» («Настройка интерфейсов» - «Балансировка нагрузки на WAN-интерфейсах») (см. Рисунок – Балансировка нагрузки на WAN-интерфейсах).

../../../../_images/ngfw.rp.web.load-balancing_1.1.png

Рисунок – Балансировка нагрузки на WAN-интерфейсах

Применение и сохранение настроек подсистемы балансировки нагрузки на WAN-интерфейсах

Для применения и сохранения настроек после завершения конфигурации подсистемы балансировки нагрузки необходимо нажать кнопку «Сохранить», расположенную в верхнем правом углу заголовка раздела «Интерфейсы» (см. Рисунок – Применение и сохранение настроек). Далее следует подтвердить действие в появившемся окне «Сохранить изменения конфигурации», нажав кнопку «Сохранить».

../../../../_images/ngfw.rp.web.load-balancing_1.2.png

Рисунок – Применение и сохранение настроек

При необходимости отменить все неприменённые настройки следует нажать кнопку «Отмена», расположенную в верхнем правом углу заголовка раздела «Интерфейсы». В этом случае конфигурация подсистемы балансировки нагрузки будет откатана к последнему сохранённому состоянию.

Проверка состояния интерфейсов

Работоспособность WAN-каналов, используемых сервисом балансировки, периодически проверяется несколькими способами:

  1. Отправка сообщения ICMP Echo Request на удалённые хосты.

  2. Мониторинг времени жизни сетевого пакета (TTL).

  3. Выполнение специального пользовательского скрипта.

Если канал не проходит проверку, он исключается из списка используемых сервисом балансировки.

Проверяемый интерфейс

Для добавления проверяемого интерфейса необходимо выполнить следующие действия:

  1. Перейти в раздел «Балансировка нагрузки на WAN-интерфейсах» и нажать кнопку «+ Добавить» в подразделе «Проверка состояния интерфейсов».

  2. В открывшейся боковой панели выбрать создаваемый объект «Проверяемый интерфейс» и ввести необходимые параметры (см. Рисунок – Добавление проверяемого интерфейса):

  • «Наименование» - выбирать сетевой интерфейс из предложенного списка для активации на нём проверки WAN-канала;

  • «Количество ошибок» - указать количество неудачных проверок, после которых WAN-канал будет считаться недоступным. Возможно указать значение в диапазоне от «1» до «10»;

  • «Количество успешных запросов» - указать количество успешных проверок, после которых WAN-канал будет отмечен как доступный. Возможно указать значение в диапазоне от «1» до «10»;

  • «Следующий узел» - адрес узла, через который будет осуществляться доступ к хосту-получателю. Возможно указать «IPv4-адрес» или «DHCP».

../../../../_images/ngfw.rp.web.load-balancing_1.1.1.1.png

Рисунок – Добавление проверяемого интерфейса

Для редактирования настроек проверяемого интерфейса необходимо нажать ЛКМ на строке с нужным интерфейсом и в открывшейся боковой панели внести корректировки. По завершению нажать кнопку «Сохранить».

Для удаления проверяемого интерфейса необходимо выбрать один или несколько интерфейсов, установив флажок в чек-боксе слева от наименования интерфейса, и нажать кнопку «Удалить». В открывшемся окне, подтвердить удаление нажатием кнопки «Удалить».

Примечание

В случае удаления последнего проверяемого интерфейса или всех проверяемых интерфейсов система предупредит о том, что все правила и основные параметры балансировки будут удалены. Для продолжения необходимо подтвердить удаление (см. Рисунок – Удаление проверяемого интерфейса):

../../../../_images/ngfw.rp.web.load-balancing_1.1.1.2.png

Рисунок – Удаление проверяемого интерфейса

Правила проверки

Каждая проверка настраивается для отдельного хоста-получателя и предполагает выполнение соответствующего теста. В случае необходимости проверки нескольких хостов-получателей необходимо настроить несколько тестов, каждый из которых будет выполняться в определённом порядке.

Для добавления правил проверки интерфейса необходимо выполнить следующие действия:

  1. Перейти в раздел «Балансировка нагрузки на WAN-интерфейсах» и нажать кнопку «+ Добавить» в подразделе «Проверка состояния интерфейсов».

  2. В открывшейся боковой панели выбрать создаваемый объект «Правила проверки» и ввести необходимые параметры (см. Рисунок – Добавление правил проверки):

  • «Интерфейс» - указать из списка проверяемый интерфейс;

  • «Приоритет» - указать номер правила в соответствии с его очерёдностью. Возможно указать значение в диапазоне от «0» до «4294967295»;

  • «Тип» - указать тип теста. Возможно указать следующие значения:

    • «ping»;

    • «TTL»;

    • «Пользовательский» - указать пользовательский скрипт, описывающий характер проверки.

      Для загрузки скрипта необходимо нажать кнопку «Загрузить скрипт» и в открывшемся окне проводника выбрать необходимый скрипт (см. Рисунок –Загрузка пользовательского скрипта):

      ../../../../_images/ngfw.rp.web.load-balancing_1.1.2.2.png

      Рисунок – Загрузка пользовательского скрипта

      Примечание

      Скрипт должен возвращать «0» для обозначения успешного результата и значение отличное от «0» - для неудачных результатов. Система перестанет отвечать на запросы, если выполнение скрипта не завершится!

      Примечание

      Скрипт сохраняется в каталоге /config/scripts.

  • «Время отклика» - указать значение максимального времени ожидания ответа на сообщение ICMP в секундах. Возможно указать значение в диапазоне от «1» до «30». По умолчанию используется значение «5».

  • «Предельное время жизни (число узлов)» - параметр, который определяет количество переходов между каждой парой шлюзов на пути к хосту-получателю. Он используется для тестирования с протоколом UDP, когда выбирается тип тестирования «TTL». Успешным результатом является получение в ответ сообщения ICMP Time Expired.

  • «Проверяемый адрес» - указать IPv4-адрес хоста-получателя, на который будут отправляться сообщения ICMP Echo Request.

../../../../_images/ngfw.rp.web.load-balancing_1.1.2.1.png

Рисунок – Добавление правил проверки

Для изменения настроек правил проверки интерфейса необходимо нажать ЛКМ на кнопку «ngfw.rp.web.bttn.str» в правом углу строки с нужным интерфейсом в таблице «Проверка состояния интерфейсов». В открывшемся списке правил необходимо выбрать нужное правило, также нажав на него ЛКМ. В боковой панели внести необходимые изменения. По завершению нажать кнопку «Сохранить».

Для удаления правил проверки интерфейса необходимо выбрать одно или несколько правил проверки интерфейсов, установив флажок в чек-боксе слева от наименования правила, и нажать кнопку «Удалить». В открывшемся окне подтвердить удаление нажатием кнопки «Удалить».

Поиск и фильтрация

Блок фильтрации предоставляет возможность сортировки и фильтрации данных из таблицы «Проверка состояния интерфейсов» по всем столбцам в списке (см. Рисунок – Панель поиск и фильтрации). Он включает в себя следующие поля:

  • «Поиск»;

  • «Наименование»;

  • «Тип правила»;

  • кнопка «Сбросить фильтры».

../../../../_images/ngfw.rp.web.load-balancing_1.1.3.1.png

Рисунок – Панель поиск и фильтрации

Сквозной поиск по полям таблицы «Проверка состояния интерфейсов» осуществляется с помощью ввода искомого значения в поле параметра «Поиск». Поиск производится по наименованию сетевого интерфейса и номеру правил.

Фильтрация по полю «Наименование» позволяет осуществлять отбор данных на основе названий сетевых интерфейсов. В данном поле представлен раскрывающийся список с именами интерфейсов, добавленных в таблицу «Проверка состояния интерфейсов».

Фильтрация по полю «Тип правила» позволяет отфильтровать правила по типу теста. Поле содержит выпадающий список и предоставляет выбор из следующих вариантов значений: «ping», «TTL», «Пользовательский».

Сброс всех установленных фильтров осуществляется нажатием кнопки «Сбросить фильтры».

Правила балансировки

Балансировка нагрузки представляет собой совокупность правил, определяющих тип трафика, подлежащего распределению, а также перечень таблиц маршрутизации и их значимости.

Каждое правило включает в себя критерии соответствия и таблицы маршрутизации с присвоенной значимостью. Правила пронумерованы и выполняются в установленном порядке, начиная с «1» и заканчивая «9999».

Важно отметить, что номер правила является уникальным идентификатором, который не может быть изменён. Для изменения номера правила необходимо удалить его и создать заново с новым номером. Рекомендуется назначать номера правил балансировки нагрузки, оставляя свободные интервалы. Например, возможно создать набор правил с номерами 10, 20, 30 и т. д. Это позволит в случае необходимости добавить новое правило в определённое место в текущей последовательности без удаления текущего набора правил.

Добавление правил балансировки

Для добавления правила балансировки необходимо выполнить следующие действия:

  1. Перейти в раздел «Балансировка нагрузки на WAN-интерфейсах» и нажать кнопку «+ Добавить» в подразделе «Правила балансировки».

  2. В открывшейся боковой панели ввести необходимые параметры правила (см. Рисунок – Добавление правила балансировки):

  • «Приоритет» - уникальный номер приоритета правила балансировки трафика. Возможно указать номер приоритета в диапазоне от «1» до «9999».

  • «Режим» - режим работы правила:

    • «Балансировка трафика» - выполняется распределение трафика пропорционально отношению значимости интерфейса.

    • «Резервирование канала» - весь трафик идёт через основной интерфейс, а в случае его отказа - через резервный. В этом случае вместо балансировки трафика между всеми работоспособными WAN каналами трафик передаётся только по активному. В случае отказа активного WAN канала на эту роль выбирается другой из списка резервных на основе состояния и значимости интерфейса. Оставшиеся WAN каналы становятся резервными по отношению к новому активному.

    Роли WAN-каналов и соответствующих им интерфейсов могут быть выбраны на основе порядка правил балансировки. В связи с тем, что автоматическое перераспределение установленных ранее сессий между активными и резервными каналами WAN не осуществляется, необходимо включить параметр «Очищать таблицы отслеживания подключений при изменении состояния соединения».

  • «Тип проверки трафика» - тип проверки трафика правилом:

    • «Потоковый» - для исходящего трафика по умолчанию применяется балансировка потоков в полном объёме. Для функционирования в данном режиме используется механизм отслеживания соединений на основе IP-адресов отправителя и получателя, а также номеров портов отправителя и получателя. Каждый поток связывается с определённым сетевым интерфейсом в соответствии с установленными правилами балансировки, в результате чего все сетевые пакеты, относящиеся к данному потоку, перенаправляются через этот интерфейс. Преимуществом данного режима работы является сохранение последовательности пакетов при использовании различных скоростей передачи данных для различных подключений.

    • «Пакетный» - балансировка пакетов для исходящего трафика позволяет достичь лучших показателей, но только при условии, что нарушение порядка пакетов не повлияет на функционирование сетевой инфраструктуры.

  • «Небалансируемый трафик» - трафик, который соответствует правилу, не балансируется, а маршрутизируется в соответствии с записями в системной таблице маршрутизации. Параметр доступен при выборе режима «Балансировка трафика».

  • «Балансируемые интерфейсы»:

    • «Интерфейс» - выбор из списка внешнего WAN-интерфейса для правила балансировки.

    • «Значимость» - отношение значимостей интерфейсов будет применяться с помощью алгоритма взвешенного случайного распределения в балансировке трафика. Пример, значимости 2 и 1 балансируемых интерфейсов означают, что через первый пойдёт 66% трафика, а через второй - 33%.

    Кнопки «+ Добавить» и «Удалить» позволяют добавлять или удалять балансируемые интерфейсы.

  • «Входящий интерфейс» - выбор из списка внутреннего интерфейса для правила балансировки.

  • «Ограничение скорости» - для правила возможно установить ограничение скорости передачи пакетов, чтобы применять правило к трафику выше или ниже заданного порога. Если в поле «Небалансируемый трафик» установлен флажок, то блок компонентов не отображается. Блок содержит следующие параметры:

    • «Порог» - выбор варианта сравнения, «Выше» или «Ниже» заданного лимита скорости.

    • «Количество пакетов» - количество сетевых пакетов. Возможно указать значение в диапазоне от «0» до «4294967295».

    • «Период» - период времени, в течение которого производится расчёт скорости.

    • «Допустимое превышение лимита» - количество пакетов, допустимое для превышения лимита в течение указанного периода времени. Возможно указать значение в диапазоне от «0» до «4294967295».

  • «Транспортный протокол» - блок настройки протокола транспортного уровня инкапсулируемый в IP протокол. Возможно выбрать один из следующих вариантов:

    • «Номер» - ввести номер протокола в соответствии с документом IANA;

    Примечание

    В случае необходимости выбора протоколов TCP или UDP, следует выбирать их из списка, представленного в поле «Название», а не указывать их числовое обозначение (6 - TCP, 17 - UDP) в поле «Номер». Указание протоколов TCP или UDP через числовое обозначение приводит к некорректной работе правила.

    • «Название» - выбор протокола из выпадающего списка.

    При установке флажка в чек-боксе «Все, кроме указанного протокола» правило будет срабатывать на трафик всех протоколов, кроме указанного.

  • «Отправитель» - блок, в котором возможно настроить параметры правил в зависимости от источника трафика. Возможно выбрать один из следующих вариантов:

    • «IP-адрес» - ввести IPv4-адрес отправителя в поле «Адрес»;

    • «Диапазон адресов» - указать начальный и конечный IPv4-адрес отправителя в соответствующих полях;

    • «Сеть» - ввести IPv4-сеть отправителя в формате «x.x.x.x/x» в поле «Сеть».

      Если установить флажок в чек-боксе «Все, кроме указанного отправителя», то правило будет срабатывать для всех адресов, кроме заданных.

  • «Порт отправителя» - блок настроек доступен, если в блоке «Транспортный протокол» в поле «Название» указано одно из следующих значений: «tcp» или «udp». Указать порт возможно одним из следующих способов:

    • «Номер порта» - возможно указать значение в диапазоне от «1» до «65535»;

    • «Диапазон портов» - позволяет задать интервал портов в диапазоне от «1» до «65535»;

    • «Протокол» - выбор протокола из выпадающего списка.

    При установке флажка в чек-боксе «Все, кроме указанных портов» правило будет срабатывать на все порты, кроме указанных. Кнопки «+ Добавить» и «Удалить» позволяют добавлять или удалять порты отправителя.

  • «Получатель» - блок, в котором настраиваются параметры правил в зависимости от адресата трафика. Возможно выбрать один из следующих вариантов:

    • «IP-адрес» - ввести IPv4-адрес получателя в поле «Адрес»;

    • «Диапазон адресов» - указать начальный и конечный IPv4-адрес получателя в соответствующих полях;

    • «Сеть» - ввести IPv4-сеть получателя в формате «x.x.x.x/x» в поле «Сеть».

    Если установить флажок в чек-боксе «Все, кроме указанного получателя», правило будет действовать на все адреса, кроме заданных.

  • «Порт получателя» - блок настроек доступен, если в блоке «Транспортный протокол» в поле «Название» указано одно из следующих значений: «tcp» или «udp». Указать порт возможно одним из следующих способов:

    • «Номер порта» - возможно указать значение в диапазоне от «1» до «65535»;

    • «Диапазон портов» - позволяет задать интервал портов в диапазоне от «1» до «65535»;

    • «Протокол» - выбор протокола из выпадающего списка.

    При установке флажка в чек-боксе «Все, кроме указанных портов» правило будет срабатывать на все порты, кроме указанных. Кнопки «+ Добавить» и «Удалить» позволяют добавлять или удалять порты получателя.

../../../../_images/ngfw.rp.web.load-balancing_1.2.1.png

Рисунок – Добавление правила балансировки

Редактирование правил балансировки

Для редактирования правила балансировки необходимо нажать ЛКМ на строке с нужным правилом и в открывшейся боковой панели внести корректировки в атрибуты правила. По завершению нажать кнопку «Сохранить».

Копирование правила балансировки

Для копирования правила балансировки необходимо выполнить следующие действия:

  1. Выбрать правило, установив флажок в чек-боксе слева от приоритета правила, и нажать кнопку «Копировать».

  2. В открывшейся боковой панели «Копирование правила» установить приоритет и при необходимости внести изменения в параметры правила.

  3. Нажать кнопку «Сохранить», чтобы сохранить копию правила (см. Рисунок – Копирование правила балансировки).

../../../../_images/ngfw.rp.web.load-balancing_1.2.3.1.png

Рисунок – Копирование правила балансировки

Удаление правил балансировки

Для удаления правила балансировки необходимо выбрать одно или несколько правил, установив флажок в чек-боксе слева от приоритета правила, и нажать кнопку «Удалить». В открывшемся окне, подтвердить удаление нажатием кнопки «Удалить».

Примечание

В случае удаления последнего правила балансировки система выдаст предупреждение о том, что служба балансировки перестанет функционировать. Будет предложено подтвердить удаление правила (см. Рисунок – Подтверждения удаления последнего правила балансировки):

../../../../_images/ngfw.rp.web.load-balancing_1.2.4.1.png

Рисунок – Подтверждения удаления последнего правила балансировки

Общие настройки балансировочной нагрузки

Примечание

Общие параметры балансировки нагрузки недоступны для редактирования, если в таблице «Проверка состояний интерфейсов» не указан хотя бы один интерфейс.

  1. «Отключить правила NAT для источника» - отключение механизма автоматической генерации правил SNAT.

    По умолчанию интерфейсы, используемые в пуле балансировки нагрузки, заменяют IP-адрес источника исходящего пакета на свой собственный адрес, что гарантирует поступление ответов на один и тот же интерфейс. Это работает с помощью автоматически сгенерированных правил SNAT, которые применяются только к сбалансированному трафику. В тех случаях, когда такое поведение нежелательно, автоматическую генерацию правил SNAT возможно отключить.

  2. «Включить балансировку локального трафика» - включение балансировки нагрузки WAN для локального трафика.

  3. «Очищать таблицы отслеживания подключений при изменении состояния соединения» - очистка таблицы соединений при изменении состояния активного WAN-канала.

Примечание

Очистка таблицы соединений приведёт к тому, что будет выполняться балансировка пакетов вместо балансировки потоков до момента повторного установления соединений.

  1. «Липкие сессии» - включение возможности отправки ответных пакетов с сетевого интерфейса, входящего в группу балансировочных интерфейсов, откуда поступил запрос.

  2. «Скрипт, выполняемый по изменению статуса интерфейса» - выбор пользовательского скрипта, который будет запускаться при изменении состояния балансируемого интерфейса.

    Для загрузки пользовательского скрипта в систему ARMA Стена необходимо нажать кнопку «Загрузить скрипт» (см. Рисунок – Загрузка пользовательского скрипта). В появившемся диалоговом окне следует выбрать файл скрипта, располагающийся на локальном устройстве пользователя. Скрипты загружаются в директорию /config/scripts.

../../../../_images/ngfw.rp.web.load-balancing_1.3.1.png

Рисунок – Загрузка пользовательского скрипта

Примечание

В названии файла скрипта недопустимо использовать символы: пробел, «“», «\». Максимальный размер файла не более 1 мегабайта.

Примечание

Скрипт должен возвращать «0» для обозначения успешного результата и значение отличное от «0» - для неудачных результатов. Система перестанет отвечать на запросы, если выполнение скрипта не завершится!

Для сохранения изменений в общих настройках балансировочной нагрузки необходимо нажать кнопку «Сохранить (см. Рисунок – Сохранение настроек).

../../../../_images/ngfw.rp.web.load-balancing_1.3.2.png

Рисунок – Сохранение настроек

Примечание

Если минимально необходимые настройки балансировки не будут соблюдены, при попытке сохранить изменения система выдаст предупреждение о невозможности обновления настроек балансировки нагрузки на WAN-интерфейсах.

Обратный прокси

ARMA Стена включает в себя функциональность обратного прокси-сервера, обеспечивающего высокую доступность, распределение нагрузки и проксирование для приложений на основе TCP (уровень 4) и HTTP (уровень 7).

Для настройки обратного прокси необходимо перейти в раздел «Интерфейсы» затем в подраздел «Обратный прокси» (см. Рисунок – Обратный прокси).

../../../../_images/ngfw.rp.web.load-balancing_2.1.png

Рисунок – Обратный прокси

Минимально необходимая конфигурация для реализации обратного прокси должна включать в себя следующие элементы:

  • добавлен минимум один backend-сервер (таблица «Группы Backend-серверов»), с хотя бы одним добавленным сервером (таблица «Сервер»);

  • добавлена минимум одна служба обратного прокси (таблица «Службы обратного прокси») с указанием следующих параметров: «Порт, используемый для соединения», «Группа Backend-серверов».

Глобальные настройки

  1. «Максимальное число подключений» - используется для настройки максимального количества одновременных подключений для обратного прокси-сервера с балансировкой нагрузки. Позволяет ограничивать количество одновременных подключений к серверу с целью предотвращения его перегрузки, обеспечения стабильной работы при высоких нагрузках и эффективного управления ресурсами. Возможно указать значение в диапазоне от «1» до «2000000».

  2. «Алгоритмы шифрования для соединений по протоколу SSL/TLS» - используется для настройки списка шифров, которые будут использоваться при установлении SSL/TLS соединений через обратный прокси-сервер. Возможен множественный выбор.

  3. «Минимально допустимая версия TLS» - указать минимальную поддерживаемую версию протокола TLS для всех SSL/TLS соединений через обратный прокси-сервер с балансировкой нагрузки. Возможно выбрать версию протокола TLS: 1.2 или 1.3. По умолчанию используется версия 1.3.

Группы Backend-серверов

Блок «Группы Backend-серверов» предназначен для конфигурации групп серверов, известных как бэкенд-серверы, которые обрабатывают входящие запросы, поступающие через обратный прокси-сервер. Основная функция данного блока заключается в реализации внутренней логики распределения трафика между серверами.

Для добавления группы backend-серверов необходимо выполнить следующие действия:

  1. Нажать кнопку «+ Добавить» в таблице «Группы Backend-серверов» и в открывшемся окне «Добавление группы Backend-серверов» внести следующие параметры:

    • Наименование - уникальное имя группы. Допускается использование следующих символов: буквы латинского алфавита, цифры, дефис («-») и нижнее подчёркивание («_»).

    • Режим группы backend-серверов - режим определяет, какой протокол будет использоваться для взаимодействия с серверами бэкенда: HTTP или TCP. При выборе режима HTTP отобразится таблица «Заголовки HTTP ответа» для просмотра HTTP-заголовков ответов, которые был настроен для группы backend-серверов. Таблица предназначена для верификации установленных значений определённых заголовков и подтверждения соответствия конфигурации заданным параметрам.

    • Алгоритм балансировки - алгоритм балансировки нагрузки, который будет использоваться для распределения запросов между доступными серверами. Возможно указать следующие алгоритмы:

      • source-address - распределяет запросы на основе исходного IP-адреса клиента;

      • round-robin - распределяет запросы циклическим образом, последовательно отправляя каждый запрос следующему в очереди серверу. Используется по умолчанию;

      • least-connection - распределяет запросы на сервер с наименьшим количеством активных подключений.

    • Проверка состояния узла (без HTTP) - выбрать протокол проверки состояния серверов, входящих в группу backend-серверов. Доступно при выборе режима группы backend-серверов - «tcp». Данный параметр обеспечивает автоматическое отслеживание доступности серверов и исключение из пула недоступных экземпляров, что способствует повышению отказоустойчивости системы. Возможно выбрать следующие протоколы проверок:

      • ldap - проверка состояния сервера через протокол LDAP;

      • mysql - проверка состояния сервера через протокол MySQL;

      • redis - проверка состояния сервера через протокол Redis;

      • pgsql - проверка состояния сервера через протокол PostgreSQL;

      • smtp - проверка состояния сервера через протокол SMTP.

    • HTTP-проверка состояния узла - блок компонентов, предназначенный для настройки и проведения оценки доступности веб-приложений, осуществляющих предоставление информации о своём состоянии через HTTP-запросы. Данный блок обеспечивает мониторинг работоспособности серверов в составе группы посредством инициации HTTP-запросов и последующего анализа полученных ответов.

      • URI - задать конечную точку, которая будет использоваться для проверки работоспособности сервера. URL должен начинаться с символа «/» и не должен содержать символ «#» или пробел.

      • Метод - выбрать используемый HTTP-метод проверки работоспособности сервера. Возможно выбрать следующие методы:

        • options - используется для запроса метаданных о поддерживаемых HTTP-методах на сервере;

        • get - запрашивает ресурс с сервера, включая заголовки и тело ответа;

        • head - аналогичен GET, но возвращает только заголовки ответа без тела;

        • post - отправляет данные на сервер для обработки;

        • put - используется для обновления ресурса на сервере.

      • Проверяемый атрибут ответа - блок настройки условия, которое должно выполняться для того, чтобы сервер считался доступным в процессе проверки состояния. Условие может быть основано на HTTP-статусе ответа - «Код ответа» или содержимом тела ответа - «Тело».

        • Код ответа - ожидаемый HTTP-статус ответа, который должен быть возвращён сервером для успешного прохождения health check. Возможно указать значение в диапазоне от «200» до «399». Поле становится доступным для ввода при условии, что значение компонента «Проверяемый атрибут ответа» установлено как «Код ответа».

        • Содержимое тела ответа - содержимое строки в теле HTTP-ответа. Если указанная строка присутствует в теле ответа, сервер считается доступным. Поле становится доступным для ввода при условии, что значение компонента «Проверяемый атрибут ответа» установлено как «Тело».

    • Заголовки HTTP ответа - блок настройки HTTP-заголовков, которые будут добавлены к ответам, отправляемых через обратный прокси-сервер. Настройки доступны при выборе режима группы backend-серверов - «http». Для добавления заголовков необходимо нажать кнопку «+ Добавить» и в открывшемся окне «Добавить заголовок HTTP ответа» внести следующие параметры:

      • Наименование - указать уникальное имя заголовка. Допускается использование следующих символов: буквы латинского алфавита в верхнем и нижнем регистре, дефис («-»).

      • Значение - значение заголовка HTTP-ответа. Допускается использование только латинские буквы, цифры и символы ASCII, за исключением «'», «"». Значение не должно начинаться с пробела или спецсимволов: «//», «-».

    • Серверы - таблица настроек серверов в группе. Для добавления сервера необходимо нажать кнопку «+ Добавить» и в открывшемся окне «Добавление сервера» внести следующие параметры:

      • Наименование сервера - указать уникальный идентификатор сервера. Допускается использование следующих символов: буквы латинского алфавита, цифры, дефис («-») и нижнее подчёркивание («_»). Максимально допустимое значение - «247» символов.

      • Адрес - IP-адрес сервера в формате IPv4 <x.x.x.x> или IPv6 <h:h:h:h:h:h:h:h:>.

      • Порт - номер порта. Возможно указать значение в диапазоне от «1» до «65535».

      • Проверка состояния сервера - включение проверки состояние сервера. Если проверка включена, то сервер будет периодически проверяться на доступность. Сервер, не прошедший проверку, автоматически исключается из пула бэкенда.

      • Использовать как резервный сервер - указать сервер в группе бэкэнда как резервный. Резервные серверы используются только в случае, если все основные серверы в пуле недоступны (например, не прошли health check или отключены). Это позволяет настроить отказоустойчивость системы, обеспечивая резервную обработку запросов.

      • Отправка заголовка прокси-протокола - настроить передачу информации о клиенте (IP-адрес, порт) от reverse proxy к серверу бэкенда для обеспечения более точного логирования и анализа трафика. Возможно выбрать следующие значения:

        • Версия 1 (текстовый формат) - данные передаются в виде текстовой строки;

        • Версия 2 (бинарный формат) - данные передаются в виде бинарных блоков;

        • Отключено - информация не передаётся.

      Для сохранения настроек сервера необходимо нажать кнопку «Добавить» (см. Рисунок – Добавление сервера в группу backend-серверов).

      ../../../../_images/ngfw.rp.web.load-balancing_2.3.1.png

      Рисунок – Добавление сервера в группу backend-серверов

    • SSL-шифрование и проверка подлинности - настроить проверку подлинности SSL-сертификата. Возможно выбрать следующие значения из списка:

      • Корневой сертификат SSL - проверки подлинности SSL-сертификата backend-сервера с использованием указанного CA-сертификата. При выборе данного параметра откроется дополнительное поле «Корневой сертификат SSL», предназначенное для выбора SSL-сертификата из списка сертификатов, уже установленных в системе.

      • Без проверки сертификата сервера - отключить проверку подлинности SSL-сертификата backend-сервера.

    • Таймаут проверки установки соединения - установить таймаут ожидания ответа от backend-сервера при выполнении проверки работоспособности. Если ответ не получен в течение указанного времени, backend-сервер считается недоступным. Возможно указать значение в диапазоне от «1» до «3600» секунд.

    • Таймаут ожидания успешной попытки подключения к серверу - установить максимальное время ожидания для установления соединения с backend-сервером. Если соединение не будет установлено за указанное время, попытка считается неудачной. Возможно указать значение в диапазоне от «1» до «3600» секунд.

    • Таймаут бездействия на стороне сервера - установить максимальное время, в течение которого соединение с backend-сервером остаётся неактивным. Если за это время не происходит никакой активности, соединение закрывается. Возможно указать значение в диапазоне от «1» до «3600» секунд.

  2. По завершению настроек нажать кнопку «Добавить» (см. Рисунок – Добавление группы backend-серверов).

../../../../_images/ngfw.rp.web.load-balancing_2.3.2.png

Рисунок – Добавление группы backend-серверов

Правило для группы backend-серверов

Для управления распределением трафика между серверами группы backend-серверов используются правила. Правила предоставляют функционал для гибкой и контролируемой маршрутизации запросов, что является особенно важным в сложных системах с большим количеством серверов и сервисов. Они предоставляют возможность разработки сложных алгоритмов маршрутизации, основанных на параметрах запроса таких как URL-путь, доменное имя или использование SSL/TLS. Каждое правило определяет условия, при которых запросы перенаправляются на соответствующие серверы.

Для создания правил в группе backend-серверов необходимо выполнить следующие действия:

  1. В таблице «Группы Backend-серверов» выбрать нужную группу, нажав ЛКМ по соответствующей строке.

  2. В открывшемся окне «Группа Backend-серверов <имя_группы>» нажать кнопку «+ Добавить» в таблице «Правило для группы backend-серверов».

  3. В окне «Добавление правила группы backend-серверов» внести необходимые параметры:

    • Номер правила - уникальный идентификатор правила. Возможно указать значение в диапазоне от «1» до «10000».

    • Шаблоны поиска совпадений в пути URL - таблица шаблонов поиска в URL. Для добавления шаблона необходимо нажать кнопку «+ Добавить» и в открывшемся окне «Добавить шаблон поиска в URL» указать следующие обязательные параметры (см. Рисунок – Добавление шаблона поиска в URL):

      • Режим поиска - позволяет настроить условия правила для маршрутизации запросов на основе URL-пути. Возможно выбрать следующие значения:

        • begin - Совпадение в начале - запрос соответствует правилу, если URL начинается с указанного значения;

        • end - Совпадение в конце - запрос соответствует правилу, если URL заканчивается на указанное значение;

        • exact - Полное совпадение - запрос соответствует правилу, если URL полностью совпадает с указанным значением.

      • Содержимое шаблона поиска в URL - значение URL-пути, используемое для сопоставления. Значение должно начинаться с символа «/». Допустимо использование букв латинского алфавита и цифр. В строке могут присутствовать следующие символы: «.», «-», «/», «-».

      ../../../../_images/ngfw.rp.web.load-balancing_2.3.1.1.png

      Рисунок – Добавление шаблона поиска в URL

    • Шаблоны поиска совпадения в доменном имени - таблица шаблонов поиска в доменном имени. Для добавления шаблона необходимо нажать кнопку «+ Добавить». В открывшемся окне «Добавить шаблон поиска в доменном имени» указать в поле «Содержимое шаблона поиска в доменном имени» значение доменного имени, используемое для сопоставления (см. Рисунок – Добавление шаблона поиска совпадения в доменном имени). Максимальная длина доменного имени не должна превышать 242 символов. В составе доменного имени разрешены точка и дефис, при условии, что они не находятся на первой и последней позициях. Длина каждой доменной группы не должна превышать 63 символов. Количество доменных групп, разделённых точками, не должно превышать 127.

      ../../../../_images/ngfw.rp.web.load-balancing_2.3.1.2.png

      Рисунок – Добавление шаблона поиска совпадения в доменном имени

    • URL для перенаправления - перенаправление (редирект) запросов на указанный URL. Данная функция позволяет эффективно управлять миграцией доменных имён, обновлением API, принудительным переходом на протокол HTTPS и другими сценариями, требующими изменения адреса запроса. Значение должно начинаться с символа «/». Допустимо использование букв латинского алфавита и цифр. В строке могут присутствовать следующие символы: «.», «-», «/», «-». Максимальная длина значения не должна превышать 242 символов.

    • Наименование сервера - имя сервера, на который будет направлен трафик соответствующий данному правилу. Допускается использование следующих символов: буквы латинского алфавита, цифры, дефис («-») и нижнее подчёркивание («_»).

    • Параметры соответствия SSL - настроить условия правила для маршрутизации запросов на основе SSL/TLS и связанных с ним параметр Server Name Indication (SNI). SNI — это расширение протокола TLS, которое позволяет клиенту указать имя домена в начале SSL-соединения. Данная функция особенно актуальна для работы с несколькими доменами на одном IP-адресе. Возможно выбрать следующие параметры сопоставления данных:

      • req-ssl-sni - сопоставление SNI из запроса клиента;

      • ssl-fc-sni - сопоставляет значение SNI, извлечённое из фронтенд-соединения (frontend connection) SSL/TLS. Используется для проверки SNI на уровне входящего соединения;

      • ssl-fc-sni-end - сопоставляет значение SNI в конце фронтенд-соединения SSL/TLS. Используется в редких случаях, когда SNI проверяется в конце соединения.

  4. По завершению настроек нажать кнопку «Добавить» (см. Рисунок – Добавление правила для группы backend-серверов).

../../../../_images/ngfw.rp.web.load-balancing_2.3.1.3.png

Рисунок – Добавление правила для группы backend-серверов

Службы обратного прокси

Раздел «Службы обратного прокси» отвечает за определение параметров точек входа для внешнего сетевого трафика. Она включает указание IP-адреса и порта, на которых будет осуществляться мониторинг входящих соединений, а также выбор протоколов. Конфигурация также определяет параметры обработки SSL/TLS для обеспечения защищённого взаимодействия с клиентами. Дополнительно она включает правила маршрутизации, такие как сопоставление доменных имён или путей запросов с соответствующими backend-серверами.

Для добавления службы обратного прокси необходимо выполнить следующие действия:

  1. Нажать кнопку «+ Добавить» в таблице «Службы обратного прокси» и в открывшемся окне «Добавление службы обратного прокси» внести следующие параметры (см. Рисунок – Добавление службы обратного прокси):

    ../../../../_images/ngfw.rp.web.load-balancing_2.4.1.png

    Рисунок – Добавление службы обратного прокси

    • Наименование - уникальное имя службы. Допускается использование следующих символов: буквы латинского алфавита, цифры, дефис («-») и нижнее подчёркивание («_»).

    • Группа backend-серверов - выбор группы backend-серверов, которая будет обрабатывать запросы.

    • Порт используемый для соединения - номер порта, на котором обратный прокси будет принимать входящие подключения для указанного сервиса. Возможно указать значение в диапазоне от «1» до «65535».

    • Перенаправлять http на https - включает автоматическое перенаправление HTTP-запросов на HTTPS.

    • Сертификат для перенаправления c http на https - выбрать сертификат(ы), который будет использоваться для шифрования трафика.

    • Режим прокси - выбрать режим работы сервиса (http или tcp) для обратного прокси, влияющий на тип обрабатываемого трафика.

    • Таймаут ожидания данных при контент-инспекции TCP-запроса - время ожидания (в миллисекундах) данных от клиента при анализе TCP-соединений. Параметр определяет сколько времени балансировщик будет ждать данные от клиента, прежде чем закрыть соединение. Возможно указать значение в диапазоне от «1» до «65535».

    • Заголовки HTTP ответа - таблица «Заголовки HTTP ответа» становится доступном для конфигурирования при выборе режима прокси «http». Для добавления заголовка HTTP ответа необходимо нажать кнопку «+ Добавить» на панели инструментов таблицы. В открывшемся окне «Добавить заголовок HTTP ответа» внести значения в следующие поля (см. Рисунок – Добавление заголовка HTTP ответа):

      • Наименование - допускается использование только латинские буквы и символ дефиса («-»). Длина значения не должна превышать 64 символов.

      • Значение - допускается использование только латинские буквы, цифры и символы ASCII, за исключением «'», «"». Значение не должно начинаться с пробела или спецсимволов: «//», «-».

      ../../../../_images/ngfw.rp.web.load-balancing_2.4.2.png

      Рисунок – Добавление заголовка HTTP ответа

    • Прослушиваемые адреса - локальный IP-адрес интерфейса, на котором обратный прокси будет принимать клиентские запросы. Для добавления IP-адрес необходимо нажать кнопку «+ Добавить» на панели инструментов. В открывшемся окне «Добавить прослушиваемый адрес» следует выбрать тип IP-адреса (IPv4 или IPv6) и указать соответствующий адрес (см. Рисунок – Добавление прослушиваемого адреса).

      ../../../../_images/ngfw.rp.web.load-balancing_2.4.3.png

      Рисунок – Добавление прослушиваемого адреса

  2. По завершению настроек нажать кнопку «Добавить» (см. Рисунок – Сохранение конфигурации службы обратного прокси).

    ../../../../_images/ngfw.rp.web.load-balancing_2.4.4.png

    Рисунок – Сохранение конфигурации службы обратного прокси

Правило для службы

Правила служб обратного прокси используются для определения условий маршрутизации и обработки входящего трафика в рамках указанного сервиса.

Для создания правил служб необходимо выполнить следующие действия:

  1. В таблице «Службы обратного прокси» выбрать нужную группу, нажав ЛКМ по соответствующей строке.

  2. В открывшемся окне «Служба <имя_группы>» нажать кнопку «+ Добавить» в таблице «Правило для службы».

  3. В окне «Добавление правила службы» внести необходимые параметры:

    • Номер правила - уникальный идентификатор правила. Возможно указать значение в диапазоне от «1» до «10000».

    • Шаблоны поиска совпадений в пути URL - таблица шаблонов поиска в URL. Для добавления шаблона необходимо нажать кнопку «+ Добавить» и в открывшемся окне «Добавить шаблон поиска в URL» указать следующие обязательные параметры (см. Рисунок – Добавление шаблона поиска в URL):

      • Режим поиска - позволяет настроить условия правила для маршрутизации запросов на основе URL-пути. Возможно выбрать следующие значения:

        • begin - Совпадение в начале - запрос соответствует правилу, если URL начинается с указанного значения;

        • end - Совпадение в конце - запрос соответствует правилу, если URL заканчивается на указанное значение;

        • exact - Полное совпадение - запрос соответствует правилу, если URL полностью совпадает с указанным значением.

      • Содержимое шаблона поиска в URL - значение URL-пути, используемое для сопоставления. Значение должно начинаться с символа «/». Допустимо использование букв латинского алфавита и цифр. В строке могут присутствовать следующие символы: «.», «-», «/», «-».

      ../../../../_images/ngfw.rp.web.load-balancing_2.4.1.1.png

      Рисунок – Добавление шаблона поиска в URL

    • Шаблоны поиска совпадения в доменном имени - таблица шаблонов поиска в доменном имени. Для добавления шаблона необходимо нажать кнопку «+ Добавить». В открывшемся окне «Добавить шаблон поиска в доменном имени» указать в поле «Содержимое шаблона поиска в доменном имени» значение доменного имени, используемое для сопоставления (см. Рисунок – Добавление шаблона поиска совпадения в доменном имени). Максимальная длина доменного имени не должна превышать 242 символов. В составе доменного имени разрешены точка и дефис, при условии, что они не находятся на первой и последней позициях. Длина каждой доменной группы не должна превышать 63 символов. Количество доменных групп, разделённых точками, не должно превышать 127.

      ../../../../_images/ngfw.rp.web.load-balancing_2.4.1.2.png

      Рисунок – Добавление шаблона поиска совпадения в доменном имени

    • URL для перенаправления - перенаправление (редирект) запросов на указанный URL. Значение должно начинаться с символа «/». Допустимо использование букв латинского алфавита и цифр. В строке могут присутствовать следующие символы: «.», «-», «/», «-». Максимальная длина значения не должна превышать 242 символов.

    • Группа backend-серверов - выбор из списка группы backend-серверов. Определяет какая группа backend-серверов будет обрабатывать входящие запросы, поступающие на данный сервис.

    • Параметры соответствия SSL - настроить условия правила для маршрутизации запросов на основе SSL/TLS и связанных с ним параметр Server Name Indication (SNI). SNI — это расширение протокола TLS, которое позволяет клиенту указать имя домена в начале SSL-соединения. Данная функция особенно актуальна для работы с несколькими доменами на одном IP-адресе. Возможно выбрать следующие параметры сопоставления данных:

      • req-ssl-sni - сопоставление SNI из запроса клиента;

      • ssl-fc-sni - сопоставляет значение SNI, извлечённое из фронтенд-соединения (frontend connection) SSL/TLS. Используется для проверки SNI на уровне входящего соединения;

      • ssl-fc-sni-end - сопоставляет значение SNI в конце фронтенд-соединения SSL/TLS. Используется в редких случаях, когда SNI проверяется в конце соединения.

  4. По завершению настроек нажать кнопку «Добавить» (см. Рисунок – Добавление правила службы).

../../../../_images/ngfw.rp.web.load-balancing_2.4.1.3.png

Рисунок – Добавление правила службы

Применение и сохранение настроек обратного прокси

Примечание

Для применения настроек требуется минимальная рабочая конфигурация сервиса обратного прокси.

Для применения и сохранения конфигурации обратного прокси необходимо нажать кнопку «Сохранить» в шапке раздела «Интерфейсы» (см. Рисунок – Сохранение конфигурации обратного прокси).

../../../../_images/ngfw.rp.web.load-balancing_2.5.1.png

Рисунок – Сохранение конфигурации обратного прокси

В случае несоблюдения минимальных настроек прокси-сервера система выдаст предупреждение о невозможности сохранения конфигурации (см. Рисунок – Сообщение об ошибке несоблюдения минимальной конфигурации).

../../../../_images/ngfw.rp.web.load-balancing_2.5.2.png

Рисунок – Сообщение об ошибке несоблюдения минимальной конфигурации