10.4.1. WEB¶
Описание¶
Cервис — это виртуальная сущность, агрегирующая в себе все настройки, которые описывают логику обработки запросов для группы Acccess points. А именно: Content Switch/Modification Rules, Persistence, Target-группа по умолчанию, SSL сертификаты.
Настройка¶
Перейдите в Traffic Management -> Services.

Для того, чтобы создать Сервис, нажмите на кнопку Add.
Для того, чтобы удалить Сервис, выберите нужный, нажав на чекбокс напротив имени Сервиса, далее нажмите на кнопку Delete или в колонке Actions на иконку корзины.
Для того, чтобы обновить список Сервисов, нажмите на кнопку Refresh.
Примечание
Вы можете удалить все Сервисы. Для этого нажмите на чекбокс напротив колонки Name, и далее на Delete
При добавлении нового Сервиса система попросит вас указать его название и Target-группу. Эти поля являются обязательными.
Необязательными полями являются
Persistence и Persistence timeout (timeout, указанный в сервисе является более приоритетным, чем timeout в Persistence-группе)

После того, как все параметры добавлены, необходимо нажать на кнопку Add.
Если в последующем понадобится изменить/добавить информацию, то необходимо в колонке Actions нажать на значок Редактирования.
Важно
После внесения или удалении информации (Access points, Content Modification/Swithc Rules), обязательно нужно сохранить настройки, нажав на кнопку Save

Рассмотрим отдельно Access points, Content Modification Rules и Content Switch Rules.
Access points¶
Access point (Точка доступа) — это виртуальная точка доступа, которая описывается уникальным ключом из маски подсети, порта, VRF, типа и используется для предоставления доступа клиентов к сервису.
Чтобы добавить Access point, нажмите кнопу Add. Система попросит вас ввести следующие поля:

Поле |
Описание |
---|---|
IP |
IP-адрес, который будет слушать балансировщик. Можно указать как подсеть, так и единичный адрес с маской /32 |
Port |
Порт, который будет слушать балансировщик. Можно указать |
Type |
Тип точки доступа, который определяет, какие именно настройки будут применены для обработки трафика на Access point |
VRF |
По умолчанию на балансировщике создается vrf default |
Access list |
|
TCP profile |
Рассмотрим типы Access point:
Тип Access point |
Описание |
---|---|
l4-tcp/udp |
L4-балансировка TCP или UDP трафика. В этом режиме балансировщик не терминирует на себе сессии. Для переключения
необходимо установить параметр |
tcp |
L7-балансировка TCP-трафика. Работает только TCP-стек и балансировка |
ssl |
L7-балансировка шифрованного трафика. На данный момент поддерживается TLS 1.2. Работает только TCP-стек, SSL Offloading и балансировка. Не работает HTTP-парсер, то есть не будут работать Content Switch/Modification Rules |
http |
L7-Балансировка HTTP-трафика. Работает TCP-стек, балансировка и HTTP-парсер, поэтому доступны Content Switch/Modification Rules |
https |
L7-Балансировка https-трафика. Работает TCP-стек, SSL Offloading и балансировка, а также HTTP-парсер, то есть доступны Content Switch/Modification Rules, использование сертификатов и цепочек сертификатов |
Примечание
На настоящий момент шифрование работает только для сессий между клиентом и балансировщиком. После балансировщика трафик идет нешифрованным.
Content Modification Rules¶
Правила изменения контента позволяют вставлять/удалять/изменять различную информацию в заголовки запросов пользователей к серверу и заголовки ответов от сервера.
При добавлении нового правила система попросит заполнить следующие поля:

Поле |
Описание |
---|---|
ID |
Идентификационный номер правила. Выполняется по порядку. В отличии от ID в Content Switch Rules обработка останавливается, когда будут применены все правила |
Type |
Тип операции. Поддерживаются следующие типы операций:
|
Name |
Название заголовка, куки или значение URL |
Value |
Значение, которое будет вставляться в поле Name. Более подробно будет описано ниже |
vADC предоставляет специальные переменные, чтобы автоматически добавлять необходимую информацию к таким заголовкам.
Value |
Описание |
---|---|
|
Соответствует IP-адресу клиента |
|
Соответствует номеру порта клиента |
|
Соответствует IP-адресу Access point в запросе |
|
Соответствует номеру порта Access point |
|
Протокол, например, HTTP или HTTPS |
|
Значение заголовка Host в HTTP-запросе |
|
Значение URI в HTTP-запросе |
|
Добавляет |
|
Добавляет |
|
Добавляет |
Примеры
Следующие правила модификации контента:

добавят в заголовки информацию:
< X-Real-IP: 192.168.10.2
< Forwarded: for=192.168.10.2
< TrafficSoft: 11.0.0.1:80
Преобразование заголовка X-Forwarded-For в Forwarded:

В этом случае, если на устройство поступит HTTP-запрос, уже содержащий заголовок X-Forwarded-For
, то к нему будет добавлен IP-адрес клиента, а также будет создан заголовок Forwarded
, содержащий все узлы из заголовка X-Forwarded-For
. Например, в HTTP-запросе содержится заголовок:
X-Forwarded-For: 12.34.56.78, 23.45.67.89
Тогда к пакету будет добавлен следующий заголовок:
Forwarded: for= 12.34.56.78, for=3.45.67.89, for=12.34.56.78:8000
Примечание
Следует отметить, что в этом случае, в заголовок Forwarded
нельзя добавить значения из других заголовков X-Forwarded-By
/Proto
/Host
и т.д., т.к. нельзя точно определить на каких узлах эти заголовки были добавлены в запрос.
По умолчанию vADC заменяет значение заголовка, если он уже находится в поступившем HTTP-запросе. Если нужно добавить заголовок к уже существующему, то поле значения заголовка должно начинаться с префикса
$add:
, например:

Важно
Если в vADC будет добавлено несколько правил на модификацию одного и того же заголовка с переменными $x_forwarded_for
, $forwarded
, $transition_forwarded_for
, то будут применены следующие правила:
Для добавления к существующем заголовку (если таковой имеется) будет использоваться первое добавленное правило.
Остальные правила создадут дополнительные заголовки, как если бы к ним был добавлен префикс
$add:
.Если происходит удаление/изменение первого правила, то для добавления информации к существующему заголовку будет использовано правило, добавленное вторым.
и т.д.
Важно
Если в одном и том же заголовке будет добавлено сразу несколько переменных $x_forwarded_for
, $forwarded
и $transition_forwarded_for
, то использоваться будет только первая переменная. Остальные переменные будут удалены.
Content Switch Rules¶
Это правила, по которым мы можем выбрать группу серверов для балансировки.
При добавлении нового правила система попросит заполнить следующие поля:

Поле |
Описание |
---|---|
ID |
Приоритет правила. Если создано несколько правил, то их обработка остановится, когда будет выполнено одно из них. Например, создано 4 правила: условия в правилах с ID = 1 и ID = 2 не совпали с параметрами запроса от клиента, ID = 3 совпало, проверка прекращается, правило с ID = 4 не проверяется |
Expression |
Выражение. Поддерживаются следующие логические операции:
и следующие переменные:
|
Target Group |
Tartget-группа серверов, на которые будут балансироваться запросы |
Пример
Создадим правило:
Если заголовок Host
содержит домен trafficsoft.ru И в URL-адресе не содержится /images/
ИЛИ заголовок NFWare
равен test
, то отправить запрос на Target-группу tg1.
Тогда Expression будет следующим:
