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

DemiurG (arkhangel@mail.ru)

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

Чертик (ярко-красный) у тебя давно стоит, твоя локальная сеть все больше и больше расширяется, количество пользователей растет с каждым днем... И ты уже не в шутку, когда распиваешь очередную бутылку пива с дворовыми алкашами, бросаешь мысль, что неплохо бы, чтобы твоя локалка имела выход в интернет, да и не просто, а реальную выделенку. Единственная трабла возникает, когда придется учитывать, сколько каждый юзер выкачивает в инете, ведь если такого учета не будет - можно будет с легкостью пустить тебя по ветру... Что же будем делать? Правильно - создавать свою собственную систему трафика!

ТРАФИК - СУЩЕСТВО ПУШИСТОЕ

Для начала разберемся, что нам требуется создать. Система трафика должна:

1. Подсчитывать, сколько трафика конкретный пользователь выкачивает из интернета и закачивает в интернет. Причем делать это прозрачно для пользователя. Т.е. не доставлять ему (юзеру) никаких неудобств. За отмазы типа "у нас работает системы трафика, поэтому icq пользоваться нельзя" - расстрел...

2. Работать централизованно (не зря же мы ее ставим на роутер FreeBSD). Это я пишу к тому, что есть некоторые админы, которые считают, что простые решения - есть эффективные решения. И поэтому, если боссы требуют от них, чтобы считался трафик по пользователям, эти админы ставят на локальные компы юзеров какие-то убогие программки и потом имеют офигительный геморрой, бегая от юзера к юзеру. Да и юзеры тоже не дураки, и исподтишка убить и замучить эту убогую программку им в радость. Аминь.

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

4. Должен быть интерфейс, через который админ может посмотреть, сколько у каждого юзера накапало. Как он будет реализован, решать админу. Кому-то достаточно подключения по ssh и банального распечатывания в файл (или на принтер) заветных циферок. Кто-то пишет отдельный клиент на языках высокого уровня либо банальный web-интерфейс, который позволяет не только админу, но и пользователям с боссами без вмешательства сисада узнать, сколько они скачивают и закачивают в инет.

5. Система трафика НЕ ДОЛЖНА учитывать, какие конкретно ресурсы пользователи смотрят в интернете. Этим должна заниматься система мониторинга, но отнюдь не трафика. Кроме того, мы честные админы и за пользователями не шпионим. Пусть этим занимаются другие люди (им за это деньги платят).

6. Система трафика может отличать (а может и не отличать) русский трафик от иностранного. Просто бывает такая ситуация, когда цена за русский трафик одна, а за иностранный в два раза больше, и возникает вопрос, как же его считать. Для тех, кто в танке: если сервак входит в зону .ru, это вовсе не означает, что он находится на территории постсоветского пространства (верно и обратное утверждение). В нашем случае я не отличаю русский и иностранный трафик, так как это дело очень не тривиальное и к стандартным схемам (которые я рассматриваю в статье) это сложно приделывается. Можно, конечно, и изолентой прикрутить, но часто отламываться будет, да и вероятность ошибки очень высока.

Содержание  Вперед на стр. 033-058-2
ttfb: 2.9280185699463 ms