URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 42707
[ Назад ]

Исходное сообщение
"Помогите советом по Radius+"

Отправлено dimabsd , 09-Апр-04 09:30 
Здраствуйте все.
Подскажите как быть.

Имеется сервер статистики DialUP Radius+ на Linux RH 7.3
Все хорошо работает. Но тарифицирует только время проведенное в сети.
Также может показывать сколько пользователь передал входящего и исходящего трафика.
Можно ли как то заставить этот Radius тарифицировать по трафику(превысил лимит - отлючил пользователя от сети)!!!

Помогите советом!


Содержание

Сообщения в этом обсуждении
"Помогите советом по Radius+"
Отправлено Simps , 09-Апр-04 09:46 
>Здраствуйте все.
>Подскажите как быть.
>
>Имеется сервер статистики DialUP Radius+ на Linux RH 7.3
>Все хорошо работает. Но тарифицирует только время проведенное в сети.
>Также может показывать сколько пользователь передал входящего и исходящего трафика.
>Можно ли как то заставить этот Radius тарифицировать по трафику(превысил лимит -
>отлючил пользователя от сети)!!!
>
>Помогите советом!
Dialup сделан на базе чего ? Cisco ? Тогда пишешь скрипт который по крону смотрит активные сессии и при превышении лимита по SNMP рубит сессию на Cisco. Вобщем схема такая: скрипт из крона смотрит трафик и при привышении по SNMP завершает сессии на точке доступа (теоретически это может быть и Unix и Cisco). По SNMP у меня пока не получилось управлять FreeBSD поэтому я выполняю на ней команды удаленно по ssh

"Помогите советом по Radius+"
Отправлено dimabsd , 09-Апр-04 09:58 
>Dialup сделан на базе чего ? Cisco ? Тогда пишешь скрипт который
>по крону смотрит активные сессии и при превышении лимита по SNMP
>рубит сессию на Cisco. Вобщем схема такая: скрипт из крона смотрит
>трафик и при привышении по SNMP завершает сессии на точке доступа
>(теоретически это может быть и Unix и Cisco). По SNMP у
>меня пока не получилось управлять FreeBSD поэтому я выполняю на ней
>команды удаленно по ssh

Понятно.
(DialUP на Cisco)
Но не понятно другое. Где прописать этот лимит, на Radius-е нет конкретной ячейки куда можно вписать трафик. Допустим я сделал новое окошко в которое можно прописать лимит трафика. А как это связать с Cisco?
Если можно опишите подробнее, а лутьше если Вы раньше с этим имели дело, то по icq-е или по e-mail.


"Помогите советом по Radius+"
Отправлено Simps , 09-Апр-04 10:22 
>>Dialup сделан на базе чего ? Cisco ? Тогда пишешь скрипт который
>>по крону смотрит активные сессии и при превышении лимита по SNMP
>>рубит сессию на Cisco. Вобщем схема такая: скрипт из крона смотрит
>>трафик и при привышении по SNMP завершает сессии на точке доступа
>>(теоретически это может быть и Unix и Cisco). По SNMP у
>>меня пока не получилось управлять FreeBSD поэтому я выполняю на ней
>>команды удаленно по ssh
>
>Понятно.
>(DialUP на Cisco)
>Но не понятно другое. Где прописать этот лимит, на Radius-е нет конкретной
>ячейки куда можно вписать трафик. Допустим я сделал новое окошко в
>которое можно прописать лимит трафика. А как это связать с Cisco?
>
>Если можно опишите подробнее, а лутьше если Вы раньше с этим имели
>дело, то по icq-е или по e-mail.
С Cisco это напрямую не связать (может что нибудь есть в vsa, но точно не знаю). Добавляешь новый атрибут допустим, traffic_limit и скриптом выдираешь его из базы для конкретного пользователя, этим же скриптом раз в минут 5 проверяешь accounting и смотришь чтобы трафик из аккаунтинга не превысил лимит, и если он превышен то по SNMP опускаешь интерфейс. Вобщем такая вот схема =)

