Freeradius API
Предоставляет API интерфейс в биллинге для генерации radius конфигов и кеша пользователей.
Активация
Настройки находятся по пути: Настройки ⇒ Системные опции ⇒ Внешние интеграции, раздел "freeradius"
Для активации необходимо "Разрешить" использование функционала поставив галочку с одноименным названием.
Далее необходимо указать IP адрес либо сеть с которой будут приходить запросы.
И указать ключ который будет использоваться при запросах
Запросы
Параметр request принимает следующие значения:
- cache - для генерации кеша пользователей и может принимать следующие параметры
- config - для генерации файлов конфигурации
При генерации кеша пользователей, доступны следующие переменные:
- type - тип кеша, может принимать значения:
- accelv2 - для модуля BRAS accelv2
- ciscoasr - для модуля BRAS Cisco ASR
- juniper - для модуля BRAS juniperMX v2
- framed_ip - использовать framed_ip вместо local_ip, значения: 0/1
- pattern - генерируемая строка поиска абонента (по умолчанию local_mac), может принимать значения:
- {{local_mac}} - локальный MAC абонента
- {{local_ip}} - локальный IP абонента
- {{framed_ip}} - Framed IP абонента
- {{user}} - логин абонента
- {{password}} - пароль абонента
- {{dev_mac}} - МАК из устройства абонента (если в устройстве нет MAC используется local_mac)
- {{device_sn}} - Серийный номер из устройства абонента
- {{dev_ip}} - IP адрес из устройства абонента (если в устройстве нет MAC используется local_ip/framed_ip)
При генерации файлов конфигурации, доступны следующие переменные:
- file - тип генерируемого файла, может принимать значения:
- clients- для генерации информации о BRAS
- radius - оптимальные настройки для radius (в разработке)
Примеры запросов
Информация о BRAS серверах (clients.conf)
Для генерации файла clients.conf с информацией о BRAS серверах, необходимо выполнить запрос
В результате которого будут данные в виде:
client bras_1 { #shortname = radius check2 #brastype = accelv2 ipaddr = 127.0.0.1 netmask = 32 secret = testing123 nastype = other } client bras_2 { #shortname = junmx2 #brastype = junmxv2 ipaddr = 192.168.8.1 netmask = 32 secret = secret nastype = other } client bras_3 { #shortname = NAS 2 #brastype = accelv2 ipaddr = 192.168.200.4 netmask = 32 secret = secret nastype = other } client bras_4 { #shortname = PPPoE #brastype = mikrotik ipaddr = 192.168.1.205 netmask = 32 secret = secret nastype = other }
Кеш пользователей (users)
Для генерации кеш файла users с ответами на запросы авторизации от абонентов, необходимо отправить запрос
В результате которого будут данные в виде:
00:00:00:00:00:06 Auth-Type := Accept Framed-IP-Address = 192.168.1.10, DHCP-Mask = 25, DHCP-Router-IP-Address = 192.168.1.1, DHCP-Domain-Name-Server = 8.8.8.8, DHCP-Domain-Name-server = 192.168.1.1, Acct-Interim-Interval = 300, Filter-Id = 0/0, L4-Redirect-ipset = active 00:00:00:00:02:03 Auth-Type := Accept Framed-IP-Address = 10.100.200.144, DHCP-Mask = 24, DHCP-Router-IP-Address = 10.100.200.1, DHCP-Domain-Name-Server = 10.100.200.2, DHCP-Domain-Name-server = 10.100.200.1, Acct-Interim-Interval = 300, Filter-Id = 0/0, L4-Redirect-ipset = active 00:00:00:01:02:03 Auth-Type := Accept Framed-IP-Address = 10.100.200.144, DHCP-Mask = 24, DHCP-Router-IP-Address = 10.100.200.1, DHCP-Domain-Name-Server = 10.100.200.2, DHCP-Domain-Name-server = 10.100.200.1, Acct-Interim-Interval = 300, Filter-Id = 0/0, L4-Redirect-ipset = active 00:00:22:33:44:55 Auth-Type := Accept Framed-IP-Address = 10.0.1.24, DHCP-Mask = 24, DHCP-Router-IP-Address = 10.0.1.1, DHCP-Domain-Name-Server = 8.8.8.8, DHCP-Domain-Name-server = 10.0.1.1, Acct-Interim-Interval = 300, Filter-Id = 1024/2048, L4-Redirect-ipset = active 01:00:00:02:03:04 Auth-Type := Accept Framed-IP-Address = 10.2.0.2, DHCP-Mask = 25, DHCP-Router-IP-Address = 10.2.0.30, DHCP-Domain-Name-Server = 1.1.1.1, Acct-Interim-Interval = 300, Filter-Id = 0/0, L4-Redirect-ipset = active 88:11:22:33:44:70 Auth-Type := Accept Framed-IP-Address = 10.0.1.22, DHCP-Mask = 24, DHCP-Router-IP-Address = 10.0.1.1, DHCP-Domain-Name-Server = 8.8.8.8, DHCP-Domain-Name-server = 10.0.1.1, Acct-Interim-Interval = 300, Filter-Id = 0/0, L4-Redirect-ipset = active
Коды ошибок
- 0 ⇒ 'Success' - Запрос обработался без ошибок
- 1 ⇒ 'API not enable' - API не включено
- 2 ⇒ 'Wrong API key' - неверный ключ API
- 3 ⇒ 'Bad request' - в запросе нету ключа "request"
- 4 ⇒ 'Unknown request' - неизвестное значение ключа "request"
- 5 ⇒ 'Access denied from your IP' - доступа с вашего IP запрещен
- 6 ⇒ 'Bad type' - в запросе нету ключа "type"
- 7 ⇒ 'Unknown type' - неизвестное значение ключа "type"
- 8 ⇒ 'Bad file' - в запросе нету ключа "file"
- 9 ⇒ 'Unknown file' - неизвестное значение ключа "file"