{toc}
h1. REST-API
У 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}
Мы постараемся помочь с написанием таких скриптов, позже в этом разделе будут примеры скриптов для разных биллингов.
h2. Мастер настройки системы контроля доступа абонентов.
{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}
h1. REST-API
У 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}
Мы постараемся помочь с написанием таких скриптов, позже в этом разделе будут примеры скриптов для разных биллингов.
h2. Мастер настройки системы контроля доступа абонентов.
{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}