LINUX.ORG.RU

Сообщения sleeperzx

 

radius + dlink igmp access_authentication ports

Во время запроса канала dlink перехватывает igmp query и отправляет его радиусу с такими полями:

User-Name = "FFFFFFFFFFFF"
(21)   NAS-IP-Address = 10.0.0.1
(21)   NAS-Identifier = "D-Link"
(21)   NAS-Port-Type = Virtual
(21)   Service-Type = Framed-User
(21)   Framed-Protocol = PPP
(21)   NAS-Port = 24
(21)   Framed-IP-Address = 238.0.0.65

radius 3.0 отказывается кушать поле Framed-IP-Address через регулярку

+----+--------------+--------------------+----+--------------+
| id | username     | attribute          | op | value        |
+----+--------------+--------------------+----+--------------+
|  1 | FFFFFFFFFFFF | Cleartext-Password | := | FFFFFFFFFFFF |
|  2 | FFFFFFFFFFFF | NAS-Port           | == | 24           |
|  3 | FFFFFFFFFFFF | Framed-IP-Address  | =~ | 238.0.0.*    |
+----+--------------+--------------------+----+--------------+

Собственно ошибка.

(23) sql: ERROR: Error parsing value: Failed resolving "238.0.0.*" to IPv4 address: Name or service not known
(23) sql: ERROR: Error parsing user data from database result
(23) sql: ERROR: Error getting check attributes

Проблема в том, что я не пойму где radius приводит строку к типу IPv4 адреса.

Способов решения накопилось прилично. Но вопрос не в том как можно, а как правильно это сделать.

Так как абонентов iptv будет прилично и вероятно будет разделение по пакетам программ, хотелось бы уменьшить нагрузку на сервера.

1. Создать группу, напихать в нее абонентов и на эту группу повесить правило для каждого канала, но так как каналов 100+ и во время каждого запроса radius будет проходить все правила пока не найдет совпадение. Не уверен что это жирный запрос.
2. Решение через unlang.
3. Вызов Python скрипта.

Выключаю абонов методом удаления в базе порта абонента, relay в любом случае не обманет. А при отсутствии денег на счету абонент не получит iptv.

Но хотелось бы рулить регуляркой и оставлять абонам несколько каналов, чтобы они были счастливы.

P.S. ссылка на howto

 , , , ,

sleeperzx
()

RSS подписка на новые темы