Считаем трафик
Статьи
→
Настройка и оптимизация Linux
Дата публикации: 15.08.2007
Автор статьи:
Источник: (Оригинал: Перейти)
Взято с http://linuxportal.ru
Учет трафика при использовании FreeBSD в качестве маршрутизатора.
Небольшие организации для подключения своей сети к Интернет в качестве
роутера зачастую используют обычный ПК с операционной системой Unix.
При оплате трафика руководству фирмы хочется знать, кто сколько качал.
Тема настоящей статьи организация учета внешнего трафика в такой сети.
И так у нас есть компьютер с двумя сетевыми интерфейсами: для
внутренней сети ep0, и для внешней сети ed0. Для подсчета трафика я
воспользовался пакетом BPFT, разработанным Владимиром Воробьевым.
И так, скачиваем этот пакет и собираем его (процедура стандартная -
make, make install). После этого нам необходимо запустить демон,
занимающийся сбором трафика. В файл rc.local добавляем строки:
/usr/local/bin/trafd -r -i ed0
/usr/local/bin/trafd -r -i ep0
Отлично, трафик учитывается. Теперь заставим его скидываться в файл. Для этого в crontab прописываем:
*/10 * * * * /usr/local/bin/trafdump ep0 >/dev/null 2>&1
*/10 * * * * /usr/local/bin/trafdump ed0 >/dev/null 2 >&1
У нас получились бинарные файлы. Для приведения их в читаемый формат, я
воспользовался скриптами неизвестного мне автора. Их запуск также
осуществляем из crontab:
50 23 * * * /usr/local/sbin/traffic-daily.exec ep0
50 23 * * * /usr/local/sbin/traffic-daily.exec ed0
На выходе у нас получаются текстовые файлы, в которые собран весь
дневной трафик. Теперь надо разобрать их по конкретным адресам. Опять же воспользуемся crontab:
57 23 * * * /usr/local/sbin/traffic_by_host_ep0.exec
57 23 * * * /usr/local/sbin/traffic_by_host_ed0.exec
где
-- IP-адрес, по которому вы хотите собрать статистику. На выходе в
каталоге /var/log/traffic вы получите текстовые файлы с именем. daily.log. Формат их прост: время, дата, входящий трафик и исходящий трафик.
Для того чтобы не учитывать внутренний трафик, необходимо внести
некоторые изменения в файлы /usr/local/sbin/traffic_by_host_ep0.exec и
/usr/local/sbin/traffic_by_host_eв0.exec. В них имеются строки типа:
when (src=ipaddr & justify (dst,9)\= «192.168.0») then ipaddr_traffic_out=ipaddr_traffic_out+all.
192.168.0 это некая маска. Обращения к адресам, подпадающим под такую
маску, не будут учитываться в результирующем файле. В каждом из
скриптов таких мест два (по одному на входящий и исходящий трафик).
Кстати, пока вы еще не запустили всю эту систему в действие, можно
поставить туда какие-либо несуществующие адреса это позволит выявить
шум в сети создаваемый, к примеру, неправильными настройками IP на
каком-нибудь из компьютеров.
Ну и, напоследок, я прикладываю мою программку под Win32, которая по
ftp забирает результирующие файлы и расчитывает стоимость трафика.
В: Где можно взять rexx интерпретатор в Сети?
О: http://www.rpmfind.net
Набираете в поле «search» например rexx и получаете что искали.
Для FreeBSD заходите на сайт http://www.freebsd.org там есть раздел «ports» опять выполняете поиск и получаете.
P.S. К Linux прикручивается без проблем.
Взято с http://linuxportal.ru
Дата публикации: 15.08.2007
Автор статьи:
Источник: (Оригинал: Перейти) |