Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #33, АВГУСТ 2003 г.

КТО СКАЧАЛ МЯУ? - система подсчета трафика на FreeBSD

DemiurG (arkhangel@mail.ru)

Спецвыпуск Xakep, номер #033, стр. 033-058-2


Если кому-то это будет интересно, читайте про протокол BGP (http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc1772.html). И заодно документацию NeTAMS (http://www.netams.com/doc/documentation-ru.html).

7. Система трафика НЕ СЧИТАЕТ количество денег за выкачанный пользователем трафик. Этим занимается система биллинга. Система биллинга высчитывает, сколько пользователь накачал в кредит или сверх меры, высчитывает процент (пени), может даже отключить пользователя. Мы все этим не занимаемся, нам нужно просто в конце месяца получить точные цифры: сколько тот или иной юзер выкачал из инета, и все...

ЗАКОН ПАРЕТТО

Заранее хочу пояснить, что почти все нижеприведенные решения мы рассматриваем на FreeBSD. На Линухе многие (почти все) просто не будут функционировать. В создании роутера выбирай лучше FreeBSD. Она более надежна и быстра, Линух же имеет смысл ставить только в том случае, если у тебя сложная нестандартная ситуация (допустим, есть два канала в инет, и надо, чтобы одни пользователи лазали по слабому каналу, а другие только по быстрому - во FreeBSD такая задача решается очень не тривиально) либо просто ставить фрибздю мешают какие-либо местечковые религиозные траблы.

НЕ ПРЕВЫШАЙ СКОРОСТИ 24 ЧАСОВ В СУТКИ

На основе чего мы можем считать трафик?

1. Создавать банальные записи ipfw count (можно и ipfw add allow что-то там, тем самым мы еще и ограничим доступ различным хостам) и потом написать скрипт и аккуратно писать вывод их в файл. Ipfw работает на уровне ядра и уж точно не теряет пакеты! Данные получаются более чем точные (и работает все быстро). Но придется писать какие-то скрипты, что не есть гуд.

http://cisco.opennet.ru/base/net/trafcnt.txt.html

http://www.server.md/articles.php?aid=12

2. trafd (он же bpft). Пытался с ним работать. Честно скажу, не было времени разбираться (представил, как это чудо буду адмнить - покрылся потом холодным). Считает пакетики через bpft (этот же пакетный фильтр использует сниффер tcpdump). Преимущества: есть в портах freebsd; может делать вывод по номеру портов и ресурсам, которые просматривает пользователь; делает дампы памяти (после перезагрузки данные останутся живы); умеет делать кучу вещей, которые в повседневной жизни не особо нужны (например, переводить сетевуху в promisc mode), так как имеет ближайшего родственника - tcpdump. Недостатки: может терять пакеты (если канал скоростной), мне показалось, что его тяжело настроить и админить, возможно я ошибся.

http://www.opennet.ru/base/net/trafd_stat.txt.html

http://bpft4.sourceforge.net

3. NeTAMS - программа для контроля и учета сетевого трафика (выдержка из документации). Офигительная прога, которая считает трафик, имеет web-интерфейс (используя mysql базу). Может считать трафик через прослушивание сетевого интерфейса (libpcap/bpf - полная аналогия с trafd), через ipfw divert куда-то (вспомни ipfw divert natd - поймешь, о чем я), через NetFlow (это к Сisco). Преимущества: все в одном; бесплатно; вроде бы умеет уже отличать российский трафик от иностранного (через протокол BGP) - хотя не факт; можно админить через telnet. Недостатки: я, как начинающий UNIX'оид, очень люблю юних за то, что любая сложная система в нем работает по кирпичикам, и если происходит глюк - легко определить, в каком месте он произошел. Мне не нравится виндоусовский подход - вот вам комбайн, который мелет морковку, колет деревья, лижет задницу, ходит за вас на работу - можете наслаждаться, только если он вашу задницу примет за дерево или за морковку - не обижайтесь. Мне хотелось самому попытаться что-то написать/создать/сделать, и у меня получилось. Возможно у тебя что-то получится с NeTAMS - буду очень рад, если - да, то пиши в СпецХакер статью - сразу же, не откладывая.

Назад на стр. 033-058-1  Содержание  Вперед на стр. 033-058-3