Вы находитесь на странице: 1из 2

Host-balancer.

Спецификация
1. Взаимодействие с компонентами УС СОРМ (сетевые карты, балансер, снифер) с
использованием туннелей directnetio 2.1.0 (далее сокращенно directnetio).
2. Декодирование трафика
2.1. Приём пакетов с directnetio совместимых карт (Intel 10GbE [ixgbe], Intel 1GbE
[igb])
2.2. Параллельная обработка несколькими host_balancer-процессами
2.2.1. Количество декодирующих процессов настраивается в конфигурационном
файле
2.2.1.1. Каждый host_balancer имеет несколько устройств (туннели
directnetio) чтения входного трафика. Входные устройства для каждого
host_balancer-а задаются в конфиге
2.3. Декодирование протоколов
2.3.1. ETH, VLAN, MPLS, PPPoE
2.3.2. PPP, GRE, GTP, L2TP, IP-in-IP
2.3.3. IPv4, IPv6
2.3.4. Фрагментация IPv4
2.3.4.1. Один из host_balancer-процессов выбирается для обработки IP-
фрагментов. Все остальные host_balancer-ы пересылают указанному
процессу все IP-фрагменты для обработки.
2.3.5. UDP, TCP
2.3.5.1. Параметры пакета проверяются по правилам фильтрации
2.3.6. не-UDP и не-TCP пакеты
2.3.6.1. Не проверяются по правилам фильтрации, никогда не отбрасываются
2.4. Вычисление хэша для передаваемых пакетов
2.4.1. Хэш вычисляется на основании пары IP, пары портов (если есть) и кода
протокола из IP заголовка
3. Фильтрация трафика
3.1. Приём правил
3.1.1. Правила принимаются через туннели directnetio.
3.2. Удаление правил по таймауту
3.2.1. Правила удаляются, если соответствующих им пакетов не поступает в
течение 10 секунд
3.3. Проверка пакетов по правилам фильтрации
3.3.1. Проверка выполняется по параметрам внутреннего TCP/UDP пакета (IP-
адреса и порты)
3.3.2. Пакеты, удовлетворяющих правилу, отбрасываются
4. Передача трафика
4.1. Данные передаются через туннели directnetio.
4.2. Передаваемые пакеты упаковываются в мультиблоки
4.2.1. Размер блока задаётся в конфиге directnetio;
4.2.2. Параллельно заполняется несколько мультиблоков (несколько линий
отправки, outline)
4.2.2.1. Количество outline задаётся в конфиге
4.2.2.2. Передаваемые пакеты распределяются между outline по хэшу
4.2.3. Передаваемый мультиблок помечается номером своего outline
4.3. Мультиблоки распределяются между доступными для host_balancer-а out-
устройствами (out-устройства – туннели directnetio, задаются в конфиге)
4.3.1. Для распределения используется номер outline, которым помечен каждый
блок
5. Вспомогательные функции
5.1. Тестирование
5.1.1. Каждый host_balancer-процесс передаёт свою детальную статистику раз в 5
секунд
5.1.2. Статистика отражает процесс декодирования и фильтрации;
5.1.3. Статистика сохраняется в файлах
/opt/host_balancer/bin/hb_stats/hbN/filter.test
5.2. Статистика
5.2.1. host_balancer передаёт свою суммарную статистику раз в 5 секунд
5.2.2. Статистика содержит:
5.2.2.1. Количество принятых данных
5.2.2.1.1. отдельно по каждому входному устройству host_balancer-а (пак/с)
5.2.2.1.2. суммарно по всем входным устройствам host_balancer-а (бит/с,
пак/с)
5.2.2.2. Количество переданных данных
5.2.2.2.1. суммарно по всем выходным устройствам host_balancer-а (бит/с,
посылок/с)
5.2.2.3. Количество ошибок
5.2.2.3.1. фреймы, потерянные на 10G/1G портах
5.2.2.3.2. фреймы, потерянные из-за нехватки памяти
5.2.2.4. Состояние хранилища (дерева) правил блокировки
5.2.2.4.1. Размер дерева
5.2.2.4.2. Размер хэша (показатель эффективности работы)
5.2.2.4.3. Количество ошибок вставки
5.2.3. Статистика сохраняется в файле
/opt/host_balancer/bin/hb_stats/hbN/summary.stats
6. Окружение
6.1. RPM host_balancer
6.1.1. Установка, апгрейд, удаление
6.1.2. Запуск сервиса при установке, перезапуск при апгрейде (если был запущен)
6.2. Сервис host_balancer
6.2.1. start, restart, stop, status
6.2.2. Автоматический старт при загрузке сервера
6.3. hbstat – вывод статистики и тестирования на экран
6.3.1. опция –s – вывод короткой статистики, суммированной по всем
host_balancer-процессам
6.3.2. запуск без опций – вывод полной статистики по host_balancer-процессам