Добрый день!Может кто поможет побороть или направить в нужное направление.
Имеем сеть с авторизацией по option82(vlan+port):
- option82
- option82+mac
сейчас пытаюсь внедрить ipv6, потому добавляем авторизацию по:
- option37Freeradius mysql + files, так как username в mysql уникальное значение, а за портом может быть больше одго dhcp-client их пишем в файлы с дополнительным параметром calling-station-id(то есть МАС-адрес). На данный момент, без option37 все работает, в радиус подменяем username на DHCP-RelayCircuitId. И можно было бы закрыть глаза на небольшие костыли в виде mysql + files, но так как хочеться еще внедрить ipv6, надо иметь username = DHCPv6-RelayCircuitId.
Вот собственно и вопрос, как сделать подмену username на нужный параметр в запросе? Если есть option82 то (username=dhcp-relaycircuitid), если есть option37 то (username=dhcpv6-relaycircuitid), если нет ничего то (username).
Спасибо!
https://networkradius.com/doc/3.0.10/unlang/condition.htmlif( ATTR == option82 {
update request {
User-Name := "option82"
}
}
> https://networkradius.com/doc/3.0.10/unlang/condition.html
> if( ATTR == option82 {
> update request {
>
> User-Name := "option82"
> }
> }:)
Наконец-то нашел как и где сделать подмену.
Сделал так в policy.d/filter:filter_username {
if (&User-Name) {# если есть параметр Param_1, назначаем его как Username
if (&Param_1) {
update request {
&User-Name := &Param_1
}
}
# если Param_1 нет, назначаем Param_2 как Username
else {
update request {
&User-Name := &Param_2
}
}....
skip
....}