Документация по ОС FreeBSD
Среда, 29.10.2025, 17:28
Главная
Регистрация
Вход
Приветствую Вас
Гость
|
RSS
Меню сайта
Главная страница
Новости в мире Unix
NEW
Каталог файлов
NEW
Установка и настройка
Ports & Packages
cvs
Безопасность
Работа с железом
X Window
Multimedia
Man pages
Net
Apache
DNS
FTP
Mail
Samba
Squid
SSH
VPN
РРР
Shell
IPFW
Tips'n'tricks
RFC
Книги по FreeBSD
Темы экзамена BSDA
Гостевая книга
Форум на bsdportal.ru
Каталог сайтов
Самый свежий софт
Каталог ссылок
Категории каталога
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
Просмотров:
1200
| Рейтинг:
0.0
/
0
|
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Всего комментариев:
0
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация
|
Вход
]
Форма входа
Друзья сайта
Google+
Copyright MyCorp © 2025