Хабрахабр

[Из песочницы] Почему графики трафика «врут»

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

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

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

1. Подсчет

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

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

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

1.1 RTFM

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

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

Переведем размеры заголовков из октетов в биты

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. Т.е. Для простоты запоминая называем зигапакетом.

По этой причине, рассматривая antiDDoS решения, нужно обращать внимание на производительность в Mpps. Еще обращу внимание, что max pps и min pps различаются больше, чем в 18 раз. Описание методик оценки производительности систем защиты тема для отдельной большой статьи. Часто вендора заявляют производительность в 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 (биты в секунду).

Заключение

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

  • что и как собирается;
  • как хранится;
  • как отображается.
Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть