[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ip accounting



Доброго дня.

Есть шлюз (NAT) и сеть с 2-4 машинами. Потребляют трафик примерно 1-2 Гб\месяц.
Задача -- выдывать подробную информацию (достаточно src.ip, src.port, dst.ip, 
dst.port, type, size) по потребленному трафику за произвольный период (от 5-10 
минут до 1 месяца). Хранилище данных -- mysql.

До этого использовал net-acct. Хранил данные в файлах. Смотрел логи
net-acct раз в 5 мин, собирал суммарную информацию (в файл) с разбивкой 
по суткам. Понадобилось точнее (как минимум -- час, желательно 5-10 мин),
поэтому в качестве хранилища выбрал РСУБД, благо mysql поставил и для
других дел.

В качестве замены net-acct подумывал netacct-mysql попробовать, да у него
(как и у любой другой libpcap-считалки) сложность с определением какая именно
машина за NAT потратила трафик. Да и разделение трафика на три категории
для меня не актуально. Ну и не радует тот факт, что в debian его нет в
пакете, соответственно и поддержки security-team тоже нет.

Сейчас в качестве промежуточного варианта пробую ulogd. Здесь свои
тараканы -- ulogd пишет в базу данные каждого пакета, а не соединения.
Экстраполировал полученные данные, получается прибавка в 70-150 тыс. строк
в таблице и 100-200 мб "веса" базы данных ежемесячно, если оставить всё как 
есть. В принципе, можно периодически "пробегать" таблицу, собирать данные о 
соединениях и удалять просмотренные данные. Тогда можно добиться примерно 
такого же расхода места как и в случае net-acct.

Третий вариант, который я не пробовал и он мне не оч. нравится, это
использовать счетчики iptables (либо как есть, либо с использованием
account-патчей) и периодически просматривать счетчики userspace-утилитами и
отправлять в СУБД "в ручную". 

Что можете посоветовать в данной ситуации? Какой инструмент, присутствующий
в sarge, наиболее подходит для решения поставленной задачи?

-- 
:Wq
Not an editor command: Wq



Reply to: