На устройстве МКСЗ Diamond Next поддерживается возможность осуществлять балансировку сетевого трафика при наличии нескольких сервис провайдеров. Балансировка трафика осуществляется с использованием механизма ECMP (Equal-Cost Multi-Path) и WCMP (Weighted-Cost Multi-Path). Поддерживается настройка до 4-х шлюзов по умолчанию. Для каждого маршрута можно задать параметр вес (weight) и приоритет (priority), которые определяют поведение устройства при распределении трафика и при отказе одного из провайдеров.
Механизм ECMP/WCMP позволяет решить следующие задачи:
Распределение трафика между шлюзами выполняется на основе хэширования по 5-tuple:
Результат хэш-функции определяет, через какой шлюз пойдет конкретный поток. Все пакеты одного потока всегда будут уходить через один и тот же шлюз, что обеспечивает симметричность сессий и исключает переупорядочивание пакетов внутри потока. Балансировка работает на уровне потока, а не отдельных пакетов. При небольшом количестве активных потоков фактическое распределение нагрузки может отличаться от заданного соотношения весов. При большом числе потоков распределение стремится к заданному значению.
Параметры настройки и их значения описаны в таблице ниже:
| Название параметра | Значение по умолчанию | Диапазон значений | Описание |
| Андрес назначения/префикс | отсутствует | Валидный IPv4-адрес или префикс подсети | Адрес конечного устройства или подсети, для которой задаётся маршрут. Для маршрута по умолчанию используется 0.0.0.0/0. |
| Номер VRF | 0 | 0-1000 | Идентификатор таблицы виртуальной маршрутизации (VRF), в которой создаётся маршрут. Значение 0 соответствует глобальной таблице маршрутизации. Используется в сценариях с разделением сетевых доменов. |
| IP-адрес шлюза | отсутствует | Валидный IPv4-адрес шлюза | IP-адрес шлюза следующего хопа, через который доступна заданная подсеть или адрес назначения. |
| Вес (weight) | 1 | 1-255 | Определяет долю трафика, направляемую через данный шлюз относительно остальных маршрутов в ECMP-группе. Доля трафика вычисляется как weight_i / Σweight. Пример: путь A с weight 3 и путь B с weight 1 — путь A получает 75% трафика, путь B — 25%. |
| Приоритет (priority) | 0 | 0-255 | Определяет порядок использования маршрутов. Меньшее числовое значение соответствует более высокому приоритету. Маршруты с наименьшим значением priority образуют активную ECMP-группу. Маршруты с более высоким значением priority находятся в резерве и не задействуются, пока активна хотя бы одна запись из основной группы. |
Маршрут считается недоступным в следующих случаях:
При исключении маршрута из активной ECMP-группы устройство перераспределяет трафик между оставшимися маршрутами пропорционально их весам. Если все маршруты основной группы (с наименьшим значением priority) становятся недоступными, активируются маршруты следующей группы приоритета.
Пример 1, (балансировка с равными весами): На устройстве настроены два сервис провайдера. При создании маршуртов по умолчанию для каждого сервис провайдера задан вес 1. При такой конфигурации сетевой трафик будет распределяться в соотношении 50/50 между двумя шлюзами.
Пример 2, (балансировка с разными весами): На устройстве настроены два сервис провайдера. При создании маршуртов по умолчанию для первого сервис провайдера задан вес 3, для второго сервис провайдера задан вес 1. При такой конфигурации сетевой трафик будет распределяться в соотношении: 75% принимает первый провайдер, 25% принимает второй провайдер.
Пример 3, (основной провайдер и резервный): На устройстве настроены два сервис-провайдера. При создании маршуртов по умолчанию для первого сервис провайдера задан приоритет 10, для второго сервис провайдера задан приоритет 20. При такой конфигурации сетевой трафик будет передаваться через первого сервис-провайдера. При его недоступности произойдет переключение на второго сервис-провайдера.
Пример 4, (два основных провайдер и резервный): На устройстве настроены три сервис-провайдера. При создании маршуртов по умолчанию для первого сервис-провайдера задан вес 1 и приоритет 10, для второго сервис-провайдера задан вес 1 и приоритет 10, для третьего сервис-провайдера задан вес 1 и приоритет 20. При такой конфигурации сетевой трафик будет балансироваться 50/50 через первого и второго сервис-провайдеров. При отказе обоих основных сервис-провайдеров произойдет переключение на резервного сервис-провайдера.