| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| dpi:dpi_components:platform:subscriber_management:subsman_common [2026/05/06 16:05] – atereschenko | dpi:dpi_components:platform:subscriber_management:subsman_common [2026/05/20 13:52] (текущий) – elena.krasnobryzh |
|---|
| ====== Настройка управления DPI ====== | ====== Настройка управления DPI. Интеграция через метод PUSH ====== |
| {{indexmenu_n>1}} | {{indexmenu_n>1}} |
| | |
| Управление абонентами (Subscriber Management, SM) позволяет подключать услуги, управлять ограничением полосы (полисингом) и применять другие действия по отношению к отдельным абонентам. | Управление абонентами (Subscriber Management, SM) позволяет подключать услуги, управлять ограничением полосы (полисингом) и применять другие действия по отношению к отдельным абонентам. |
| СКАТ DPI идентифицирует абонентов по IP адресу, так как другой информации в IP пакете не присутствует, поэтому если выдача IP адресов абонентам производится динамически, необходимо произвести интеграцию с узлом выдачи адресов (RADIUS, DHCP, BRAS) или установить компонент [[dpi:dpi_components:radius|]]. | |
| |
| Чтобы при перезапуске платформы восстановились настройки абонентских профилей, необходимо [[dpi:dpi_components:platform:dpi_admin:admin_db#Активация встроенной БД|активировать встроенную БД]] или разместить скрипты инициализации в каталоге /etc/dpi/init.d/ (аналогично тому, как это обычно делается в linux при управлении шейпером или процессом загрузки). Последний вариант имеет свои преимущества и может оказаться подходящим решением для быстрой миграции с Linux/FreeBSD или аппаратных шейперов без собственной БД. | СКАТ DPI идентифицирует абонентов по IP-адресу, так как другой информации в IP-пакете не присутствует, поэтому если выдача IP-адресов абонентам производится динамически, необходимо произвести интеграцию с узлом выдачи адресов (RADIUS, DHCP) или установить компонент [[dpi:dpi_components:radius|]]. |
| |
| ===== Удаленное управление ===== | Интеграция DPI платформы с биллингом по схеме PUSH подразумевает, что биллинг (или доп. система) должен самостоятельно сообщить на DPI информацию о подключенных абоненту услугах и настройках полисинга до их фактического применения на DPI. Переданные данные запоминаются во встроенной БД UDR и сразу активны после перезагрузки системы. |
| {{indexmenu_n>10}} | |
| Для управления DPI c другого компьютера рекомендуется использовать [[dpi:dpi_components:platform:subscriber_management:subsman_remote#удаленный_запуск_команд_через_ssh|удаленный запуск команд через SSH]]. Биллинговые системы обычно имеют встроенную поддержку этого способа управления. | |
| |
| В качестве альтернативы можно использовать [[dpi:dpi_components:platform:subscriber_management:subsman_remote#удаленный_запуск_утилиты_fdpi_ctrl|удаленный запуск утилиты fdpi_ctrl]] или установить на DPI сервер дополнительное программное обеспечение для удаленного управления: | <note tip>Рекомендуется использовать метод интеграции PULL (по протоколу RADIUS). Продукт [[dpi:bras_bng|]].</note> |
| telnet сервер и другие. | |
| ==== Удаленный запуск команд через SSH ==== | |
| |
| Для удаленного запуска команд на сервере DPI через SSH без ввода пароля рекомендуем использовать аутентификацию пользователей по публичным ключам. | Чтобы при перезапуске платформы восстановились настройки абонентских профилей, необходимо [[dpi:dpi_components:platform:dpi_admin:admin_db#Активация встроенной БД|активировать встроенную БД]] или разместить скрипты инициализации в каталоге ''/etc/dpi/init.d/'' (аналогично тому, как это обычно делается в Linux при управлении шейпером или процессом загрузки). Последний вариант имеет свои преимущества и может оказаться подходящим решением для быстрой миграции с Linux/FreeBSD или аппаратных шейперов без собственной БД. |
| |
| Для этого на сервере управления: | Популярные сценарии подготовки профилей для финансовой блокировки описаны в статье [[dpi:dpi_options:use_cases:qs_rateplans]]. |
| - создаем пару из публичного и закрытого ключей <code>ssh-keygen -t rsa</code> В диалоге выбираем значения по умолчанию. Секретную фразу для простоты дальнейшего использования оставляем пустой((либо используем возможности ssh-agent для хранения паролей)) | |
| - копируем публичный ключ на сервер DPI<code>ssh-copy-id dpi_user@dpi_host | |
| или ручками | |
| cat ~/.ssh/id_rsa.pub | ssh dpi_user@dpi_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"</code> | |
| |
| На сервере DPI проверяем и исправляем права на файл authorized_keys<code>chmod 700 ~dpi_user/.ssh/ | **Утилита ''fdpi_ctrl'' является высокоскоростным API для управления DPI\\ |
| | Пример: задание тарифного плана (настроек полисинга) сразу для 30 тысяч абонентов занимает меньше секунды:** |
| | <code bash> |
| | 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 |
| | </code> |
| | |
| | ===== Удаленный запуск команд через SSH ===== |
| | Для удаленного запуска команд на сервере DPI через SSH без ввода пароля рекомендуется использовать аутентификацию пользователей по публичным ключам. |
| | |
| | Для этого на сервере управления необходимо: |
| | - Создать пару из публичного и закрытого ключей: <code bash>ssh-keygen -t rsa</code> В диалоге выбрать значения по умолчанию. Секретную фразу для простоты дальнейшего использования оставить пустой((Либо использовать возможности ssh-agent для хранения паролей)) |
| | - Скопировать публичный ключ на сервер DPI командой: <code bash>ssh-copy-id dpi_user@dpi_host</code> или вручную <code bash>cat ~/.ssh/id_rsa.pub | ssh dpi_user@dpi_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"</code> |
| | - На сервере DPI проверить и исправить права на файл ''authorized_keys'': <code bash>chmod 700 ~dpi_user/.ssh/ |
| chmod 600 ~dpi_user/.ssh/authorized_keys | chmod 600 ~dpi_user/.ssh/authorized_keys |
| restorecon -Rv ~dpi_user/.ssh/</code> | restorecon -Rv ~dpi_user/.ssh/</code> |
| | - Проверить работоспособность удаленного запуска ''fdpi_ctrl'' c сервера управления: <code bash>ssh dpi_user@dpi_host "fdpi_ctrl load --service 6 --login test"</code> Если запуск не работает, рекомендуется найти подсказки в логе ''/var/log/secure'' на DPI сервере и включить диагностический режим SSH: ''ssh -v ...'' |
| |
| Проверяем работоспособность удаленного запуска fdpi_ctrl c сервера управления | ===== Удаленный запуск утилиты fdpi_ctrl ===== |
| <code> | |
| ssh dpi_user@dpi_host "fdpi_ctrl load --service 6 --login test" | |
| </code> | |
| Если запуск не работает, попробуйте найти подсказки в логе /var/log/secure на DPI сервере | |
| и включив на ssh диагностический режим: ssh -v ... | |
| | |
| ==== Удаленный запуск утилиты fdpi_ctrl ==== | |
| Для передачи команд на DPI используется TCP соединение через порт управления, поэтому необходимо разрешить в firewall внешний доступ по порту управления. | Для передачи команд на DPI используется TCP соединение через порт управления, поэтому необходимо разрешить в firewall внешний доступ по порту управления. |
| Для того, чтобы DPI платформа принимала управляющие команды необходимо задать в конфигурационном файле /etc/dpi/fastdpi.conf: | |
| Номер прослушиваемого порта: | |
| <code>ctrl_port=29000</code> | |
| |
| Имя сетевого интерфейса, по умолчанию DPI настроен на взаимодействие с через lo-интерфейс: | Для того чтобы DPI платформа принимала управляющие команды необходимо задать в конфигурационном файле ''/etc/dpi/fastdpi.conf'': |
| <code>ctrl_dev=eth0</code> | - Номер прослушиваемого порта: <code bash>ctrl_port=29000</code> |
| | - Имя сетевого интерфейса, по умолчанию DPI настроен на взаимодействие с через lo-интерфейс:<code bash>ctrl_dev=eth0</code> |
| |
| Для удаленного запуска утилиты fdpi_ctrl нужно произвести следующие действия: | Для удаленного запуска утилиты ''fdpi_ctrl'' нужно произвести следующие действия: |
| - в настроечном файле dpi /etc/dpi/fastdpi.conf включить прослушивание сетевого интерфейса управления, доступного извне<code>ctrl_dev=eth0</code> | - В настроечном файле DPI ''/etc/dpi/fastdpi.conf'' включить прослушивание сетевого интерфейса управления, доступного извне: <code bash>ctrl_dev=eth0</code> |
| - в настройках firewall /etc/sysconfig/iptables открыть доступ на порт, указанный в настройке ctrl_port и ограничить к хосту DPI доступ только с управляющего сервера <code>-A INPUT -m state --state NEW -m tcp -s 192.168.0.2 -p tcp --dport 29000 -j ACCEPT</code> | - В настройках firewall ''/etc/sysconfig/iptables'' открыть доступ на порт, указанный в настройке ''ctrl_port'' и ограничить к хосту DPI доступ только с управляющего сервера <code bash>-A INPUT -m state --state NEW -m tcp -s 192.168.0.2 -p tcp --dport 29000 -j ACCEPT</code> |
| - скопировать утилиту fdpi_ctrl на управляющий сервер и запускать ее с аргументом -r host:port<code>fdpi_ctrl load --service 6 --login test -r 192.168.0.1:29000</code> | - Скопировать утилиту ''fdpi_ctrl'' на управляющий сервер и запускать ее с аргументом -r host:port<code bash>fdpi_ctrl load --service 6 --login test -r 192.168.0.1:29000</code> |
| |
| :!: При обновлениях версии DPI нужно не забывать обновлять fdpi_ctrl на управляющем сервере | <note important>При обновлениях версии DPI необходимо обновлять ''fdpi_ctrl'' на управляющем сервере</note> |
| | |