Текушяя конфигурация
[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?
Буду благодарен за любую помощь.