====== Настройка управления DPI. Интеграция через метод PUSH ======
{{indexmenu_n>1}}
Управление абонентами (Subscriber Management, SM) позволяет подключать услуги, управлять ограничением полосы (полисингом) и применять другие действия по отношению к отдельным абонентам.
СКАТ DPI идентифицирует абонентов по IP-адресу, так как другой информации в IP-пакете не присутствует, поэтому если выдача IP-адресов абонентам производится динамически, необходимо произвести интеграцию с узлом выдачи адресов (RADIUS, DHCP) или установить компонент [[dpi:dpi_components:radius|]].
Интеграция DPI платформы с биллингом по схеме PUSH подразумевает, что биллинг (или доп. система) должен самостоятельно сообщить на DPI информацию о подключенных абоненту услугах и настройках полисинга до их фактического применения на DPI. Переданные данные запоминаются во встроенной БД UDR и сразу активны после перезагрузки системы.
Рекомендуется использовать метод интеграции PULL (по протоколу RADIUS). Продукт [[dpi:bras_bng|]].
Чтобы при перезапуске платформы восстановились настройки абонентских профилей, необходимо [[dpi:dpi_components:platform:dpi_admin:admin_db#Активация встроенной БД|активировать встроенную БД]] или разместить скрипты инициализации в каталоге ''/etc/dpi/init.d/'' (аналогично тому, как это обычно делается в Linux при управлении шейпером или процессом загрузки). Последний вариант имеет свои преимущества и может оказаться подходящим решением для быстрой миграции с Linux/FreeBSD или аппаратных шейперов без собственной БД.
Популярные сценарии подготовки профилей для финансовой блокировки описаны в статье [[dpi:dpi_options:use_cases:qs_rateplans]].
**Утилита ''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 без ввода пароля рекомендуется использовать аутентификацию пользователей по публичным ключам.
Для этого на сервере управления необходимо:
- Создать пару из публичного и закрытого ключей: ssh-keygen -t rsa В диалоге выбрать значения по умолчанию. Секретную фразу для простоты дальнейшего использования оставить пустой((Либо использовать возможности ssh-agent для хранения паролей))
- Скопировать публичный ключ на сервер 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"
- На сервере DPI проверить и исправить права на файл ''authorized_keys'': chmod 700 ~dpi_user/.ssh/
chmod 600 ~dpi_user/.ssh/authorized_keys
restorecon -Rv ~dpi_user/.ssh/
- Проверить работоспособность удаленного запуска ''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'':
- Номер прослушиваемого порта: ctrl_port=29000
- Имя сетевого интерфейса, по умолчанию DPI настроен на взаимодействие с через lo-интерфейс:ctrl_dev=eth0
Для удаленного запуска утилиты ''fdpi_ctrl'' нужно произвести следующие действия:
- В настроечном файле DPI ''/etc/dpi/fastdpi.conf'' включить прослушивание сетевого интерфейса управления, доступного извне: ctrl_dev=eth0
- В настройках 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
- Скопировать утилиту ''fdpi_ctrl'' на управляющий сервер и запускать ее с аргументом -r host:portfdpi_ctrl load --service 6 --login test -r 192.168.0.1:29000
При обновлениях версии DPI необходимо обновлять ''fdpi_ctrl'' на управляющем сервере