CLI

Обзор

Target-группа — это группа, состоящая из одного или нескольких серверов (Workers), на которые выполняется балансировка. К Сервису привязывается Target-группа по умолчанию. Дополнительные Target-группы можно назначить через правила Content Switch — как в L4, так и в L7-балансировке.

Настройка

[no] vlb target-group NAME algorithm <source-hash|wlc|wrr|maglev|maglev-source-ip|maglev-source-ip-port> [{nat-pool NAME|tcp-profile NAME|ssl-profile NAME|proxy-version (1-2)|max-pool (-1-1000)|health-monitor NAME}]

Создать Target-группу со следующими ключами:

Ключ

Аргумент

Описание

NAME

Имя Target-группы. Указывается в формате partition/name, например default/my-tg

algorithm

source-hash, wlc, wrr, maglev, maglev-source-ip, maglev-source-ip-port

Алгоритмы балансировки. maglev-source-ip и maglev-source-ip-port — варианты Maglev consistent hash по IP-адресу источника или по паре IP-адрес + порт источника

nat-pool

NAME

Имя NAT-пула, связанного с этой Target-группой

tcp-profile

NAME

Имя TCP-профиля, связанного с этой Target-группой

ssl-profile

NAME

Имя SSL-профиля для соединений от ADC к Workers

proxy-version

(1-2)

Включить Proxy Protocol указанной версии (1 или 2) для всех Workers в группе. Позволяет передать оригинальный IP-адрес клиента

max-pool

(-1-1000)

Максимальный размер пула переиспользуемых TCP-соединений от ADC к Workers. ADC сохраняет установленные соединения и переиспользует их для новых клиентских запросов, избегая повторного TCP-рукопожатия. Значение -1 отключает пул соединений

health-monitor

NAME

Имя Health Monitor для всех Workers в группе

[no] vlb target-group NAME worker ip A.B.C.D port (0-65535) [{weight (0-100000000)|health-monitor NAME|nat-pool NAME|tcp-profile NAME|vrf NAME|tls|ssl-profile NAME|proxy-version (1-2)|max-pool (-1-1000)}]

Добавить Worker в Target-группу со следующими ключами:

Ключ

Аргумент

Описание

NAME

Имя Target-группы

ip

A.B.C.D

IPv4-адрес сервера

port

(0-65535)

Порт сервера

weight

(0-100000000)

Вес сервера. Если не указан, то создаётся с 1

health-monitor

NAME

Имя Health Monitor

nat-pool

NAME

Имя NAT-пула

tcp-profile

NAME

Имя TCP-профиля

vrf

NAME

Имя VRF. Значение по умолчанию — vrf default

tls

Включить TLS-шифрование соединений от ADC к Worker

ssl-profile

NAME

SSL-профиль для соединений от ADC к Worker

proxy-version

(1-2)

Включить Proxy Protocol указанной версии (1 или 2) при передаче соединений от ADC к Worker. Позволяет передать оригинальный IP-адрес клиента

max-pool

(-1-1000)

Максимальный размер пула переиспользуемых TCP-соединений от ADC к данному Worker. Значение -1 отключает пул соединений

[no] vlb target-group NAME worker ipv6 X:X::X:X port (0-65535) [{weight (0-100000000)|health-monitor NAME|tcp-profile NAME|vrf NAME|proxy-version (1-2)|max-pool (-1-1000)}]

Добавить Worker с IPv6-адресом к Target-группе. Для IPv6 также доступны proxy-version и max-pool. Остальные ключи аналогичны IPv4.

Примечание

Для IPv6-Workers недоступны параметры tls, ssl-profile и nat-pool.

Списки Target-групп

Список целевых групп — объект конфигурации, позволяющий объединить несколько Target-групп с приоритетами. Выбор сервера выполняется в два этапа: сначала из списка выбирается активная Target-группа, затем из неё выбирается сервер по настроенному алгоритму.

[no] vlb target-group-list NAME

Создать список целевых групп и войти в режим его конфигурации.

В режиме конфигурации списка целевых групп доступны следующие команды:

target-group NAME priority (0-4294967295) [threshold <relative (0-100)|absolute (0-65535)>]

Добавить Target-группу в список или изменить параметры уже добавленной группы.

  • priority — приоритет группы в списке. Чем больше число, тем выше приоритет. Приоритет 0 исключает группу из балансировки.

  • threshold relative — относительный порог (процент действующих серверов).

  • threshold absolute — абсолютный порог (количество действующих серверов). По умолчанию — 1.

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

preempt-mode <enable|disable-but-new|disable>

Задать режим вытеснения. По умолчанию — enable.

  • enable — как только группа с более высоким приоритетом становится работоспособной, она становится активной.

  • disable-but-new — вытеснение отключено для всех групп, кроме новых: новая группа с более высоким приоритетом может стать активной сразу после создания.

  • disable — текущая активная группа остаётся активной, пока она работоспособна. При её выходе из строя активной становится работоспособная группа с наивысшим приоритетом.

Списки целевых групп можно использовать в Сервисах вместо обычных Target-групп: через default-target-group-list (см. CLI) и в правилах Content Switch (target-group-list NAME).

Примечание

Список целевых групп по умолчанию нельзя использовать в Сервисе, в котором есть Access Points типа DSR.

Show-команды

show vlb target-group [NAME]

Вывести информацию обо всех или указанной Target-группе.

Пример вывода:

Target-group tg0
 Balancing algorithm: wlc

 Workers:
 | IP                                      | Port      | Weight    | Status | VRF             |
 ----------------------------------------------------------------------------------------------
 | 192.168.11.3                            | 80        | 2         | up     | default         |
 | 192.168.11.2                            | 80        | 1         | up     | default         |
 ----------------------------------------------------------------------------------------------

 Target-group statistics:
  Total Connections:             0
  Scheduler Actions:             0
  Scheduler Commits:             0
  No Scheduler Errors:           0
  No Worker Errors:              0
  Persistence No Memory Errors:  0
  Persistence No Space Errors:   0
  TLS handshakes failed:         0
  TLS verify failed:             0

Счётчик

Описание

Total Connections

Общее количество соединений, которые ADC открыл к Workers

Scheduler Actions

Количество отбалансированных соединений (без использования Persistence-группы)

Scheduler Commits

То же, что и Scheduler Actions

No Scheduler Errors

То же, что и No Worker Errors

No Worker Errors

Нет активных серверов в Target-группе (не сконфигурированы или не прошли проверку Health Monitor)

Persistence No Memory Errors

Не хватило свободных записей в таблице Persistence (параметр persistence_hash_size в настройках платформы). Если это событие произошло, запись не добавляется в Persistence; сама сессия создаётся

Persistence No Space Errors

То же самое, что и Persistence No Memory Errors

TLS handshakes failed

Количество неудачных рукопожатий между ADC и Worker

TLS verify failed

Не удалось успешно проверить сертификат TLS при попытке установить HTTPS-соединение с одним из серверов в Target-группе

clear vlb target-group [NAME]

Очистить счётчики всех или указанной Target-группы.

show vlb target-group NAME worker

Вывести информацию обо всех серверах внутри Target-группы.

Пример вывода:

adc# show vlb target-group tg0 worker
Worker 192.168.11.2:80
 Status: up
 Weight: 1

 Worker statistics:
  In Octets:                     0
  Out Octets:                    0
  Total Connections:             0
  Active Connections:            0
  Total Persistence Bindings:    0
  Active Persistence Bindings:   0

Worker 192.168.11.3:80
 Status: up
 Weight: 1

 Worker statistics:
  In Octets:                     0
  Out Octets:                    0
  Total Connections:             0
  Active Connections:            0
  Total Persistence Bindings:    0
  Active Persistence Bindings:   0

Счётчик

Описание

In Octets

Количество байтов, переданных от сервера к ADC

Out Octets

Количество байтов, переданных ADC на сервер

Total Connections

Общее количество установленных соединений с сервером

Active Connections

Количество текущих соединений с сервером

Total Persistence Bindings

Общее количество записей Persistence, привязанных к серверу

Active Persistence Bindings

Количество записей Persistence, которые в данный момент привязаны к серверу

clear vlb target-group NAME worker

Очистить счётчики для всех Workers, привязанных к указанной Target-группе.

show vlb target-group NAME worker <ip|ipv6> <A.B.C.D|X:X::X:X> port (0-65535) [vrf VRF]

Вывести информацию о конкретном Worker внутри Target-группы.

clear vlb target-group NAME worker <ip|ipv6> <A.B.C.D|X:X::X:X> port (0-65535) [vrf VRF]

Очистить счётчики для указанного Worker.

show vlb target-group NAME worker health-monitor

Показать информацию обо всех Health Monitor, связанных с указанной Target-группой.

Пример вывода:

adc# show vlb target-group tg0 worker health-monitor
Worker 192.168.11.2:80
 Health Monitor hm0 statistics:
  Success Retries:               22
  Failed Retries:                0
  Total Errors:                  0
  Average RTT:                   0.000ms
  Weight Updates:                1

Worker 192.168.11.3:80
 Health Monitor hm1_udp statistics:
  Success Retries:               0
  Failed Retries:                0
  Total Errors:                  0
  Average RTT:                   0.000ms
  Weight Updates:                0

Счётчик

Описание

Success Retries

Количество успешных проверок состояния для Worker

Failed Retries

Количество неудачных проверок состояния Worker

Total Errors

Проблемы на стороне ADC, такие как неудачи при создании сокетов, недостаток памяти или другие внутренние ошибки

Average RTT

Среднее время отклика для запроса проверки состояния, отправленного на Worker, и полученного ответа

Weight Updates

Количество обновлений веса Worker в результате изменения его состояния

clear vlb target-group NAME worker health-monitor

Очистить счётчики всех Health Monitor, связанных с Target-группой.

show vlb target-group NAME worker ip A.B.C.D port (0-65535) [vrf VRF] health-monitor

Показать информацию о Health Monitor для указанного Worker.

clear vlb target-group NAME worker ip A.B.C.D port (0-65535) [vrf VRF] health-monitor

Очистить счётчики Health Monitor для указанного Worker.

show vlb target-group-list [NAME]

Показать информацию обо всех списках Target-групп или об указанном списке: состав групп, приоритеты, пороги, текущую активную группу.