38 KiB
8. Балансировщик: конфигурация
← Оглавление · ← Раздел 7: Балансировщик: аппаратная платформа
Настройка балансировщика (EcoFilter Balancer) начинается после установки прошивки и конфигурации сегмента управления. В отличие от фильтра, на балансировщике нет дефолтной конфигурации — все секции (порты, линки, группы балансировки, фильтры) необходимо создавать вручную.
8.1. CLI: операционный режим / конфигурационный режим (edit)
CLI балансировщика, как и у фильтра, имеет два режима работы:
| Режим | Переход | Назначение |
|---|---|---|
| Операционный | по умолчанию | Просмотр информации: команды show |
| Конфигурационный | команда edit |
Изменение всех настроек устройства |
Отличие от фильтра: на фильтре для перехода в конфигурационный режим используется команда
config, а на балансировщике —edit.
8.1.1. Интерфейс похож на Juniper CLI
Интерфейс командной строки балансировщика очень похож на CLI Juniper. Настройки задаются с помощью команды set:
set <путь> <параметр> <значение>
Для тех, кто знаком с оборудованием Juniper, работа с CLI балансировщика не вызовет затруднений.
8.1.2. apply — применить, save — сохранить в startup
После внесения изменений их необходимо применить и сохранить:
Внесение изменений ──► apply ──► save
│ │ │
│ │ └─ Сохранение в startup-config
│ │ (переживёт перезагрузку)
│ │
│ └─ Применение конфигурации
│ (изменения вступают в силу)
│
└─ Изменения только в буфере
(не активны, не сохранены)
| Команда | Действие |
|---|---|
apply |
Применяет конфигурацию — изменения вступают в силу |
save |
Сохраняет конфигурацию в startup-config (переживёт перезагрузку) |
Важно: в прошивке пилотного проекта (Урал) команда
applyодновременно и применяла, и сохраняла конфигурацию в startup-config. В текущих (федеральных) прошивках это поведение изменено:applyтолько применяет, а для сохранения нужна отдельная командаsave.
8.2. Обновление прошивки: call rdp firmware download / call rdp install
Обновление прошивки балансировщика выполняется в два этапа — скачивание и установка:
Этап 1: Скачивание
call rdp firmware download <URL> <имя_файла>
Скачивает образ прошивки с указанного URL и сохраняет его на устройстве под указанным именем.
Этап 2: Установка
call rdp install <имя_файла>
Устанавливает прошивку из указанного файла. По завершении команда выводит результат — OK или сообщение об ошибке.
Дополнительные команды
| Команда | Действие |
|---|---|
call rdp firmware list |
Показать список файлов прошивок на устройстве |
call rdp firmware delete |
Удалить файл прошивки |
call rdp firmware set-active |
Установить активную прошивку на указанный раздел |
show rdp firmware version |
Показать состояние прошивок (версия, активность, tries) |
8.2.1. Два раздела прошивок (A/B), автоматический rollback (3 попытки / 20 мин)
Как и на фильтре, балансировщик хранит два раздела прошивок — A и B:
| Раздел | Описание |
|---|---|
| A | Первый раздел для прошивки |
| B | Второй раздел для прошивки |
Для каждого раздела отображается:
- Активность — активна эта прошивка или нет;
- Версия — номер версии прошивки;
- Tries — счётчик попыток загрузки.
Новая прошивка всегда устанавливается вместо неактивной в данный момент.
Механизм автоматического rollback:
Балансировщик отслеживает количество неудачных попыток загрузки с конкретной прошивки. Если устройство более 3 раз подряд не смогло загрузиться с определённой прошивки в течение приблизительно 20 минут, эта прошивка считается ненадёжной, и балансировщик автоматически переключается на другой раздел.
Практический совет: если вам нужно несколько раз перезагрузить балансировщик в короткий промежуток времени (например, для тестирования), помните о лимите в 3 перезагрузки. После третьей перезагрузки за короткий период прошивка будет признана нестабильной. Количество попыток и временной интервал не настраиваются — они зашиты в прошивке.
8.2.2. call rdp firmware reset-tries
Для сброса счётчика попыток загрузки используется команда:
call rdp firmware reset-tries
Эта команда обнуляет значение tries, позволяя продолжить перезагрузки без риска автоматического переключения на другой раздел. В промышленной эксплуатации эта команда практически не требуется, но знать о ней полезно.
8.3. Настройка физических портов
Настройка физических портов — это первый шаг конфигурации балансировщика. Поскольку дефолтной конфигурации нет, все порты необходимо создавать вручную.
Для каждого порта задаются следующие параметры:
| Параметр | Описание |
|---|---|
| Имя порта | Произвольное имя (рекомендуется формат p<порт>-<линия>, для 100G — p<порт>) |
| number | Номер физического интерфейса на лицевой панели (1–32) |
| lane | Номер линии внутри физического порта (1–4) |
| speed | Скорость порта: 10G, 25G или 100G |
| mtu | Максимальный размер кадра |
| description | Текстовое описание порта |
Пример конфигурации двух 10-гигабитных портов на одном физическом интерфейсе:
set ports p2-1 number 2 lane 1 speed 10g
set ports p2-2 number 2 lane 2 speed 10g
8.3.1. Имя порта, номер физического порта (number), линия (lane), скорость (speed)
Имя порта может быть произвольным, однако рекомендуется придерживаться единообразной схемы именования, отражающей номер физического порта и номер линии:
p<номер_порта>-<номер_линии>
Например:
| Имя порта | Физический порт | Линия | Скорость | Описание |
|---|---|---|---|---|
p2-1 |
2 | 1 | 10G | Порт 2, линия 1 — первый 10G-канал |
p2-2 |
2 | 2 | 10G | Порт 2, линия 2 — второй 10G-канал |
p2 |
2 | — | 100G | Порт 2, все линии — 100G-канал |
8.3.2. 10G: указание lane (1–4), 100G: все lane задействованы
Поведение параметра lane зависит от выбранной скорости:
При 10G (или 25G):
Каждый физический порт QSFP28 содержит 4 линии. При использовании гидры (breakout-кабеля) каждая линия становится отдельным 10-гигабитным портом. Для каждого такого порта необходимо явно указать номер линии (lane 1, lane 2, lane 3, lane 4):
set ports p2-1 number 2 lane 1 speed 10g
set ports p2-2 number 2 lane 2 speed 10g
set ports p2-3 number 2 lane 3 speed 10g
set ports p2-4 number 2 lane 4 speed 10g
В результате из одного физического QSFP28-разъёма получается 4 независимых порта по 10 Гбит/с.
При 100G:
Все 4 линии объединены в один канал. Параметр lane не указывается, так как задействованы все линии:
set ports p2 number 2 speed 100g
Рекомендация: все физические порты настраиваются в соответствии со схемой организации связи на конкретной площадке. Единых «стандартных» настроек нет — конфигурация полностью зависит от того, какие устройства и на каких скоростях подключены к балансировщику.
8.4. Настройка линков (объединение двух портов LAN+WAN в сторону оператора)
Линк (link) в терминологии балансировщика — это объединение двух портов (LAN и WAN) в сторону оператора связи:
Оператор связи
│
┌────┴────┐
│ Байпас │
└──┬───┬──┘
│ │
LAN WAN ← это один линк
│ │
┌──┴───┴──┐
│Балансир.│
└─────────┘
Каждый линк всегда содержит ровно один LAN-порт и ровно один WAN-порт.
Настройка линка:
set links <имя_линка> lan-port <имя_LAN_порта> wan-port <имя_WAN_порта>
set links <имя_линка> description "<описание>"
Пример:
set links link1 lan-port p2-2 wan-port p2-1
set links link1 description "Bypass1-Mon0/Mon1"
| Параметр | Описание |
|---|---|
| Имя линка | Произвольное название (рекомендуется единообразная схема) |
| lan-port | Порт в сторону абонентов (LAN) |
| wan-port | Порт в сторону интернета (WAN) |
| description | Описание — к какому байпасу и интерфейсу подключен линк |
Рекомендация: в описании линка указывайте, к какому конкретно байпасу и к каким его интерфейсам подключён данный линк. Это значительно упрощает диагностику.
8.5. Настройка группы балансировки
После настройки портов и линков необходимо создать группу балансировки (balance group) и привязать к ней группы портов в сторону фильтров.
Линки (оператор) Группа балансировки Фильтры
│ │ │
┌────┴────┐ ┌──────┴──────┐ ┌─────┴─────┐
│ link1 │ │ │ │ Filter │
│ link2 │──────► │ Balance │──────│ Group 1 │──► Фильтр 1
│ link3 │ Flow │ Group │ │ Group 2 │──► Фильтр 1
│ ... │ rules │ │ │ Group 3 │──► Фильтр 2
└─────────┘ └──────┬──────┘ │ ... │
│ └───────────┘
Профиль Keep-Alive
(liveness)
8.5.1. Привязка групп портов в сторону фильтров (filter groups)
К группе балансировки привязываются filter groups — пары портов (LAN + WAN) в сторону фильтров:
set balance-group <имя_группы> filter-group <имя_filter_group> lan-port <порт> wan-port <порт>
Количество filter groups определяется количеством пар интерфейсов в сторону фильтров:
| Конфигурация площадки | Количество filter groups |
|---|---|
| 1 фильтр, 16 портов (8 пар LAN/WAN) | 8 |
| 10 фильтров, 16 портов каждый (80 пар) | 80 |
Каждая filter group объединяет один LAN-порт и один WAN-порт, смотрящие в сторону конкретной пары интерфейсов фильтра.
8.5.2. nat-unit-queues: количество ядер фильтра минус один
Параметр nat-unit-queues сообщает балансировщику количество ядер на подключённых фильтрах, которые участвуют в обработке трафика:
set ecofilter-balancer nat-unit-queues <число>
Значение всегда равно общему количеству ядер процессора фильтра минус один:
| Модель фильтра | Ядер всего | nat-unit-queues |
|---|---|---|
| Xeon 2695 (18 ядер) | 18 | 17 |
| Xeon 2699 (22 ядра) | 22 | 21 |
| Xeon Gold 6212 (24 ядра) | 24 | 23 |
Причина вычитания единицы: на фильтре все ядра, кроме одного, отданы под процесс EcoNAT, который обрабатывает трафик. Одно ядро — сервисное: на нём работает Linux, системные логи, управление. Оно не участвует в обработке трафика.
Этот параметр напрямую влияет на балансировку — балансировщик распределяет трафик не только между фильтрами, но и между их ядрами, обеспечивая равномерную нагрузку. В новых версиях ПО число ядер задаётся в настройках группы балансировки (параметр cores).
8.6. Профиль Keep-Alive (liveness profile)
К группе балансировки привязывается профиль Keep-Alive (liveness profile, параметр группы liveness-profile), определяющий параметры отправки keep-alive-пакетов через группы портов в сторону фильтров.
Профиль настраивается отдельно:
set liveness profile <имя_профиля> active-pairs <число>
set liveness profile <имя_профиля> initial-delay <мс>
set liveness profile <имя_профиля> interval <мс>
set liveness profile <имя_профиля> probes-down-count <число>
set liveness profile <имя_профиля> probes-up-count <число>
8.6.1. Допустимая задержка, интервал, пороги потерь и восстановления
| Параметр | Описание |
|---|---|
initial-delay |
По руководству производителя — максимально допустимая задержка между keep-alive-пакетами, при превышении которой срабатывает счётчик потерь; по эксплуатационным описаниям — пауза перед началом отправки keep-alive после поднятия интерфейсов, чтобы фильтр успел их инициализировать (например, 1000 мс). Подробнее — раздел 6.6.1 |
interval |
Периодичность отправки keep-alive-пакетов, мс (например, 100) |
probes-down-count |
Количество последовательно потерянных пакетов, после которых filter group считается неактивной (например, 5) |
probes-up-count |
Количество последовательно полученных ответов, после которых неактивная filter group снова считается активной (например, 5) |
Механизм работы: балансировщик отправляет keep-alive пакет в LAN-порт filter group и ожидает получить его через парный WAN-порт. Время прохождения пакета (time-on-path) измеряется в наносекундах — например, около 27 мкс; конкретное значение зависит от площадки.
При потере заданного количества последовательных пакетов filter group переводится в состояние bypass — трафик не отправляется на фильтр, а перекладывается из одного порта в другой на уровне логики балансировщика.
8.6.2. Минимальное количество активных пар
Параметр минимальное количество активных пар (active-pairs) определяет, при каком количестве рабочих filter groups вся группа балансировки целиком считается активной.
Пример: если задано значение 8, то группа балансировки будет считаться рабочей, пока хотя бы 8 filter groups активны — неважно, сколько их всего.
Уральский пилотный проект: минимальное количество активных пар было установлено равным общему количеству пар в сторону фильтров. В результате при потере хотя бы одного интерфейса вся группа балансировки переходила в неактивное состояние, балансировщик прекращал отправку heartbeat на байпас GL Sun, и тот переводил линки в аппаратный байпас с флапом у оператора (раздел 5.3.1). Весь трафик ТСПУ снимался из-за одного упавшего интерфейса. Такое поведение не обязательно — значение можно настроить более гибко.
8.6.3. Перебалансировка: включение/выключение
Параметр перебалансировки (rebalance, значения enable/disable) задаётся в настройках группы балансировки, а не в профиле Keep-Alive, и определяет, что происходит при выходе из строя одной из filter groups:
| Значение | Поведение |
|---|---|
| Включена | Трафик пересчитывается и распределяется по оставшимся filter groups |
| Выключена | Для упавшей filter group включается программный bypass, остальные работают без изменений |
Перебалансировка занимает определённое время и вычислительные ресурсы. При пересчёте хэша сессии могут попасть на другие интерфейсы и другие фильтры, что в общем случае может быть нежелательным: новый фильтр видит такие сессии «с середины», а контекст анализа на прежнем фильтре теряется.
Рекомендация: в федеральном проекте перебалансировку планируется отключить. При потере filter group для конкретной пары интерфейсов включается программный bypass — трафик не отправляется на фильтр, а перекладывается из LAN-порта в WAN-порт и наоборот. Последствия минимальны: небольшая часть трафика временно не фильтруется. Это меньшее зло, чем флапание линков или массовый переезд сессий при перебалансировке. Система мониторинга получает уведомления (логи, SNMP traps), и проблема устраняется вручную.
8.7. Настройка фильтров (Flow rules)
Фильтр на балансировщике — именованный набор правил (flows), который привязывается к линкам в сторону оператора (параметр apply-to-links, раздел 8.7.4). Каждое правило состоит из условия (match) и действия (action); порядок проверки задаёт приоритет (priority, раздел 8.7.3):
| Часть | Описание |
|---|---|
| Match | Условия, по которым отбирается трафик (заголовки пакетов) |
| Action | Действие с пакетом при совпадении |
8.7.1. Match-условия: VLAN, IPv4 src/dst, L4 port, MAC, MPLS, глубина тегов
Доступные условия для match-секции:
| Условие | Описание |
|---|---|
| VLAN ID | Номер VLAN-тега (например, vlan 0 id 1) |
| IPv4 source | IP-адрес источника (с маской / префиксом) |
| IPv4 destination | IP-адрес назначения (с маской / префиксом) |
| L4 port | Порт транспортного уровня (TCP/UDP) |
| MAC address | MAC-адрес источника или назначения |
| MPLS labels | Количество MPLS-меток |
| Глубина VLAN-тегов | Количество VLAN-тегов (для QinQ) |
В одном правиле можно комбинировать несколько условий одновременно. Например, одновременно проверять VLAN ID и IPv4-подсеть.
Match-условия можно использовать как для включения трафика в обработку, так и для исключения определённого трафика.
8.7.2. Actions: balancing-as mag-hash → balance group / bypass
Действие (action) определяет, что происходит с пакетом при совпадении:
| Action | Описание |
|---|---|
| balancing-as mag-hash | Отправить трафик на группу балансировки. Балансировка выполняется по хэшу от source IP, destination IP и протокола |
| bypass | Пропустить трафик прозрачно — переложить из одного порта в другой, не отправляя на фильтры |
При использовании balancing-as mag-hash дополнительно указывается целевая группа балансировки:
set filters <имя_фильтра> flows <имя_правила> action balancing-as mag-hash
set filters <имя_фильтра> flows <имя_правила> to-balance-group <имя_группы>
Пример правила, отправляющего трафик с VLAN ID 1 на фильтры:
set filters main flows traffic-to-filter-1 match vlan 0 id 1
set filters main flows traffic-to-filter-1 action balancing-as mag-hash
set filters main flows traffic-to-filter-1 to-balance-group group-filter
set filters main flows traffic-to-filter-1 priority 100
Пример правила bypass для всего остального трафика:
set filters main flows default-bypass action bypass
set filters main flows default-bypass priority 1
8.7.3. Приоритеты правил
Каждому правилу назначается приоритет (priority), определяющий порядок обработки. Пакет проверяется по правилам в порядке убывания приоритета — от высшего к низшему. Первое совпавшее правило определяет действие.
Типовая структура правил:
Приоритет Правило Action
─────────────────────────────────────────────────────
100 VLAN 1 → на фильтр balancing-as mag-hash
90 VLAN 2 → на фильтр balancing-as mag-hash
80 VLAN 3 → на фильтр balancing-as mag-hash
... ... ...
1 Всё остальное → bypass bypass
Правило с самым низким приоритетом и без match-условий (совпадает со всем) обычно задаёт action bypass. Это означает: всё, что не попало под предыдущие правила, пропускается прозрачно.
Применение для диагностики: при траблшутинге можно создать правило с высоким приоритетом, которое перехватывает трафик конкретного VLAN и выполняет action
bypass. Это позволяет исключить конкретный трафик из обработки фильтрами и проверить, влияет ли ТСПУ на проблему. По статистике правила (количество пакетов/байт) можно убедиться, что трафик действительно проходит через это правило.
8.7.4. Привязка фильтров к линкам
После настройки правил необходимо привязать фильтр к линкам — указать, на каких линках (в сторону оператора) данные правила будут действовать:
set filters <имя_фильтра> apply-to-links [ <линк1> <линк2> ... ]
Пример:
set filters main apply-to-links [ link1 link2 link3 link4 ]
Один набор правил (фильтр) может быть привязан к нескольким линкам одновременно. Все линки, привязанные к фильтру, используют одни и те же flow rules.
8.8. Настройка Heartbeat для GL Sun (пилотный проект)
Данная настройка актуальна только для пилотного проекта на Урале, где используются байпасы GL Sun. В федеральном проекте с байпасами Silicom эта настройка не требуется — Silicom самостоятельно генерирует и проверяет heartbeat-пакеты.
На Урале балансировщик работает в активном режиме и сам должен отправлять heartbeat-пакеты на байпас GL Sun:
| Параметр | Описание |
|---|---|
| IPv4-адрес байпаса | IP-адрес байпаса GL Sun (ipv4) |
| Порт | TCP- или UDP-порт байпаса для heartbeat (tcp-port / udp-port, по умолчанию 4001) |
| Период отсылки | Периодичность отправки heartbeat (watchdog-delay), в микросекундах; рекомендованное значение — 30 мс (30000), по умолчанию — 10000 (10 мс) |
| Группа балансировки | Группа, для которой работает отправка heartbeat (balance-group) |
| Список линков байпаса | Идентификаторы сущностей на стороне байпаса GL Sun (links) |
| ToS | Тип сервиса в IP-заголовке heartbeat-пакетов (type-of-service, по умолчанию 184) |
| Автоматический возврат | Возможность автоматического возврата трафика в режим primary при восстановлении группы балансировки (autoreturn) |
Параметры задаются в профиле heartbeat (bypass-unit profile), а линк балансировщика связывается с линком байпаса параметром bypass-unit link-id в настройках линка.
Heartbeat-пакеты отправляются только при условии, что группа балансировки находится в состоянии Active. При переходе группы в неактивное состояние отправка прекращается, и связь с байпасом (по TCP) разрывается — состояние переходит в disconnected.
Примечание: с байпасами Silicom логика работы другая — Silicom самостоятельно отсылает heartbeat и проверяет доступность интерфейсов, а балансировщик прозрачно пропускает эти пакеты между своими портами.
8.9. Management-интерфейс: IP, маска, default gateway
Настройка management-интерфейса балансировщика выполняется аналогично другим сетевым устройствам:
set management ip <IP-адрес>
set management mask <маска_подсети>
set management default-gateway <IP-шлюза>
Management-интерфейс обеспечивает доступ к устройству по SSH и используется для управления, мониторинга и взаимодействия с ЦСУ.
Напоминание: management Ethernet работает только на скорости 1 Гбит/с (см. раздел 7.2).
Общий порядок настройки балансировщика
Для наглядности — последовательность настройки балансировщика «с нуля»:
1. Установить прошивку
│
2. Настроить management-интерфейс
│
3. Настроить физические порты (ports)
│
4. Настроить линки (links) — пары LAN/WAN в сторону оператора
│
5. Настроить группу балансировки (balance group)
└── Создать filter groups (пары портов в сторону фильтров)
└── Задать nat-unit-queues
└── Привязать профиль Keep-Alive
│
6. Настроить профиль Keep-Alive (liveness profile)
│
7. Настроить фильтры (flow rules) — правила обработки трафика
└── Привязать фильтры к линкам
│
8. apply + save
← Оглавление · ← Раздел 7: Балансировщик: аппаратная платформа · Раздел 9: Балансировщик: мониторинг и диагностика →