billing:freeradius_api

Freeradius API

Предоставляет API интерфейс в биллинге для генерации radius конфигов и кеша пользователей.

Установка и настройка Freeradius cache

Настройки находятся по пути: Настройки ⇒ Системные опции ⇒ Внешние интеграции, раздел "freeradius"


Для активации необходимо "Разрешить" использование функционала поставив галочку с одноименным названием.
Далее необходимо указать IP адрес либо сеть с которой будут приходить запросы.
И указать ключ который будет использоваться при запросах

Параметр request принимает следующие значения:

  • cache - для генерации кеша пользователей и может принимать следующие параметры
  • config - для генерации файлов конфигурации

При генерации кеша пользователей, доступны следующие переменные:

  • type - тип кеша, может принимать значения:
    • accelv2 - для модуля BRAS accelv2
    • ciscoasr - для модуля BRAS Cisco ASR
  • 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 серверах, необходимо выполнить запрос

https://admin.ispnet.demo/api/index/freeradius/key/1234567890/request/config/file/clients

В результате которого будут данные в виде:

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 с ответами на запросы авторизации от абонентов, необходимо отправить запрос

https://admin.ispnet.demo/api/index/freeradius/key/1234567890/request/cache/type/accelv2/pattern/{{dev_mac}}

В результате которого будут данные в виде:

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"
  • billing/freeradius_api.txt
  • Последнее изменение: 2 мес. назад
  • alexd