L3/L4 балансировка

L3/L4 балансировка — механизм распределения входящего сетевого трафика между внутренними портами инстансов на сетевом (L3) и транспортном (L4) уровнях. Балансировка выполняется для внешних эндпоинтов, к которым привязываются правила распределения трафика на внутренние ресурсы.

Функция предназначена для балансировки трафика, поступающего из внешней сети во внутреннюю через логический маршрутизатор. Трафик может балансироваться только между инстансами, отправка трафика на внешние узлы не поддерживается. Распределение реализуется средствами SDN Amano на уровне OpenFlow и поддерживает распределённую маршрутизацию.

Доступ к интерфейсу осуществляется через боковое меню: NFV → L3/L4 балансировка.

Важно

  • Для работы функциональности необходима сетевая подсистема Amano и лицензия L3L4Balancer.

  • Балансировка применяется к трафику, проходящему через маршрутизатор из внешней сети во внутреннюю. Для балансировки HTTP/HTTPS на уровне приложений используйте раздел NFV → L7 балансировка.

  • Набор доступных алгоритмов и полей хеширования определяется конфигурацией облака.

Основные возможности

  • Создание внешних эндпоинтов с IP-адресами в выбранной сети.

  • Создание нескольких правил L3- или L4-балансировки для одного эндпоинта.

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

  • Выбор алгоритма балансировки и полей хеширования.

  • Указание внешнего и внутреннего транспортных портов для L4-правил.

  • Управление созданными эндпоинтами и правилами, просмотр их параметров и статуса.

Управление эндпоинтами

Эндпоинт — внешняя точка приёма трафика, определяемая IP-адресом в выбранной внешней сети. Правила L3/L4-балансировки создаются внутри эндпоинта.

Создание эндпоинта:

  1. Перейти в раздел NFV → L3/L4 балансировка.

  2. Нажать Создать эндпоинт.

  3. Заполнить форму:

    • Имя — имя создаваемого эндпоинта.

    • Описание — необязательное описание.

    • Внешняя сеть — сеть, в которой будет размещён внешний IP-адрес эндпоинта. Для выбора доступны вкладки Сети текущего проекта, Общие сети, Все сети.

    • Внешний IP — IP-адрес из выбранной подсети внешней сети. В форме отображаются выбранная подсеть и её CIDR. Может быть назначен автоматически или введен вручную.

  4. Нажать кнопку ОК.

../../../_images/l3-l4-balancer-create1.png

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

Просмотр и редактирование эндпоинта:

  1. Нажать на имя эндпоинта в общем списке.

  2. На странице детальной информации просмотреть статус, ID, внешнюю сеть и IP-адрес, а также список правил балансировки.

  3. Для изменения параметров нажать Редактировать.

  4. В открывшейся форме изменить Имя, Описание или Статус эндпоинта (включён или выключен).

  5. Нажать ОК для сохранения изменений.

../../../_images/l3-l4-balancer-edit1.png

При редактировании эндпоинта его внешняя сеть и IP-адрес не изменяются.

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

Правила создаются для выбранного эндпоинта. Каждое правило связывает входящий трафик с внутренним портом и задаёт способ его распределения.

Важно

Для одного эндпоинта допускаются правила только одного уровня: если на эндпоинте уже создано хотя бы одно L3-правило, на нём можно создавать только другие L3-правила. Аналогично, при наличии хотя бы одного L4-правила можно создавать только L4-правила. Смешивать L3- и L4-правила в рамках одного эндпоинта нельзя.

Создание L3-правила:

  1. Открыть страницу детальной информации нужного эндпоинта.

  2. Нажать Создать L3 правило.

  3. Заполнить форму:

    • Внутренний порт — выбрать порт инстанса, на который должен направляться трафик. В таблице доступны имя, сеть, IPv4/IPv6-адреса, MAC-адрес, тип и статус порта.

    • Алгоритм балансировки — выбрать алгоритм распределения трафика. В представленном примере используется modulo_n.

    • Поля хеширования — выбрать набор полей сетевого пакета, применяемый для вычисления хеша. В представленном примере используется symmetric_l3.

  4. Нажать ОК.

../../../_images/l3-rule1.png

L3-правило используется для распределения трафика без указания транспортных портов в форме правила.

Создание L4-правила:

  1. Открыть страницу детальной информации нужного эндпоинта.

  2. Нажать Создать L4 правило.

  3. Заполнить форму:

    • Внутренний порт — выбрать порт инстанса, на который будет направляться трафик.

    • Алгоритм балансировки — выбрать алгоритм распределения трафика (например, modulo_n).

    • Поля хеширования — выбрать набор полей для вычисления хеша (например, symmetric_l3).

    • Порт во внешней сети — номер транспортного порта, на который поступает трафик, целое число от 1 до 65535.

    • Порт во внутренней сети — номер транспортного порта внутреннего сервиса, целое число от 1 до 65535.

    • Протокол IP — выбрать протокол для правила.

  4. Нажать ОК.

../../../_images/l4-rule1.png

