bug or feature? attr_rewrite rule in post-proxy cannot create config items
Bastiaan Bakker
bastiaan.bakker at lifeline.nl
Wed Dec 21 15:25:19 CET 2005
Hi,
We have a freeradius 'frontend' server that proxies requests to several
legacy radius servers. The frontend server is responsible for IP pool
management, but the backend radius server should be able to determine on
a per user basis from which IP pool the frontend server should allocate
IP addresses. The backend servers return the name of the desired pool in
the reply attribute Framed-Pool. On the frontend server I've added a
rewrite rule to the post-proxy section in order to copy the Framed-Pool
value to the Pool-Name attribute used by rlm_ippool:
modules {
...
attr_rewrite framedpool2poolname {
attribute = Pool-Name
searchin = config
new_attribute=yes
searchfor=""
replacewith="%{proxy-reply:Framed-Pool}"
append=no
}
}
post-proxy {
framedpool2poolname
...
}
If I run freeradius in debuging mode 'radiusd -X -y', it says it sets
the Framed-Pool attribute:
rlm_attr_rewrite: Added attribute Pool-Name with value 'eln1'
modcall[post-proxy]: module "framedpool2poolname" returns ok for
request 0
However the 'eln1' IP pool module fails to find the Pool-Name config
item and consequently does not assign an address.
Do I misunderstand how the attr_rewrite module is supposed to work or is
this a bug? I'm using freeradius-1.0.1-3.RHEL4 on CentOS 4.2.
BTW, I did manage to get freeradius to do what I wanted but the
'solution' looks very much like an ugly kludge: I changed the
framedpool2poolname module to add a Pool-Name attribute as reply item
instead of config item and copy the reply item to the config item in
post-auth:
modules {
...
attr_rewrite poolname2poolname {
attribute = Pool-Name
searchin = config
new_attribute=yes
searchfor=""
replacewith="%{reply:Pool-Name}"
append=no
}
attr_rewrite framedpool2poolname {
attribute = Pool-Name
searchin = reply
new_attribute=yes
searchfor=""
replacewith="%{proxy-reply:Framed-Pool}"
append=no
}
}
post-auth {
poolname2poolname
...
}
The reason why I can't directly copy Framed-Pool to Pool-Name in
post-auth is that I don't want to send the Framed-Pool attribute to the
client and the last place where I can filter it out AFAIK is in an
attr_filter in post-proxy.
Any help in simplifying this setup or confirmation that the current
behaviour is indeed a bug would be appreciated very much.
Best regards,
Bastiaan Bakker
E.Novation Lifeline Networks bv
More information about the Freeradius-Users
mailing list