Левая панель

Главное окно

Корзина
Admin-World - администраторы всех стран обьеденяйтесь Тема Home News Downloads Tutorials WebLinks Login to JoomlaCurve

  Панель
 
Главное меню
Главная
Новости
Поиск
Библиотека
Форум
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Статистика
 
     
Главная arrow Библиотека arrow Linux arrow Считаем трафик
 
Реклама

 

Считаем трафик

Печать E-mail
Учет трафика при использовании FreeBSD в качестве маршрутизатора.

Автор Maxik http://www.maxik.pp.ru/

Небольшие организации для подключения своей сети к Интернет в качестве роутера зачастую используют обычный ПК с операционной системой 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 прикручивается без проблем.
 
« Смотрим любимые фильмы с помощью MPlayer   "Огненная стена" или строим файрвол на базе iptables »

 
  Админ World