Документация по ОС FreeBSD Пятница, 07.02.2025, 06:35
Приветствую Вас Гость | RSS
Меню сайта

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

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

Подсчет трафика с netgraph [2008]
К netgraph часто обращаются именно из-за необходимости подсчета трафика. Получать статистику можно несколькими способами, задействуя разные модули. Например, “врежем” модуль ng_tee в le0 между lower и upper уровнями Ethernet интерфейса. Этот модуль имеет такую же функциональность, как и стандартная утилита tee, дублирующая ввод.
Вручную его загружать не требуется, ядро это делает автоматически при первом обращении к нему. Крючки right и left являются стандартными для этого модуля и показывают, с какой стороны мы его подключаем (подробности в «man 4 ng_tee»).

# ngctl mkpeer le0: tee lower right
# ngctl name le0:lower le0_tee
# ngctl connect le0: lower upper left

Проверяем настройки:

# ngctl show le0:
Name: le0 Type: ether ID: 00000003 Num hooks: 2
Local hook Peer name Peer type Peer ID Peer hook
———- ——— ——— ——- ———
upper le0_tee tee 00000006 left
lower le0_tee tee 00000006 right

Чтобы получить статистику, нужно отправить сообщение getstats:

# ngctl msg le0:lower getstats
Rec’d response “getstats” (1) from “[6]:”:
Args: { right={ inOctets=275355 inFrames=2796 outOctets=12961 outFrames=118 } left={ inOctets=12961 inFrames=118 outOctets=239292 outFrames=2427 } }
# ngctl msg le0:upper getstats
Rec’d response “getstats” (1) from “[6]:”:
Args: { right={ inOctets=283635 inFrames=2872 outOctets=17061 outFrames=166 } left={ inOctets=17061 inFrames=166 outOctets=247572 outFrames=2503 } }

Более подробную информацию о проходящем трафике способен показать узел ng_netflow(4).

Итоговая информация экспортируется в виде, совместимом с популярным протоколом NetFlow компании Cisco. Поэтому для ее анализа можно использовать любой коллектор, поддерживающий этот протокол. Кстати, кроме ng_netflow есть еще ng_ipacct, но он не входит в стандартную поставку, а последняя версия на сайте ftp.wuppy.net.ru/pub/FreeBSD/local/kernel/ng_ipacct датирована декабрем 2006 года, поэтому не будем на нем останавливаться.
Существует несколько схем подключения ng_netflow, мы разберем только одну из них. Начинаем:

# ngctl mkpeer le0: tee lower left
# ngctl connect le0: le0:lower upper right

Создаем many-узел при помощи ng_one2many и подключаемся к нему:

# ngctl mkpeer le0:lower one2many left2right many0
# ngctl connect le0:lower.left2right right2left many1

Даем имя o2m узлу le0:lower.right2left:

# ngctl name le0:lower.right2left o2m

Создаем на o2m узел типа netflow с именем netflow:

# ngctl mkpeer o2m: netflow one iface0
# ngctl name o2m:one netflow

И узел ksocket на “netflow:” для экспорта:

# ngctl mkpeer netflow: ksocket export inet/dgram/udp
# ngctl msg netflow:export connect inet/192.168.1.100:1111

Теперь для проверки вводим «ngctl list». Если модули загружены, запрашиваем таблицу подключений netflow:

# ngctl show netflow

Далее устанавливаем одну из утилит-коллекторов. Список некоторых коллекторов приведен на странице www.cse.wustl.edu/~cs5/567/traffic/index.html. Поиск в портах FreeBSD также дает нужный результат:

$ cd /usr/ports/
$ make search key=netflow

Например, выбираем flow-tools:

# cd /usr/ports/net-mgmt/flow-tools
# make install

Захватываем пакеты с созданного сокета (подробная документация о flow-tools есть на сайте www.splintered.net/sw/flow-tools/docs/):

# mkdir /var/netflows
# /usr/local/bin/flow-capture -p /var/run/flow-capture.pid \
-n 24 -N 0 -w /var/netflows/ -S 0/192.168.1.100/1111

После этого в каталог /var/netflows будет складываться захваченная статистика, каждый час будет создаваться новый файл (-n 24). Файлы имеют бинарный формат, поэтому для просмотра используем специальные утилиты из комплекта flow-tools. Ключ ‘-f‘ указывает на формат вывода, при значении 10 будет выведен адрес источника и назначения, ключ ‘-S‘ отвечает за поле сортировки:

# /usr/local/bin/flow-cat -p /var/netflows/ | /usr/local/bin/flow-stat -f10 -S4 -P



Источник: http://www.tux.in.ua/articles/969
Категория: Net | Добавил: oleg (02.12.2008)
Просмотров: 711 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

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

Copyright MyCorp © 2025