Freeradius Xlat

Материал из noname.com.ua
Версия от 08:56, 11 января 2010; Sirmax (обсуждение | вклад) (Новая: =FreeRadius Xlat= FreeRadius предоставляет интересные возможности для опереривания с данными. В моем случае мне н...)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигацииПерейти к поиску

FreeRadius Xlat

FreeRadius предоставляет интересные возможности для опереривания с данными. В моем случае мне не хотелось для каждого абонента делать дублирование данных из биллинга ( в моем случае таблица mtraf) в radcheck и radreply.


select * from radcheck;
+----+----------+------------------+----+------------------------------------------------------------+
| id | username | attribute        | op | value                                                      |
+----+----------+------------------+----+------------------------------------------------------------+
|  4 | tan      | Simultaneous-Use | := | 1                                                          |
|  7 | tan      | Password         | := | `%{sql:SELECT pwd FROM mtraf WHERE domain='%{User-Name}'}` |
+----+----------+------------------+----+------------------------------------------------------------+

(обратить внимание на обратные кавычки, в которые взят запрос) Аналогично, для передачи лимитов по скорости

#
DEFAULT Framed-Protocol == PPP
        Framed-Protocol = PPP,
        Service-Type = Framed-User,
        Cisco-AVPair += "%{sql:SELECT CONCAT('lcp:interface-config=rate-limit input ',ul_in*1024, ' ', ROUND(ul_in*1000/8), ' ', ROUND(ul_in*1000/8), ' conform-action transmit exceed-action drop') from mtraf where domain='%{User-Name}'}",
        Cisco-AVPair += "%{sql:SELECT CONCAT('lcp:interface-config=rate-limit output ',ul_in*1024, ' ', ROUND(ul_out*1000/8), ' ', ROUND(ul_out*1000/8), ' conform-action transmit exceed-action drop') from mtraf where domain='%{User-Name}'}",
        PPPD-Upstream-Speed-Limit  :=  "%{sql:SELECT ul_in  from mtraf where domain='%{User-Name}'} ",
        PPPD-Downstream-Speed-Limit := "%{sql:SELECT ul_out from mtraf where domain='%{User-Name}'} "