Содержание

Настройка управления DPI. Интеграция через метод PUSH

Управление абонентами (Subscriber Management, SM) позволяет подключать услуги, управлять ограничением полосы (полисингом) и применять другие действия по отношению к отдельным абонентам.

СКАТ DPI идентифицирует абонентов по IP-адресу, так как другой информации в IP-пакете не присутствует, поэтому если выдача IP-адресов абонентам производится динамически, необходимо произвести интеграцию с узлом выдачи адресов (RADIUS, DHCP) или установить компонент FastRADIUS (Монитор событий RADIUS. RADIUS Mapping).

Интеграция DPI платформы с биллингом по схеме PUSH подразумевает, что биллинг (или доп. система) должен самостоятельно сообщить на DPI информацию о подключенных абоненту услугах и настройках полисинга до их фактического применения на DPI. Переданные данные запоминаются во встроенной БД UDR и сразу активны после перезагрузки системы.

Рекомендуется использовать метод интеграции PULL (по протоколу RADIUS). Продукт BRAS.

Чтобы при перезапуске платформы восстановились настройки абонентских профилей, необходимо активировать встроенную БД или разместить скрипты инициализации в каталоге /etc/dpi/init.d/ (аналогично тому, как это обычно делается в Linux при управлении шейпером или процессом загрузки). Последний вариант имеет свои преимущества и может оказаться подходящим решением для быстрой миграции с Linux/FreeBSD или аппаратных шейперов без собственной БД.

Популярные сценарии подготовки профилей для финансовой блокировки описаны в статье Быстрый старт: Тарифный план и Captive Portal (доступ к СЗР).

Утилита fdpi_ctrl является высокоскоростным API для управления DPI
Пример: задание тарифного плана (настроек полисинга) сразу для 30 тысяч абонентов занимает меньше секунды:

time fdpi_ctrl load --policing rate_10M.cfg --file subsribers.lst
 Result processing file 'subsribers.lst' : 30000/30000/0/0/0
 real 0m0.344s
 user 0m0.009s
 sys 0m0.144s

Удаленный запуск команд через SSH

Для удаленного запуска команд на сервере DPI через SSH без ввода пароля рекомендуется использовать аутентификацию пользователей по публичным ключам.

Для этого на сервере управления необходимо:

  1. Создать пару из публичного и закрытого ключей:
    ssh-keygen -t rsa

    В диалоге выбрать значения по умолчанию. Секретную фразу для простоты дальнейшего использования оставить пустой1)

  2. Скопировать публичный ключ на сервер DPI командой:
    ssh-copy-id dpi_user@dpi_host

    или вручную

    cat ~/.ssh/id_rsa.pub | ssh dpi_user@dpi_host "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"
  3. На сервере DPI проверить и исправить права на файл authorized_keys:
    chmod 700 ~dpi_user/.ssh/
    chmod 600 ~dpi_user/.ssh/authorized_keys
    restorecon -Rv ~dpi_user/.ssh/
  4. Проверить работоспособность удаленного запуска fdpi_ctrl c сервера управления:
    ssh dpi_user@dpi_host "fdpi_ctrl load --service 6 --login test"

    Если запуск не работает, рекомендуется найти подсказки в логе /var/log/secure на DPI сервере и включить диагностический режим SSH: ssh -v …

Удаленный запуск утилиты fdpi_ctrl

Для передачи команд на DPI используется TCP соединение через порт управления, поэтому необходимо разрешить в firewall внешний доступ по порту управления.

Для того чтобы DPI платформа принимала управляющие команды необходимо задать в конфигурационном файле /etc/dpi/fastdpi.conf:

  1. Номер прослушиваемого порта:
    ctrl_port=29000
  2. Имя сетевого интерфейса, по умолчанию DPI настроен на взаимодействие с через lo-интерфейс:
    ctrl_dev=eth0

Для удаленного запуска утилиты fdpi_ctrl нужно произвести следующие действия:

  1. В настроечном файле DPI /etc/dpi/fastdpi.conf включить прослушивание сетевого интерфейса управления, доступного извне:
    ctrl_dev=eth0
  2. В настройках firewall /etc/sysconfig/iptables открыть доступ на порт, указанный в настройке ctrl_port и ограничить к хосту DPI доступ только с управляющего сервера
    -A INPUT -m state --state NEW -m tcp -s 192.168.0.2 -p tcp --dport 29000 -j ACCEPT
  3. Скопировать утилиту fdpi_ctrl на управляющий сервер и запускать ее с аргументом -r host:port
    fdpi_ctrl load --service 6 --login test -r 192.168.0.1:29000
При обновлениях версии DPI необходимо обновлять fdpi_ctrl на управляющем сервере
1)
Либо использовать возможности ssh-agent для хранения паролей