Журнал Системный Администратор, Август 2006

Журнал Системный Администратор

Август 2006

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Биллинг на FreeBSD: пишем сами, используя PHP, trafd и MySQL

Александр Чагадаев

Если пользователи жалуются, что Интернет «тормозит», а начальство ругается, что счета от провайдера слишком большие, покупка готового биллинга – не единственный выход.

В настоящее время большинство юридических лиц – пользователей Интернета – оплачивают услуги исходя из количества принятого (и/или переданного) трафика.

Для небольших организаций плата за трафик не является такой уж незначительной, и остро встаёт вопрос учета трафика, израсходованного конкретным пользователем, и целей, на которые этот трафик был потрачен. Проще говоря, руководству организации нужна информация о посещённых сайтах в случае использования протокола http, скачанных файлах в случае использования протокола ftp и т. д. Причём некоторых сотрудников бывает сложно убедить, что большой трафик – результат их собственных действий, если не предоставить подробного списка ресурсов с данными о трафике.

По тем или иным причинам (забота организации об информационной безопасности, дефицит реальных IP-адресов у провайдера) подключение внутренней ЛВС организации к Интернету обычно происходит через роутер, установленный на границе между внутренней ЛВС организации и Интернетом.

В качестве роутера может использоваться ПК с 2 сетевыми картами и специальным образом настроенной (включён сервис NAT) сетевой ОС (FreeBSD, Linux, Windows, Solaris и т. д.). Или же это может быть специально разработанное устройство (нередко также использующее одну из перечисленных выше ОС). Возможны и другие варианты, я рассмотрю наиболее распространенный.

В своё время передо мной была именно такая задача – учёт и ограничение трафика. В качестве роутера использовался ПК с 2 сетевыми картами и установленной ОС FreeBSD. Несмотря на кажущуюся распространённость – почти банальность – задачи, полностью устраивающее готовое решение найти не удалось. (Рассматривались только бесплатные системы.) В результате было принято решение писать собственную биллинговую систему.

Используемое ПО

Для сбора трафика используется BPFT (http://bpft4.sourceforge.net). Система построена на основе библиотеки libpcap и использует механизм BPF (Berkley Packet Filter «pseudo-device») для захвата IP-трафика.

При выборе СУБД я выбирал между MySQL и Firebird. За Firebird было:

n  мой большой опыт работы с ним;

n  наличие очень удобного инструмента IBExpert (http://www.ibexpert.com).

 

Против:

n  работа текущей на тот момент версии (1.5) только из-под inetd. На сервере этот демон не использовался и поднимать его только ради биллинга не хотелось;

n  поддержка транзакций, обеспечивающих большую надёжность в ущерб скорости, что для нашей системы совершенно неоправданно.

В конечном счёте, я остановился на MySQL (4-я или 5-я версии, но, думаю, будет работать и с 3-й).

Язык программирования для общения с базой данных – PHP, за C-подобный синтаксис, возможность использования программ на нём как просто в системе, так и внутри HTML-страниц.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке


harrison1973
2007-11-19 14:55:44

платить за хуй собачий, при деюре бесплатном ПО, не зная окончания статьи - удел идиотов, пишите на Одессу, там поезд с лохами останавливается на другом пути
harrison1973
2007-11-19 16:35:07

платить за хуй собачий, при деюре бесплатном ПО, не зная окончания статьи - удел идиотов, пишите на Одессу, там поезд с лохами останавливается на другом пути
Green
2007-11-28 06:17:59

бггг афтар прав!
f
2007-12-11 08:03:57

платить за хуй собачий, при деюре бесплатном ПО, не зная окончания статьи - удел идиотов, пишите на Одессу, там поезд с лохами останавливается на другом пути
Агтеш
2008-01-30 03:22:53

мда уж...
4uva4ok
2008-01-30 04:28:27

:)
платить за хуй собачий, при деюре бесплатном ПО, не зная окончания статьи - удел идиотов, пишите на Одессу, там поезд с лохами останавливается на другом пути ) присоединяюсь к вышесказанному
R@t
2008-02-07 03:34:38

harrison1973 абсолютно прав! Своими прибамбасами вы, уважаемые господа, только отталкиваете посетителей ресурса. Есть в сети и другие источники информации, в том числе и из ваших журналов. Так что наслаждайтесь отсутсвием интереса к вашему сайту!!!
C@t$0n
2008-02-19 01:34:26

платить за хуй собачий, при деюре бесплатном ПО, не зная окончания статьи - удел идиотов, пишите на Одессу, там поезд с лохами останавливается на другом пути

+1
devel
2008-04-13 03:44:32

А я вообще наваял свою систему, тока bpf имхо не лучший выбор... Статью готовлю, скорее всего выложу у lissyar-ы на ресурсе... тока руки дойдут до статьи ;-)
homa
2008-04-16 06:02:36

+1 harrison1973