... {toc} У Carbon Reductor DPI X есть REST-API для управления абонентами. Это позволяет отправлять команды с помощью curl. В текущей версии управление строится на добавлении и снятии политик для абонентов. Абоненты идентифицируются по IP адресу, поэтому в случае снятия зеркала после NAT управление абонентами работать не будет. h2. Как работает API Схема REST API: {code} http://адрес-carbon-reductor-dpi-x:порт/api/v1/policy/название-политики/ip-адрес-абонента {code} Поддерживается 4 вида политики: * auth - абонент авторизован * negbal - абонент в отрицательном балансе * blocked - абонент заблокирован администратором * notify - абоненту будет один раз показано уведомление Не обязательно включать все политики - достаточно выбрать необходимые в мастере настройки в веб-интерфейсе. Действие с политикой зависит от HTTP-метода: * GET - узнать применена ли сейчас эта политика к абоненту * POST - применить политику к абоненту * DELETE - прекратить применять политику к абоненту h2. Примеры команд для управления абонентами Пусть веб-интерфейс Carbon Reductor DPI X доступен по адресу [http://10.30.40.1:8083]. Авторизовать абонента 10.30.40.50 {code} curl -XPOST http://10.30.40.1:8083/api/v1/policy/auth/10.30.40.50 {code} Проверить, перенаправляется ли абонент 10.30.40.50 на страницу отрицательного баланса {code} curl http://10.30.40.1:8083/api/v1/policy/negbal/10.30.40.50 {code} Перестать блокировать абонента 10.30.40.50 {code} curl -XDELETE http://10.30.40.1:8083/api/v1/policy/blocked/10.30.40.50 {code} Показать абоненту 10.30.40.50 уведомление один раз: {code} curl -XPOST http://10.30.40.1:8083/api/v1/policy/notify/10.30.40.50 {code} h2. Что делать на биллинге Настроить отправку команд. Многие биллинги делают это в виде bash-скрипта, в котором нужно определить нужные функции. Что-то вроде: {code} #!/bin/bash user_auth() { return 0 } user_auth_cancel() { return 0 } user_balance_negative() { return 0 } user_balance_positive() { return 0 } user_block() { return 0 } user_unblock() { return 0 } {code}
|
... {info}API доступен для всех авторизованных пользователей. Для того чтобы биллинг мог отправлять команды, необходимо добавить его IP-адрес в настройках{info} Заходим на веб-интерфейс Carbon Reductor DPI X: {panel} [http://10.30.40.1:8080] {panel} Переходим в Reductor \-> Настройка Carbon Reductor DPI X \-> Доступ к веб-интерфейсу \-> указываем ip-адрес биллинга и сохраняем настройки. !изображение_2020-11-06_114321.png|border=1! Переходим в меню Reductor DPI X > Абоненты > Система контроля доступа абонентов !bil1.png|border=1! h3. Шаг 1. Выберите необходимые функции. !bil2.png|border=1! Выбрав, нажимаем <Далее>. h3. Шаг 2. Расширенные настройки авторизации абонентов. Можно включить авторизацию абонентов по мак-адресу. !bil3.png|border=1! Но в таком случае на шаге 3 обязательно нужно указать абонентскую подсеть. Есть техническое ограничение - абоненты должны быть в одной IPv4-сети с маской /16 (255.255.0.0) или меньшего размера. !bil4.png|border=1! Нажимаем <Далее>. h3. Шаг 4. Выбираем режим блокировки для абонентов. !bil5.png|border=1! На данной странице выбираем режим блокировок, применяемых к не авторизованным или заблокированным администратором абонентам, а также к неплательщикам. h3. Шаг 5. Настройка однократных уведомлений абонентов !bil6.png|border=1! Выбрав, нажимаем <Далее>. h3. Шаг 6. Выбираем способ подтверждения абонентом просмотра уведомления. !bil7.png|border=1! Выбрав, нажимаем <Далее>. h3. Шаг 7. Настройка страниц-заглушек. Выбираем расположение страниц-заглушек. !bil8.png|border=1! Выбрав, нажимаем <Далее>. h3. Шаг 8. Настраиваем веб-сервер. Вводим имя интерфейса и ip-адреса страниц-заглушек. !bil9.png|border=1! Вводим и нажимаем <Далее>. h3. Шаг 9. Настройка перенаправлений HTTP-запросов. На данной странице можно указать адреса страниц, расположенных не на Carbon Reductor DPI X. !bil10.png|border=1! Вводим и нажимаем <Далее>. h3. Шаг 10. Проверяем настройки. !bil11.png|border=1! Проверяем, если все верно, нажимаем <Сохранить>. h3. Шаг 11. Настраиваем сеть и применяем настройки. !bil12.png|border=1! После настройки сети подключаемся к сервера по SSH и вводим команды в консоли: {info} service network restart /app/reductor/service restart {info} Страницы находятся здесь: {code} /app/blockpage/var/www.d/ {code}
|