Например, при указании внешнего порта 9090 и внутреннего порта 8080 входящие соединения на порт 9090 внешнего IP-адреса эндпоинта направляются на порт 8080 выбранного внутреннего ресурса согласно алгоритму балансировки.

Важно

  • L3- и L4-правила различаются набором параметров: L4-правило дополнительно позволяет указать транспортный протокол и внешние и внутренние номера портов.

  • Перед созданием правила убедитесь, что выбран правильный внутренний порт и целевой сервис доступен на соответствующем порту.

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

  • При создании L3-правил необходимо для всех правил выбирать одни и те же алгоритмы и поля хеширования для корректной работы сервиса.

  • При создании L4-правил необходимо для всех правил c одинаковым портом во внешней сети выбирать одни и те же алгоритмы и поля хеширования для корректной работы сервиса.

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

Редактирование L3-правила:

  1. Открыть страницу детальной информации эндпоинта.

  2. В разделе Правила открыть меню нужного L3-правила (три точки) и выбрать Редактировать.

  3. В открывшейся форме при необходимости изменить Внутренний порт, Алгоритм балансировки и Поля хеширования.

  4. Нажать ОК, чтобы сохранить изменения.

../../../_images/l3-rule-edit1.png

Редактирование L4-правила:

  1. Открыть страницу детальной информации эндпоинта.

  2. В разделе Правила открыть меню нужного L4-правила (три точки) и выбрать Редактировать.

  3. В открывшейся форме при необходимости изменить Внутренний порт, Алгоритм балансировки, Поля хеширования, Порт во внешней сети, Порт во внутренней сети и Протокол IP.

  4. Нажать ОК, чтобы сохранить изменения.

../../../_images/l4-rule-edit1.png

Примечание

Изменение внутреннего порта или параметров распределения трафика может повлиять на обработку новых соединений. При редактировании L4-правила также учитывайте доступность сервиса на указанном внутреннем порту.

Алгоритм балансировки и поля хеширования

Алгоритм определяет способ выбора внутреннего ресурса при обработке входящего трафика. Поля хеширования определяют, какие сведения из заголовков пакетов участвуют в вычислении хеша.

Алгоритмы балансировки:

  • modulo_n — распределяет потоки между внутренними ресурсами по хешу. При изменении количества ресурсов распределение большинства потоков может измениться.

  • hash_threshold — распределяет потоки по диапазонам значений хеша. При изменении количества ресурсов переназначается примерно от четверти до половины потоков.

  • hrw — выбирает ресурс с наибольшим вычисленным весом для потока. При добавлении или удалении ресурса позволяет сохранить привязку большей части потоков к прежним ресурсам.

  • iter_hash — последовательно вычисляет хеш для выбора ресурса. При изменении количества ресурсов переназначает сравнительно небольшую долю потоков.

Поля хеширования:

  • eth_src — MAC-адрес источника.

  • symmetric_l4 — MAC-адреса, VLAN, IP-адреса, сетевой протокол и порты TCP/SCTP. Трафик в обоих направлениях получает одинаковый хеш при симметричном пути на канальном уровне. Порты UDP не учитываются.

  • symmetric_l3l4 — IP-адреса, сетевой протокол и порты TCP/SCTP без учёта заголовков канального уровня. Подходит при различии путей на канальном уровне; порты UDP не учитываются.

  • symmetric_l3l4+udp — аналог symmetric_l3l4, но дополнительно учитывает порты UDP.

  • symmetric_l3 — IP-адреса источника и назначения с симметричным хешированием: обмен адресов местами не меняет результат.

  • nw_src — только IP-адрес источника.

  • nw_dst — только IP-адрес назначения.

Примечание

Алгоритм определяет способ распределения потоков, а поля хеширования — какие характеристики трафика используются для этого распределения. Выбор полей влияет на то, какие соединения будут направляться на один и тот же внутренний ресурс.

Просмотр правил

На странице детальной информации эндпоинта в разделе Правила отображаются созданные правила балансировки.

Для каждого правила выводятся его статус и внутренний IP-адрес, а также параметры балансировки. Для L4-правил дополнительно отображаются порты источника и назначения и протокол IP.

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

Удаление правил и эндпоинтов

Удаление L3-правила:

  1. Открыть детальную информацию эндпоинта.

  2. В разделе Правила выбрать нужное L3-правило.

  3. Нажать Удалить.

  4. В окне подтверждения проверить ID правила и нажать Подтвердить.

../../../_images/l3-rule-delete1.png

Удаление L4-правила:

  1. Открыть детальную информацию эндпоинта.

  2. В разделе Правила выбрать нужное L4-правило.

  3. Нажать Удалить.

  4. В окне подтверждения проверить ID правила и нажать Подтвердить.

../../../_images/l4-rule-delete1.png

Удаление эндпоинта:

  1. Перейти в NFV → L3/L4 балансировка.

  2. Выбрать эндпоинт и нажать Удалить.

  3. Ознакомиться с предупреждением и подтвердить операцию.

../../../_images/l3-l4-balancer-delete1.png

Важно

Удаление эндпоинта приводит к удалению всех связанных с ним правил балансировки. Перед подтверждением операции убедитесь, что эти правила больше не используются.