Правила балансировки нагрузки настраиваются на уровне network-policy load-balancing с использованием синтаксиса UPL. Подробнее о структуре команд — в разделе «UserGate Policy Language».
Для отображения информации о всех балансировщиках используется команда:
Admin@nodename# show network-policy load-balancing
Настройка балансировщика TCP/UDP
Настройка балансировщика TPC/UDP выполняется на уровне network-policy load-balancing tcp-udp.
Для создания балансировщика нагрузки TCP/UDP используется команда:
Для указания зоны источника, например, Trusted: src.zone = Trusted.
Подробнее о настройке зон с использованием интерфейса командной строки — в разделе «Зоны»
src.ip
Добавление списков IP-адресов или доменов источника.
Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI — в разделе «Настройка IP-адресов».
Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки — в разделе «Настройка списков URL».
Например: src.ip = lib.network("Test ip-list")
src.geoip
Указание Geo IP в качестве источника.
Например: src.geoip = RU
url.address
IP-адрес виртуального сервера.
Например: url.address = 10.10.0.20
url.port
Порт, для которого необходимо производить балансировку нагрузки.
Например: url.port = 1812
service
Протокол — TCP или UDP, для которого необходимо производить балансировку нагрузки.
Например: service = udp
scheduler
Методы распределения нагрузки на реальные серверы:
rr — round robin, каждое новое подключение передается на следующий сервер в списке, равномерно загружая все серверы.
wrr — weighted round robin, работает аналогично Round robin, но загрузка реальных серверов осуществляется с учетом весовых коэффициентов, что позволяет распределить нагрузку с учетом производительности каждого сервера.
lc — least connections, новое подключение передается на сервер, на который в данный момент установлено наименьшее число соединений.
wlc — weighted least connections, работает аналогично Least connections, но загрузка реальных серверов осуществляется с учетом весовых коэффициентов, что позволяет распределить нагрузку с учетом производительности каждого сервера.
Например: scheduler(rr)
real_server
Реальные сервера, на которые будет перенаправляться трафик. Для сервера необходимо указать:
ip — IP-адрес сервера.
port — порт сервера, на который будут перенаправлять запросы пользователей.
weight — коэффициент, использующийся для неравномерного распределения нагрузки на реальные серверы.
mode — режим:
gate — режим Шлюз: для перенаправления трафика на виртуальный сервер используется маршрутизация.
masq — режим Маскарадинг: для перенаправления трафика на виртуальный сервер используется DNAT.
masq-snat — режим Маскарадинг с подменой IP-источника: режим аналогичен режиму Маскарадинг, но UserGate SWG подменяет IP-адрес источника на свой.
Например: real_server(masq, 10.10.0.9:1812, 50)
ipvs_fallback
Настройка аварийного режима:
ip — IP-адрес сервера.
port — порт сервера, на который будут пересылаться запросы пользователей.
mode — режим:
gate — режим Шлюз: для перенаправления трафика на виртуальный сервер используется маршрутизация.
masq — режим Маскарадинг: для перенаправления трафика на виртуальный сервер используется DNAT.
masq-snat — режим Маскарадинг с подменой IP-источника: режим аналогичен режиму Маскарадинг, но UserGate SWG подменяет IP-адрес источника на свой.
Например: ipvs_fallback(masq, 10.10.100.100:1812)
monitor
Настройка мониторинга реальных серверов:
kind — тип проверки:
ping: проверка доступности узла с использованием утилиты ping.
connect: проверка работоспособности узла путём установления TCP-соединения на определённый порт.
negotiate: проверка работоспособности узла посылкой определенного HTTP- или DNS-запроса и сравнением полученного ответа с ожидаемым ответом.
service — необходимо указать (HTTP или DNS) при использовании проверки типа negotiate.
request — запрос необходимо указать при использовании проверки типа negotiate.
response — ожидаемый ответ; необходимо указать при использовании проверки типа negotiate.
interval — интервал времени, через который должна выполняться проверка.
timeout — интервал времени ожидания ответа на проверку.
max-failures — количество попыток проверки реальных серверов, по истечению которого сервер будет считаться неработоспособным и будет исключен из балансировки.
Указание профилей серверов reverse-proxy, на которые будет распределяться нагрузка. Подробнее о создании и настройке серверов reverse-proxy с использованием CLI — в разделе «Настройка серверов reverse-прокси».
Например, profile("Reverse proxy server1", "Reverse proxy server2")
Команда для редактирования параметров правила балансировки reverse-прокси:
Admin@nodename# set network-policy load-balancing reverse-proxy <position> upl-rule
Параметры, доступные для обновления, аналогичны параметрам, доступным при создании правила балансировки серверов reverse-прокси.
Команды для отображения информации о всех правилах балансировки reverse-proxy:
Admin@nodename# show network-policy load-balancing reverse-proxy
Команда для отображения информации об определённом правиле балансировки reverse-proxy:
Admin@nodename# show network-policy load-balancing reverse-proxy <position>
Пример создания правила балансировщика нагрузки reverse-proxy с использованием UPL: