Модуль для подсчета трафика в локальной сети.
Table of Contents |
---|
Возможности
Позволяет разделять трафик на 65535 классов.
Возможно разделение трафика по IP-адресам или по портам.
Блокировка клиентов с отрицательным депозитом.
Авторизация клиентов через Web-интерфейс или по 802.1х
Club Monitor - упрощённый мониторинг для компьютерного клуба. Выдача карточек доступа к сети. Печать чеков.
Схема построения сети
Схема авторизации
Как работает
Модуль получает данные о трафике от внешних коллекторов (trafd, ipcad, Cisco Netflow). Получив данные от коллектора, система просматривает таблицу активных сессий (Monitoring/ Internet /Мониторинг>Internet) и для них проводит подсчет трафика в зависимости от тарифного плана клиента. Если данные о трафике не принадлежат ни одной из активных сессий, то они складываются в файл в журнал неизвестных сессий (Отчёт>Интернет+>Неизвестный IPs) при включённой опции UNKNOWN_IP_LOG.
Для получения данных и их подсчёта и складывания в базу используются следующие программы:
trafdstats - для получения данных от trafd и последующей их обработкой traffic2sql
traffic2sql - для получения данных от других коллекторов (Ipcad, flowtools).
Система периодически запускает их из cron.
Авторизация пользователей: при открытии страницы браузером пользователи автоматически попадают на страницу авторизации, и, только после успешной авторизации, могут пользоваться интернетом.
Настройка Abills
Info |
---|
В качестве примера используется машина под управлением FreeBSD |
Code Block | ||
---|---|---|
| ||
cd /usr/abills/libexec/ ln -s ../Abills/modules/IpnInternet/trafdstats trafdstats ln -s ../Abills/modules/IpnInternet/traffic2sql traffic2sql |
Создать таблицы в базе.
Code Block | ||
---|---|---|
| ||
mysql --default-character-set=utf8 -D abills < db/Ipn.sql |
Code Block | ||||
---|---|---|---|---|
| ||||
@MODULES = (
'Ipn'
); |
Опции:
$conf{INTERNET_TRAFFIC_DETAIL}=1; | Вести детальную статистику на сервере где traffic2sql работает |
---|---|
$conf{ |
INTERNET_ |
---|
IPOE_ |
---|
DEPOSIT_ |
---|
OPERATION}=1024; | Задаёт минимальный размер пакета который будет попадать в детализацию. Данная опция предохраняет от замусоривания |
---|---|
$conf{IPN_DAILY_LOG_ROTATE}=1; | Ротация детализации и логов статистики каждый день. При включённой опции не работает подсчёт предоплаченного трафика |
$conf{ |
INTERNET_ |
---|
Система проверяет статические адреса всех имеющихся клиентов и присваивает им трафик. Исключая таким образом потери из за переподключений при использовании динамических адресов авторизации. При данной схеме работы трафик в журнал Monitoring / Online не попадает, он складывается непосредственно в статистику пользователя
IPOE_FILTER}= |
---|
'/usr/abills/libexec/ |
---|
ipoe_filter. |
---|
sh'; | Полный путь к программе, которая запустится, если у клиента заполнено поле Filter ID. Данная программа запускается после команды, прописанной в $conf{IPN_FW_START_RULE} и $conf{IPN_FW_STOP_RULE}. Программе передаются следующие аргументы %STATUS (ONLINE_ENABLE,ONLINE_DISABLE,HANGUP) %LOGIN %IP %FILTER_ID %PORT %UID в виде аргументов. Также передаются переменные окружения: NAS_IP_ADDRESS NAS_MNG_USER NAS_MNG_IP_PORT Не забывайте, что при ручной активации пользователя программа может выполняться с правами веб-сервера, поэтому лучше её запускать через sudo. Пример: abills/misc/ipn_filter.sh |
---|---|
$conf{ |
INTERNET_DETAIL_CLEAN_PERIOD}=30; | Чистить лог детализации каждых 30 дней |
---|---|
$conf{IPN_DAILY_RESTART}=1; | Рестартовать сессии каждый день |
$conf{ |
INTERNET_ |
---|
SKIP_SESSION_RESTART}=1; | Не делать ежемесячный рестарт сессий |
---|
Настройка сервера доступа
Настройка>Сервер доступа
Type |
---|
ipoe |
Настройка>Сервер доступа>IP POOLs
Нужно внести пул адресов, с которых можно авторизоваться.
Тарифные планы
Модуль использует тарифную логику модуля (Internet).
Заводим классы трафика Настройка>Интернет+>Тарифные планы>Классы трафика. Глобальный класс трафика должен иметь номер 0.
Заводим тарифные планы в Настройка>Интернет+>Тарифные планы.
В тарифном плане выбираем Intervals. Заводим интервал времени. После заведения интервала времени заводим тарификацию трафика. В тарификации трафика обязательно указывать сети в противном случае модуль не будет вести подсчёт трафика.