Документация по ОС FreeBSD Четверг, 05.12.2024, 04:15
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Netflow сенсор [2011]
Задача получения статистики к сожалению еще актуальна в сетях доступа. При типичных скоростях абонентского доступа до 100 Мбит/с и суммарном канале с полосой примерно 1 Гбит/с для снятия статистики сетевых пакетов часто используется mirror с порта L2 или L3 коммутатора. Это объясняется тем, что в ядре такой сети ставят не очень дорогие коммутаторы, которые поддерживают максимум sflow-протокол, который даё1т лишь примерную оценку.
 
В качестве коллектора netflow обычно используется пакет nfsen, имеющий удобный web-интерфейс и подобные решения. А вот тема выбора софтового сенсора на *NIX-платформе раскрыта слабо. Если при потоке со скоростью  порядка нескольких десятков мегабит/с по большому счету не важно, чем считать, то при скорости около 1Гбит/с ресурсов даже современного процессора может не хватить.
 
В интернете есть статьи о чудовищном превосходстве линуксовой ядерной приблуды к iptables ipt_NETFLOW, которая якобы на порядок снижает загрузку сервера, по сравнению с решениями user-level, например softflowd. Покажем, что в настоящей системе тоже есть альтернативы юзер-левелу. Для этого проведем сравнение четырех наиболее популярных netflow-сенсоров:

1. ipcad;
2. fprobe;
3. softflowd;
4. ng_netflow.
 
Отметим, что первые три сенсора это как-раз приложения user-level и используют библиотеку libpcap. Не вдаваясь в теории сразу перейдем к делу. Тестовый стенд – сервер с FreeBSD 8.2 RELEASE, процессор Intel Duo Core E5300 @ 2.60GHz. Рабочий сетевой интерфейс Intel PRO/1000 PL Network Adaptor (82573L). Для управления и мониторинга я поставил еще и вторую сетевую -  realtek 8139. Тестовый трафик – поток, генерируемый с помощью iperf между двумя хостами с гигабитными интерфейсами:

[  3]  0.0-120.0 sec  8.42 GBytes    602 Mbits/sec
 
Это соответствует примерно 80kpps, которые mirror-ом направляются на порт, к которому подключена интеловская сетевая тестового сервера.
 Запускаем iperf сначала с «чистым» сервером, т.е. никакой дополнительной обработки пакетов в ядре нет, сетевой адаптер принудительно переведен в режим promiscous  и все пакеты поступают в ядро.
 Далее запускаем ipcad практически с дефолтным конфигом

./ipcad onestart
 ipcad not running?
 Starting ipcad.
 Opening em0... [LCap] [65536] Initialized as 1
 Configured NetFlow destination at 192.168.0.254:8821
 Configured RSH Server listening at 127.0.0.1
 Incomplete (incorrect) pathname
 Daemonized.
 
Потом запускаем fprobe

fprobe -i em0  192.168.0.254:9995
 
Потом softflowd

softflowd -i em0 -n 192.168.0.254:9995
 
И, наконец, настраиваем ng_netflow уровня ядра, непосредственно на интерфейсе, согласно мануалу через ноду netflow

#!/bin/sh
 
/usr/sbin/ngctl -f- <<-SEQ
 mkpeer em0: netflow lower iface0
 name em0:lower netflow
 connect em0: netflow: upper out0
 mkpeer netflow: ksocket export inet/dgram/udp
 msg netflow:export connect inet/192.168.0.254:8821
 SEQ
 
В качестве оценки загрузки процессора используем графики, построенные по rrd-базам, которые создает collectd (дискретность 10 секунд).
 


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


Как и следовало ожидать, ng_netflow уровня ядра наиболее экономично использует ресурсы процессора. Разница между ng_netflow и softflowd составляет 100%, а между ng_netflow и ipcad  – 200%. Сама обработка ng_netflow примерно на 30% увеличивает загрузку процессора. Теоретически на базе Duo Core E5300 можно построить сенсор с производительностью 2 Гбит/с (правда при условии использования драйверов em от Yandex или сетевых карт c контроллером intel 82576). Учитывая, мягко говоря, ничтожную производительность моего тестового процессора по сравнению с современными топовыми i7 (12 логических ядер), можно предположить, что софтовый сенсор с производительность 10Gbit/s технически не проблема, естественно при использовании ядерной обработки пакетов.


Источник: http://myfreebsd.ru/network/netflow-sensor
Категория: Net | Добавил: oleg (06.08.2011) | Автор: admin
Просмотров: 1163 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024