Занимаясь защитой от DDoS-атак доводится на площадке клиента проводить нагрузочные тестирования, испытания защиты, помогать в противодействию атакам. Часто наблюдаешь ситуацию, когда на один и тот же трафик различаются графики в разных системах. Краткое пояснение «считают по-разному» не внушает доверие. Поэтому описал причины отдельной статьей. Статья будет полезна начинающим инженерам из эксплуатации сети и тем, кому приходиться сталкиваться с графиками.

Причины расхождения показаний разделил на три группы:

1. Подсчет
2. Сбор и хранение
3. Отображение

1. Подсчет


Начну с главной причины расхождения и которую чаще всего упускают.

1. Инженеры часто считают, что минимальный размер «пакета» 64 Байт.
2. Сетевое оборудование по-разному считает количество переданной информации.

Истоки заблуждений и ответы находятся на этой картинке.

1.1 RTFM


Напомню структуру заголовков Ethernet



Для примера будем делать расчеты для 10 GbE. Через 10 GbE интерфейс максимум проходит 10000000000 бит (10^10).

Переведем размеры заголовков из октетов в биты
bytes bits
L1 Header size 20 160
L2 MAC Header size 14 112
L2 FCS size 4 32
L2 VLAN size 4 32
Payload min 46 368
Payload max 1500 12000
Total
Min payload w/o VLAN 84 672
Min payload w VLAN 88 704
Max payload w/o VLAN 1538 12304
Max payload w VLAN 1542 12336

* Применение оверлейных технологий на транспортной сети влияет на исходный размер PDU, что уменьшает максимальный pps.
** Для примера взял VLAN. Обработка фрейма с vlan ID на сетевых интерфейсах может различаться. Одни увеличивают MTU, другие уменьшают допустимый максимальный размер payload.

Рассчитаем максимальную и минимальную скорость в PDU в секунду при полной утилизации интерфейса (wirespeed)

Max pps 14880952.38
Max pps w VLAN 14204545.45
Min pps 812743.8231
Min pps w VLAN 810635.5383


Т.е. через 10 GbE интерфейс максимум проходит ~14,88 Mpps. Для простоты запоминания называем зигапакетом.

Еще обращу внимание, что max pps и min pps различаются больше, чем в 18 раз. По этой причине, рассматривая antiDDoS решения, нужно обращать внимание на производительность в Mpps. Часто вендора заявляют производительность в Gbps, умалчивая в пакетах. Описание методик оценки производительности систем защиты тема для отдельной большой статьи.

1.2 Особенности подсчета размера PDU



Сетевое оборудование может считать размер PDU на разных уровнях и исключать поля из подсчета. Частые наборы полей для подсчета:

  • L2 Data или IP packet len
  • L2 Data + MAC Header
  • L2 Data + MAC Header + FCS (CRC Checksum)

Теперь рассчитаем показания на графике при атаке TCP SYN Flood на wirespeed без и c использованием vlan.

PDU size
(bytes)
Gbps Multiplier
109 230
Pps w/o vlan = 14880952.38
L1 84 10 9.313225746
L2 64 7.619047619 7.095791045
L2 w/o FCS 60 7.142857143 6.652304104
L2 Data (IP+TCP) 40 4.761904762 4.434869403
Pps w vlan = 14204545.45
L1 88 10 9.313225746
L2 68 7.727272727 7.196583531
L2 w/o FCS 64 7.272727273 6.773255088
L2 Data (IP+TCP) 40 4.545454545 4.23328443

Вот так при полной утилизации 10 GbE интерфейса на графике можно наблюдать скорость в 4,43 Gbps.

Поэтому при сравнениях значений скорости в разных системах нужно понимать, как считается размер PDU. Для упрощения сравнения мы для себя сделали калькулятор, показывающий скорость при подсчете разных заголовков.

Следующие две другие группы причин влияют на сглаживание пиков и применимы для всех графиков скорости.

2. Сбор и хранение


2.1 Частота опроса счетчика


Обычно опрашиваются счетчики показывающие абсолютное значение обработанных байт и пакетов. Для отображения скорости нужно посчитать производную.

Точность графика сильно зависит от частоты опроса счетчика. Чем реже, тем больше усреднение. Например, у операторов принято снимать значения раз в пять минут. Поэтому при Pulse Wave DDoS attacks профили графиков в системе мониторинга и системе фильтрации будут сильно отличаться.

2.2 Консолидация данных (Retention policy)


Часто для хранения значений счетчиков принят подход циклических баз данных (rrd). В целях экономии ресурсов данные за разный период хранятся с разной точностью. Чем дальше в прошлое, тем более разреженные значения, тем больше усреднение.

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

3. Отображение


3.1 Количество точек на графике


Обычно на графике есть ограничение на количество показываемых точек. Если за запрошенный период точек больше, то при отображении точки консолидируют. Чаще всего соседние точки консолидируют в одну со среднем значением. Такое усреднение сглаживает пики.

Наглядный пример:



3.2 Двоичные приставки


Дополнительное расхождение показаний добавляют инструменты отрисовки графиков. Для графиков в битах могут использовать различные степени для отображения одинаковой приставки. Подробней можно почитать ru.wikipedia.org/wiki/Двоичные_приставки

3.3 Единицы измерения


В основном счетчики на сетевом оборудовании показывают количество обработанной информации в байтах. Если не конвертировать, то график будет показывать скорость в Bps (байты в секунду), а не в bps (биты в секунду).

Заключение


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

  • что и как собирается;
  • как хранится;
  • как отображается.