Учёт нескольких классов трафика (IPN + Dv)
Данная схема предусматривает учёт разных классов трафика: интернет, пиринговый, локальная сеть провайдера.
При данной схеме задействуются два модуля системы:
Настройка на примере MPD 5.x + flow_capture
Предварительная настройки модуля
Дополнительная информация Dv.
Конфигурация MPD
Дополнительная информация Mpd.
PPTP
/usr/local/etc/mpd.conf
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
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
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
Конфигурация параметров сервера доступа (MPD) в веб интерфейсе администратора
Перейти в секцию меню Система → Сервер доступа и завести новый сервер доступа.
ID | Номер сервера доступа |
---|---|
IP | IP адрес |
Название: | Название |
Radius NAS-Identifier: | Дополнительный идентификатор сервера доступа. Использовать только в случае если на одно IP адресе используется несколько серверов доступа |
Описание: | Описание |
Тип: | Тип |
Авторизация: | Тип авторизации из базы данных или из файла паролей Unix |
External Accounting: | Указывает что данные для аккаунтинга берутся не с RADIUS сервера, а с внешнего источника. Обязательно включаем опцию. |
Alive (sec.): | Период между RADIUS Alive пакетами. Используется для проверки активности абонента. Если на протяжении 3 ALive пакетов от сервера доступа не было никаких данных система завершает сесию |
Отключено: | |
:Управление: | |
IP:PORT: | IP и порт для управления MPD |
Пользователь: | Пользователь для управления |
Пароль: | Пароль для управления |
Конфигурация тарифных планов
Перейти в секцию Система → Internet → Тарифные планы для создания тарифного плана.
После создания тарифного плана переходим в интервалы и создаём временной интервал работы.
После создания работы в временном интервале заводим класс трафика
Подключение модуля IPN и настройка программ: flow_capture.
Дополнительная информация [[abills:docs:modules:Ipn:ru|Ipn]].
# cd /usr/abills/libexec/ # ln -s ../Abills/modules/Ipn/trafdstats trafdstats # ln -s ../Abills/modules/Ipn/traffic2sql traffic2sql
Создать таблицы в базе.
# 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.
# cd /usr/ports/net-mgmt/flow-tools # make # make install
Запускаем
flow-capture -S 5 -n 287 -N 0 -d 5 -w /usr/abills/var/log/ipn/ 0/0/9996
Автоматический старт при загрузке в FreeBSD:
# chown flowtools /usr/abills/var/log/ipn/
/etc/rc.conf
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
*/5 * * * * root /usr/abills/libexec/traffic2sql 8 flowdir=/usr/abills/var/log/ipn/
Здесь 8 - NAS_ID сервера доступа с которого учитываем трафик