Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Учёт нескольких классов трафика (IPN + Dv)

Данная схема предусматривает учёт разных классов трафика: интернет, пиринговый, локальная сеть провайдера.

При данной схеме задействуются два модуля системы:

  • Dv выполняет функции авторизации, контроля времени, слежение за балансом клиента.

  • Ipn выполняет функции аккаунтинга (собирание трафика).

Настройка на примере 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Номер сервера доступа
IPIP адрес
Название:Название
Radius NAS-Identifier:Дополнительный идентификатор сервера доступа. Использовать только в случае если на одно IP адресе используется несколько серверов доступа
Описание:Описание
Тип:Тип
Авторизация:Тип авторизации из базы данных или из файла паролей Unix
ExternalAccounting:Указывает что данные для аккаунтинга берутся не с RADIUS сервера, а с внешнего источника. Обязательно включаем опцию!
Alive (sec.):Период между RADIUS Alive пакетами. Используется для проверки активности абонента. Если на протяжении 3 ALive пакетов от сервера доступа не было никаких данных система завершает сесию
Отключено:
:Управление:
IP:PORT:IP и порт для управления MPD
Пользователь:Пользователь для управления
Пароль:Пароль для управления

Конфигурация тарифных планов

Перейти в  меню Настройка>Итнернет+>Тарифные планы для создания тарифного плана.

После создания тарифного плана переходим в Интервалы и создаём временной интервал работы.


После создания работы во временном интервале заводим класс трафика


После успешной конфигурации все должно выглядеть так


Подключение модуля 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 сервера доступа с которого учитываем трафик

  • No labels