RADIUS CoA (Change of Authorization) - это механизм изменения AAA сессий после ее установления, другими словами путем отсылки CoA пакетов можно на лету изменять параметры/атрибуты сессии не прибигая к остановке сессии и последующего старта с необходимыми атрибутами. При отладке приложений удобно подобные запросы отправлять непосредственно с командной строки. В Linux есть необходимая утилита, обычно применяющаяся для отладки FreeRADIUS сервера - radclient, с ее помощью можно непосредственно с командной строки выполнить CoA запрос:
echo User-Name="10.10.14.161", Nas-Identifier="192.168.122.111" | radclient -d /opt/raddb/ -sx 127.0.0.1:3799 coa testpassword
Синтаксис, думаю, не требует разъяснений, но хотелось бы отметить пару моментов:
- необходимые атрибуты и их значения указываются через запятую
- опция -d - указывает путь до папки со словарем. в этой папке читается только один файл с именем dictionary, при необходимости подключения нескольких словарей, необходимо делать "include"ы непосредственно в этом файле (напр: $INCLUDE dictionary.cisco)
- атрибуты передаваемые в radclient должный быть прописаны в словаре. Если при выполнении команды встречается неизвестный атрибут - он и последующие атрибуты не отправляются
- не забывайте про кавычки в значениях атрибутов (например, таких как МАС-адрес)
При выполнении CoA запроса можно увидеть результат его выполнения, в частности переданные атрибуты и ответ:
Sending CoA-Request of id 169 to 127.0.0.1 port 3799
User-Name = "10.10.14.161"
NAS-Identifier = "192.168.122.111"
rad_recv: CoA-NAK packet from host 127.0.0.1 port 3799, id=169, length=26
Error-Cause = NAS-Identification-Mismatch
Таким образом получаем простой способ для отладки RADIUS CoA приложений, так же данный способ удобен в применении в различных скриптах, если не хочется тратить время на написание обертки скажем на Perl или Phyton с применением RADIUS библиотек.
Комментарий: