The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Изменить на лету Acct-Output-Octets и Acct-Inpu (RADIUS)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Изменить на лету Acct-Output-Octets и Acct-Inpu (RADIUS)"  
Сообщение от den_mechel (ok) on 09-Дек-08, 14:38 
Текушяя конфигурация
[1]NAS-сервер -> [2]Radius сервер(аунтификация, авторизация)->[3]Radius сервер(аккаунтинг)

Проблема:
1)NAS-сервер не верно пишет аттрибуты Acct-Output-Octets и Acct-Input-Octets
А именно передаваемые в них значения перепутаны местами
2) Исправить NAS сейчас нельзя
[3]Radius сервер(аккаунтинг) так же изменять нельзя

Задача:
Поменять местами значения в аттрибутах Acct-Output-Octets и Acct-Input-Octets до прихода их на [3]Radius сервер(аккаунтинг)

Вариант решения:
Добавить дополнительный RADIUS сервер между серверами [2] и [3] который будет проксировать аккаунтинговые пакеты на сервер [3] меняя при этом местами значения в аттрибутах Acct-Output-Octets и Acct-Input-Octets
Т.е.
[1]NAS-сервер -> [2]Radius сервер(аунтификация, авторизация)->[2.5]Radius сервер(проксирование аккаунтинга+изменение атрибутов)->[3]Radius сервер(аккаунтинг)

Пытаемся реализовать сервер [2.5]Radius сервер(проксирование аккаунтинга+изменение атрибутов) при помощи freeradius + модуль perl module (rlm_perl)

Можно ли это сделать в принципе? Как?
Можно ли для изменения этих атрибутов использовать хэш %RAD_REQUEST_PROXY
Что бы править проксируемый аккаунтинг?
Пример:

# Function to handle pre_proxy
sub pre_proxy {
#       &log_request_attributes;
#Т.е. читаем пришедшие значения при помощи
$real_output=$RAD_REQUEST{'Acct-Input-Octets'};
$real_input=$RAD_REQUEST{'Acct-Output-Octets'};
#И пересылаем их с изменением
$RAD_REQUEST_PROXY{'Acct-Input-Octets'}=$real_input;
$RAD_REQUEST_PROXY{'Acct-Output-Octets'}=$real_output;
       return RLM_MODULE_OK;

Так же у меня вопрос чем %RAD_REQUEST_PROXY_REPLY отличается от %RAD_REQUEST_PROXY?
Буду благодарен за любую помощь.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Изменить на лету Acct-Output-Octets и Acct-Inpu (RADIUS)"  
Сообщение от Grey (ok) on 09-Дек-08, 14:54 
>[оверквотинг удален]
>$real_input=$RAD_REQUEST{'Acct-Output-Octets'};
>#И пересылаем их с изменением
>$RAD_REQUEST_PROXY{'Acct-Input-Octets'}=$real_input;
>$RAD_REQUEST_PROXY{'Acct-Output-Octets'}=$real_output;
>       return RLM_MODULE_OK;
>
>
>
>Так же у меня вопрос чем %RAD_REQUEST_PROXY_REPLY отличается от %RAD_REQUEST_PROXY?
>Буду благодарен за любую помощь.

может стоит проще? К примеру на радиусе посмотреть запросы к SQL (надеюсь база в SQL) и поменять местами параметры в запросах?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Изменить на лету Acct-Output-Octets и Acct-Inpu (RADIUS)"  
Сообщение от den_mechel (ok) on 09-Дек-08, 15:01 
>может стоит проще? К примеру на радиусе посмотреть запросы к SQL (надеюсь
>база в SQL) и поменять местами параметры в запросах?

К сожалению проше нельзя.. т.к.  сервер [3] является лицензионным продуктом другой компании он работает по стандарту и вносить в него изменения нельзя (запрешено лицензией)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Изменить на лету Acct-Output-Octets и Acct-Inpu (RADIUS)"  
Сообщение от den_mechel (ok) on 09-Дек-08, 15:03 
>может стоит проще? К примеру на радиусе посмотреть запросы к SQL (надеюсь
>база в SQL) и поменять местами параметры в запросах?

Более того на третьем сервере аккаунтинг впринципе в базу не пишеться а для его учёта используется аккаунтинговый сервер с закрытым кодом.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Изменить на лету Acct-Output-Octets и Acct-Inpu (RADIUS)"  
Сообщение от YuryD (??) on 10-Дек-08, 08:14 
>Пытаемся реализовать сервер [2.5]Radius сервер(проксирование аккаунтинга+изменение атрибутов) при помощи freeradius + модуль
>perl module (rlm_perl)

В составе freeradius есть утилита radrelay в исходниках.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Изменить на лету Acct-Output-Octets и Acct-Inpu (RADIUS)"  
Сообщение от den_mechel (ok) on 10-Дек-08, 12:08 
> В составе freeradius есть утилита radrelay в исходниках.

Я так понимаю эта утилита занимается чтением логов фрирадиуса и дальнейшей отсылке RADIUS пакетов
Я правильно понял?

Т.е.я вижу 2 варианта:
1) мы пишем аккаунтинг в лог->Правим файл лога-> Пересылаем аккаунтинг при помощи RADRELAY далее
2)  мы пишем аккаунтинг в лог-> Пересылаем аккаунтинг при помощи RADRELAY далее (аккаунтинг правиться путём правки кода RADRELAY)

Вопросы:
По первому варианту: - как можно поправить файл лога (он ведь двоичный, есть ли какие то тилиты?)
По второму варианту: - как можно достать исходники этого модуля (radrelay)


Хотя конечно не хотелось бы писать код самому
Система биллинга коммерческая.. любые ошибки в коде могут привести к "нехорошим" проблемам)).
Хотелось бы решить проблему стандартными способами администрирования уже существующих стабильных программ


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Изменить на лету Acct-Output-Octets и Acct-Inpu (RADIUS)"  
Сообщение от den_mechel (ok) on 10-Дек-08, 15:21 
Ну с этим вариантом
--------------
>1) мы пишем аккаунтинг в лог->Правим файл лога-> Пересылаем аккаунтинг при помощи RADRELAY далее

-------------
более менее разобрался... аккаунтинг пишим в detail (формат в принципе обычный текст)... обрабатываем его внешней утилиткой... например на perl... меняем как там всё надо... а потом обрабатываем файл RADRELAY и отсылаем его...  пробывали в принципе работает
Спасибо.
Хотя конечно хотелось бы обрабатывать всё на лету... а не через файлы логов

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Изменить на лету Acct-Output-Octets и Acct-Inpu (RADIUS)"  
Сообщение от den_mechel (ok) on 13-Фев-09, 12:10 
>Ну с этим вариантом
>--------------
>>1) мы пишем аккаунтинг в лог->Правим файл лога-> Пересылаем аккаунтинг при помощи RADRELAY далее

Да, RADRELAY вроде не плох....
Но есть минусы всё же
Может всё таки можно через rlm_perl менять ни кто ни пробывал?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру