Автор TMeter
Использование Netflow для учета трафика
Предположим, Вы - администратор сетевой инфраструктуры с подключением
к Интернет и у вас есть пограничный маршрутизатор (аппаратный или программный),
выполняющий роль Интернет-шлюза. Вы хотите знать какова загрузка Вашего
канала и кто из пользователей нагружает ваш Интернет-канал больше всего.
Первую проблему решить очень просто. Абсолютное большинство
более-менее серьезных маршрузаторов поддерживает съем статистики "передано/принято"
по протоколу SNMP. Настроив утилиту MRTG для визуализации
данных, принимаемых по SNMP, вы с удивлением можете обнаружить что ваш
канал 2 мбит/c загружен на 90%. Совершенно ествественно, что вы хотите
узнать какой трафик это сдедал. Ответ на второй вопрос можно получить
путем анализа заголовков IP-пакетов, пересылаемых через маршрутизатор.
Для пересылки заголовков IP-пакетов, проходящих через маршрутизатор
разработано много протоколов, однако стандартом де-факто стал протокол
Netflow, разработанный компанией Cisco для своих маршрутизаторов. Суть
протокола Netflow в том, что заголовки транзитных IP-пакетов накапливаются
в специальном буфере и аггрегируются (т.е. пакеты с одинаковыми характеристиками
объединяются в одну запись, что позволяет существенно сэкономить на объеме
пересыламых данных по протоколу Netflow).
Например, следующая последовательность пакетов:
Протокол |
Адрес источника |
Порт источника |
Адрес назначения |
Порт назначения |
Размер пакета, байт
|
TCP |
192.168.1.2 |
17643 |
10.0.0.2 |
80 |
40 |
TCP |
10.0.0.2 |
80 |
192.168.1.2 |
17643 |
40 |
UDP |
192.168.1.3 |
5672 |
172.31.19.2 |
53 |
78 |
TCP |
192.168.1.2 |
17643 |
10.0.0.2 |
80 |
40 |
TCP |
192.168.1.2 |
17643 |
10.0.0.2 |
80 |
640 |
UDP |
172.31.19.2 |
53 |
192.168.1.3 |
5672 |
345 |
TCP |
10.0.0.2 |
80 |
192.168.1.2 |
17643 |
1500 |
TCP |
10.0.0.2 |
80 |
192.168.1.2 |
17643 |
1244 |
TCP |
10.0.0.2 |
80 |
192.168.1.2 |
17643 |
40 |
После аггрегации будет преобразована к таким данным:
Протокол |
Адрес источника |
Порт источника |
Адрес назначения |
Порт назначения |
Размер пакета, байт
|
TCP |
192.168.1.2 |
17643 |
10.0.0.2 |
80 |
720 |
TCP |
10.0.0.2 |
80 |
192.168.1.2 |
17643 |
2824 |
UDP |
192.168.1.3 |
5672 |
172.31.19.2 |
53 |
78 |
UDP |
172.31.19.2 |
53 |
192.168.1.3 |
5672 |
345 |
Архитектура протокола Netflow подразумевает наличие у маршрутизатора
некой мощности его аппаратной части, поскольку алгоритм обработки
пакетов предусматривает быстрый просмотр и заполнение внутренней памяти
маршрутизатора. Поэтому не все аппаратные маршрутизаторы поддерживают
Netflow. Если у вас шлюз программный (например, на UNIX-подобной операционной
системе типа Linux или FreeBSD), то можно использовать программную
реализацию под названием softflowd.
В достоинства протокола Netflow можно отнести простоту его
реализации. Недостаток протокола Netflow очевиден - при интенсивном трафике
маршрутизатор может не справляться с аггрегированием информации.
Протокол Netflow определяет понятия агента Netflow
и коллектора Netflow. Агент - это та часть, которая работает на маршрутизаторе
и аггрегирует данные. Коллектор - это некая программа, которая принимает
и анализирует данные от агента. В качестве коллектора Netflow может
выступать программа TMeter.
На данный момент существует несколько версий протокола Netflow.
Наиболее распостраненная версия - v.5
©2019 Alexey Kazakovsky. All rights reserved.