"Помогите советом по Radius+"
Отправлено dimabsd , 09-Апр-04 11:03 

>С Cisco это напрямую не связать (может что нибудь есть в vsa,
>но точно не знаю). Добавляешь новый атрибут допустим, traffic_limit и скриптом
>выдираешь его из базы для конкретного пользователя, этим же скриптом раз
>в минут 5 проверяешь accounting и смотришь чтобы трафик из аккаунтинга
>не превысил лимит, и если он превышен то по SNMP опускаешь
>интерфейс. Вобщем такая вот схема =)

Спасибо.
Схема понятна. Будем разбираться.


"Помогите советом по Radius+"
Отправлено dimabsd , 09-Апр-04 16:28 
>
>>С Cisco это напрямую не связать (может что нибудь есть в vsa,
>>но точно не знаю). Добавляешь новый атрибут допустим, traffic_limit и скриптом
>>выдираешь его из базы для конкретного пользователя, этим же скриптом раз
>>в минут 5 проверяешь accounting и смотришь чтобы трафик из аккаунтинга
>>не превысил лимит, и если он превышен то по SNMP опускаешь
>>интерфейс. Вобщем такая вот схема =)
Дело в том что у меня база ведется в файле, а не в базе.

Файл вида /home/radius/conf/realm.ru.user

dima Encrypted-Password = "Oc3jTDDzSmrPE"           //зашифрованный пароль
     Comment = "dimon",                  //поле коментарий
     User-Contract = "1",                //номер контракта
     Dialup-Hours = "1",                 //кол-во часов
     Registration-Date = "Sep 23 2003",  //дата регистрации
     After-Dial-Expiration = "REMOVE"    //что делать после истечения лимита часов (удалить)

Вот так.
И каким образом мне добавить сюда новый параметр (traffic_limit)?

Может подскажете где можно скачать скрипты на Radius для отрубания пользователей Dialup после превышения лимита!!!



"Помогите советом по Radius+"
Отправлено A Clockwork Orange , 09-Апр-04 16:32 
Вообще радиусов туча. И почему твой радиус не считает трафик, просто удивительно.
Посмотри словарь, какие аттрибуты поддерживает твой радиус.

"Помогите советом по Radius+"
Отправлено dimabsd , 09-Апр-04 17:04 
>Вообще радиусов туча. И почему твой радиус не считает трафик, просто удивительно.
>
>Посмотри словарь, какие аттрибуты поддерживает твой радиус.

Дело в том, что мой радиус считает и часы и трафик, но в нем нет ограничение по трафику. Сейчас появилась такая потребность, чтобы радиус тарифицировал по трафику.
При этом заменять его на другой радиус нельзя.

Атрибутов туча, но ни один не относиться к трафику.


"Помогите советом по Radius+"
Отправлено YuryD , 09-Апр-04 17:14 
>Атрибутов туча, но ни один не относиться к трафику.

Ну тогда так, есть Session-Timeout, расчитыаешь время исходя из того,
что юзер на канале 56K может выкачать за секунду  столько-то Kb
и выдаешь ему в секундах сколько он проживет если будет качать по максимуму.
Таким образом, он за несколько сессий(прерывистых естественно) выберет свой лимит, кстати в аккаунтинге есть и октеты - пересчитывайте при старте сессии


"Помогите советом по Radius+"
Отправлено dimabsd , 09-Апр-04 17:19 
> Ну тогда так, есть Session-Timeout, расчитыаешь время исходя из того,
> что юзер на канале 56K может выкачать за секунду  столько-то
>Kb
> и выдаешь ему в секундах сколько он проживет если будет качать
>по максимуму.
> Таким образом, он за несколько сессий(прерывистых естественно) выберет >свой лимит, кстати
А если он не будет сильно забивать канал (на icq-е к примеру работает), то его отрубит раньше времени?
>в аккаунтинге есть и октеты - пересчитывайте при старте сессии
>
Пожалуйста расскажите по поподробней про октеты и про "пересчитывайте при старте сессии".



"Помогите советом по Radius+"
Отправлено YuryD , 09-Апр-04 17:33 
>А если он не будет сильно забивать канал (на icq-е к примеру
>работает), то его отрубит раньше времени?

Считайте средний траффик пользователя по предыдущим сессиям.

>Пожалуйста расскажите по поподробней про октеты и про "пересчитывайте при

Radius accounting имеет атрибуты AcctInputOctets и AcctOutputOctets
(переданные и посланные байты по завершении сессии). В правильно      настроенном accounting эти поля присутствуют.

Далее-более, нормальные системы могут посылать radius-у т.н. periodic
update пакеты во время сессии через определенный интервал времени, но увы
в них может не быть информации о траффике - даже от Cisco

Программа авторизации пользователей как правило умеет выполнять некие
скрипты before-authorization - в них и подсчитывайте session-timeout


"Помогите советом по Radius+"
Отправлено dimabsd , 09-Апр-04 17:56 
> Radius accounting имеет атрибуты AcctInputOctets и AcctOutputOctets
> (переданные и посланные байты по завершении сессии). В правильно  
>   настроенном accounting эти поля присутствуют.
Да, есть такие атрибуты!
> Далее-более, нормальные системы могут посылать radius-у т.н. periodic
> update пакеты во время сессии через определенный интервал времени, но увы
>
> в них может не быть информации о траффике - даже от
>Cisco
>
> Программа авторизации пользователей как правило умеет выполнять некие
>скрипты before-authorization - в них и подсчитывайте session-timeout
То что можно запускать скрипты после начала сессии это я знаю, я не могу понять, как высчитать session-timeout в зависимости сколько OutputBytes он передал !!!

"Помогите советом по Radius+"
Отправлено Simps , 09-Апр-04 19:08 
>> Radius accounting имеет атрибуты AcctInputOctets и AcctOutputOctets
>> (переданные и посланные байты по завершении сессии). В правильно  
>>   настроенном accounting эти поля присутствуют.
>Да, есть такие атрибуты!
>> Далее-более, нормальные системы могут посылать radius-у т.н. periodic
>> update пакеты во время сессии через определенный интервал времени, но увы
>>
>> в них может не быть информации о траффике - даже от
>>Cisco
>>
>> Программа авторизации пользователей как правило умеет выполнять некие
>>скрипты before-authorization - в них и подсчитывайте session-timeout
>То что можно запускать скрипты после начала сессии это я знаю, я
>не могу понять, как высчитать session-timeout в зависимости сколько OutputBytes он
>передал !!!

Хмм простейшая формула
session-timeout=(traffic_limit-current_traffic)\speed_in_second
Ну и проверки на то что traffic_limit не меньше current_traffic


"Помогите советом по Radius+"
Отправлено Simps , 09-Апр-04 17:34 
>> Ну тогда так, есть Session-Timeout, расчитыаешь время исходя из того,
>> что юзер на канале 56K может выкачать за секунду  столько-то
>>Kb
>> и выдаешь ему в секундах сколько он проживет если будет качать
>>по максимуму.
>> Таким образом, он за несколько сессий(прерывистых естественно) выберет >свой лимит, кстати
>А если он не будет сильно забивать канал (на icq-е к примеру
>работает), то его отрубит раньше времени?
>>в аккаунтинге есть и октеты - пересчитывайте при старте сессии
>>
>Пожалуйста расскажите по поподробней про октеты и про "пересчитывайте при старте сессии".
>
Признайся сразу и скажи просто: Ребята напишите за меня скрипт который будет это делать, мой мозг отключен и программить я не люблю а что такое Гугл я незнаю