=====Учёт нескольких классов трафика (IPN + Dv)===== Данная схема предусматривает учёт разных классов трафика: интернет, пиринговый, локальная сеть провайдера.\\ {{http://abills.net.ua/img/dv_ipn.gif|Dv + IPN}}\\ При данной схеме задействуются два модуля системы: * [[abills:docs:modules:dv:ru|Dv]] выполняет функции авторизации, контроля времени, слежение за балансом клиента. * [[abills:docs:modules:dv:ru|Ipn]] выполняет функции аккаунтинга (собирание трафика). =====Настройка на примере MPD 5.x + flow_capture===== ==== Предварительная настройки модуля ==== Дополнительная информация [[abills:docs:modules:dv:ru|Dv]]. ====Конфигурация MPD==== Дополнительная информация [[abills:docs:mpd:ru|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) в веб интерфейсе администратора==== Перейти в секцию меню ** Система -> Сервер доступа ** и завести новый сервер доступа. {{dv_ipn_nas.gif}} ^ID |Номер сервера доступа| ^IP | IP адрес| ^Название: | Название | ^Radius NAS-Identifier: | Дополнительный идентификатор сервера доступа. Использовать только в случае если на одно IP адресе используется несколько серверов доступа | ^Описание: | Описание | ^Тип: | Тип | ^Авторизация: | Тип авторизации из базы данных или из файла паролей Unix | ^External Accounting: | Указывает что данные для аккаунтинга берутся не с RADIUS сервера, а с внешнего источника. **Обязательно включаем опцию.** | ^Alive (sec.): | Период между RADIUS Alive пакетами. Используется для проверки активности абонента. Если на протяжении 3 ALive пакетов от сервера доступа не было никаких данных система завершает сесию | ^Отключено: | | ^:Управление: || ^IP:PORT: | IP и порт для управления MPD | ^Пользователь: | Пользователь для управления | ^Пароль: | Пароль для управления | ====Конфигурация тарифных планов==== Перейти в секцию Система -> Internet -> Тарифные планы для создания тарифного плана.\\ После создания тарифного плана переходим в интервалы и создаём временной интервал работы.\\ {{http://abills.net.ua/img/dv_ipn_tp_intervals.gif|Заведение интервалов}}\\ После создания работы в временном интервале заводим класс трафика\\ {{http://abills.net.ua/img/dv_ipn_tp_traffic.gif|Заведение классов трафика}}\\ После успешной конфигурации все должно выглядеть так\\ {{http://abills.net.ua/img/dv_ipn_tp.gif|классы трафика}}\\ ==== Подключение модуля 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 потоками отправляемыми маршрутизаторами [[http://www.cisco.com/|Cisco]] или [[http://www.juniper.net/|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 сервера доступа с которого учитываем трафик