Table of Contents |
---|
Учёт нескольких классов трафика
(IPN + Dv)Данная схема предусматривает учёт разных классов трафика: интернет, пиринговый, локальная сеть провайдера.
При данной схеме задействуются два модуля системы:
Настройка на примере MPD 5.x + flow_capture
Предварительная настройки модуля
Дополнительная информация Dv.
Конфигурация MPD
Дополнительная информация Mpd.
PPTP
/usr/local/etc/mpd.conf
Настройка сервера доступа
Настройка Mikrotik для подсчета трафика
Нам нужно настроить Микротик чтоб он слушал и отправлял flow пакеты на биллинг сервер для их последующей обработки с помощью колектора (flow-tools).
В консоли Микротика :
Code Block | ||
---|---|---|
| ||
startup:
# enable TCP-Wrapper (hosts_access(5)) to block unfriendly clients
set global enable tcp-wrapper
# configure the console
set console self %MPD_CONSOLE_IP% %MPD_CONSOLE_PORT%
set user %MPD_CONSOLE_USER% %MPD_CONSOLE_PASSWORD% admin
set console open
#WEB managment
#set web self 0.0.0.0 5006
#set web open
#Netflow options
set netflow peer %MPD_NETFLOW_IP% %MPD_NETFLOW_PORT%
set netflow self %MPD_NETFLOW_SOURCE_IP% %MPD_NETFLOW_SOURCE_PORT%
set netflow timeouts 15 15
set netflow hook 9000
# Calling-Station-Id = "10.0.4.16 / 00:18:f3:5a:9f:6a / em0"
set link enable report-mac
#set netflow node netflow
default:
load pptp_server
pppoe_server |
PPTP
Code Block | ||
---|---|---|
| ||
pptp_server:
# Define dynamic IP address pool.
# Диапазон IP адрессов,
# который присвоется VPN девайсу.
set ippool add pool1 %MPD_IPPOOL_FIRST% %MPD_IPPOOL_LAST%
# Create clonable bundle template named B
create bundle template B
set iface enable proxy-arp
set iface idle 1800
set iface enable tcpmssfix
set iface up-script "/usr/abills/libexec/linkupdown mpd up"
set iface down-script "/usr/abills/libexec/linkupdown mpd down"
set iface enable netflow-in netflow-out
set ipcp yes vjcomp
# Specify IP address pool for dynamic assigment.
set ipcp ranges 192.168.100.1/32 ippool pool1
set ipcp dns %DNS_SERVER%
# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(8) netgraph node type.
set bundle enable compression
set ccp yes mppc
set mppc yes e40
set mppc yes e128
set mppc yes stateless
# Create clonable link template named L
create link template L pptp
# Set bundle template to use
set link action bundle B
# Multilink adds some overhead, but gives full 1500 MTU.
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 60
# We reducing link mtu to avoid GRE packet fragmentation
set link mtu 1460
# Configure PPTP
# Внешний IP на котором будет прослушиватся соединение
set pptp self %VPN_SERVER_IP%
load server_common |
PPPOE
Code Block | ||
---|---|---|
| ||
pppoe_server:
create bundle template B
set iface idle 0
set iface enable tcpmssfix proxy-arp
set ipcp no vjcomp
set iface up-script "/usr/abills/libexec/linkupdown mpd up"
set iface down-script "/usr/abills/libexec/linkupdown mpd down"
set iface enable netflow-in netflow-out
set ipcp ranges 10.10.0.1 ippool pool1
set ipcp dns %DNS%
create link template L pppoe
set link action bundle B
set pppoe acname "bras1"
set pppoe iface %PPPOE_INTERFACE%
set pppoe service "*"
load server_common
server_common:
set link no pap eap
set link yes chap-md5
set link keep-alive 20 60
set link enable incoming
set link no acfcomp protocomp
load radius
radius:
#IP, пароль и порты RADIUS-сервера
set radius server 127.0.0.1 radsecret 1812 1813
set radius retries 3
set radius timeout 10
set auth acct-update 300
set auth enable radius-auth
set auth enable radius-acct
set auth disable internal |
/ip traffic-flow set enabled=yes
/ip traffic-flow target add dst-address=10.0.0.10 port=9996 version=5
/ip traffic-flow set interfaces=ether3 active-flow-timeout=30m inactive-flow-timeout=15s cache-entries=4k enabled=yes ; |
в данном случае нам интересны 2 параметра :
ether3 | интерфейс на котором слушать |
10.0.0.10 | адрес сервера обработки flow пакетов (Сервер биллинга) |
Конфигурация параметров сервера доступа (Mikrotik) в веб интерфейсе администратора
Перейти в меню Настройка>Сервер доступа и завести новый сервер доступа.
ID | Номер сервера доступа | ||
---|---|---|---|
IP | IP адрес | ||
Название: | Название | ||
Radius NAS-Identifier: | Дополнительный идентификатор сервера доступа. Использовать только в случае если на одно IP адресе используется несколько серверов доступа | ||
Описание: | Описание | ||
Тип: | Тип | Авторизация:Тип авторизации из базы данных или из файла паролей Unix | |
ExternalAccounting: | Указывает что данные для аккаунтинга берутся не с RADIUS сервера, а с внешнего источника. Обязательно включаем опцию! | ||
Alive (sec.): | Период между RADIUS Alive пакетами. Используется для проверки активности абонента. Если на протяжении 3 ALive пакетов от сервера доступа не было никаких данных система завершает сесию | ||
Отключено: | |||
:Управление: | |||
IP:PORT: | IP и порт для управления MPDсервером доступа | ||
Пользователь: | Пользователь для управления | ||
Пароль: | Пароль для управления |
Конфигурация тарифных планов
Перейти в меню Настройка>ИтнернетНастройка>Интернет+>Тарифные планы для создания тарифного плана.
После создания тарифного плана переходим в Интервалы и создаём временной интервал работы.
После создания работы во временном интервале заводим класс трафика
После успешной конфигурации все должно выглядеть так
Подключение модуля
IPN и настройка программ: flow_captureтрафик анализатора
Code Block | ||||
---|---|---|---|---|
| Дополнительная информация [[abills:docs:modules:Ipn:ru|Ipn]]||||
Code Block | ||||
| ||||
cd /usr/abills/libexec/ ln -s ../Abills/modules/Ipn/trafdstats trafdstats ln -s ../Abills/modules/Ipn/traffic2sql traffic2sql |
Создать таблицы в базе
Code Block | ||
---|---|---|
| ||
mysql -D abills < db/Ipn.sql |
abills/libexec/config.pl
@MODULES = (
'Ipn'
);
# Денежные операции делает IPN
$conf{IPN_DEPOSIT_OPERATION}=1;
flow-tools
http://www.splintered.net/sw/flow-tools/
Пакет утилит для работы с NetFlow потокамиотправляемыми маршрутизаторами Cisco или Juniper.
Code Block | ||
---|---|---|
| ||
cd /usr/ports/net-mgmt/flow-tools make make install |
Запускаем
Code Block | ||
---|---|---|
| ||
flow-capture -S 5 -n 287 -N 0 -d 5 -w /usr/abills/var/log/ipn/ 0/0/9996 |
Автоматический старт при загрузке в FreeBSD:
Code Block | ||
---|---|---|
| ||
chown flowtools /usr/abills/var/log/ipn/ |
/etc/rc.conf
Code Block | ||
---|---|---|
| ||
flow_capture_enable="YES" flow_capture_datadir="/usr/abills/var/log/ipn/" flow_capture_port="9996" flow_capture_flags="-S 5 -n 287 -N 0 -d 5" |
Запуск скрипта обработки статистики /etc/crontab
Code Block |
---|
*/5 * * * * root /usr/abills/libexec/traffic2sql |
8 |
flowdir=/usr/abills/var/log/ipn/ |
|
Здесь 8 - NAS_ID сервера доступа с которого учитываем трафик