URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 72529
[ Назад ]

Исходное сообщение
"Учет трафика"

Отправлено gibbon , 27-Фев-07 15:56 
Имеется небольшая сеть, которая выходит в интернет через шлюз на Linux.
Для авторизации пользователей используется VPN с динамически выдаваемыми адресами. Сейчас система учитывает трафик каждого пользователя по счетчикам iptables. Т.е. после авторизации создаются правила в цепочке FORWARD которые разрешают хождение трафика и заодно считают входящий и исходящий трафик. Но хочется подробного отчета с каких IP сколько было скачано. Для учета присмотрел ulog-acctd. Дописал его чтобы он складывал информацию в базу и при получении сигнала сливал всю свою статистику в таблицу.
Но тут появилась одна тонкость. Статистика снимается каждые 15 минут, при разрыве соединения брались нужные правила iptables, с них снимались показания и они удалялись. Для ulog-acctd нельзя выгрузить статистику только для одного IP. А при большом числе пользователей сигнал на выгрузку статистики будет приходить достаточно часто и база будет иметь слишком большую нагрузку, т.к. привязка к пользователю осуществляется по триггеру при вставке строки. Этот триггер находит соответствие IP адреса и ID пользователя в таблице. И я в затруденении.
Моджет кто подскажет как усовершенствовать систему.

PS. статистика по счетчикам pppd не подходит, потому что трафик локальный бесплатен.


Содержание

Сообщения в этом обсуждении
"Учет трафика"
Отправлено witos , 28-Фев-07 07:22 
>Имеется небольшая сеть, которая выходит в интернет через шлюз на Linux.
>Для авторизации пользователей используется VPN с динамически выдаваемыми адресами. Сейчас система учитывает
>трафик каждого пользователя по счетчикам iptables. Т.е. после авторизации создаются правила
>в цепочке FORWARD которые разрешают хождение трафика и заодно считают входящий
>и исходящий трафик. Но хочется подробного отчета с каких IP сколько
>было скачано. Для учета присмотрел ulog-acctd. Дописал его чтобы он складывал
>информацию в базу и при получении сигнала сливал всю свою статистику
>в таблицу.
>Но тут появилась одна тонкость. Статистика снимается каждые 15 минут, при разрыве
>соединения брались нужные правила iptables, с них снимались показания и они
>удалялись. Для ulog-acctd нельзя выгрузить статистику только для одного IP. А
>при большом числе пользователей сигнал на выгрузку статистики будет приходить достаточно
>часто и база будет иметь слишком большую нагрузку, т.к. привязка к
>пользователю осуществляется по триггеру при вставке строки. Этот триггер находит соответствие
>IP адреса и ID пользователя в таблице. И я в затруденении.
>
>Моджет кто подскажет как усовершенствовать систему.
>
>PS. статистика по счетчикам pppd не подходит, потому что трафик локальный бесплатен.
>

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