HI This is where my skills are not great (regex) most other areas I can work with. Ultimately I am happy to pay someone to help write the little bit of code that does this. I do need to cope with Netmasks from /32 to /24 so a few switch cases. Alternatively if someone can provide a few pointers on that bit I can probably build from there. Again I am not expecting something for nothing - so if it needs an hour or so's work I am happy to reward for that Richard
--- Original message --- Subject: Re: Proxy / reply translation From: Matthew Newton <mcn@freeradius.org> To: FreeRadius users mailing list <freeradius-users@lists.freeradius.org> Date: Thursday, 09/11/2017 10:31 AM
On Thu, 2017-11-09 at 10:20 +0000, Richard J Palmer wrote:
* Framed-IP-Address = 1.2.3.1 Framed-IP-Netmask = 255.255.255.240 Cisco-AVPair = "ip:route=1.2.3.1 255.255.255.240" Service-Type = Framed-User
However we need
Framed-IP-Address = 1.2.3.1 Framed-IP-Netmask = 255.255.255.240 Framed-Route = "1.2.3.1/28" Service-Type = Framed-User
Is this relatively easy to do ?
Match on regex should work, something like
if (&Cisco-AVPair =~ /ip:route=([^ ]+) /) { update reply { Framed-Route := "%{1}/28" } }
if the netmasks aren't all the same you'll need to change that as well of course - I don't think there's anything to convert the netmask into the number of bits, but a switch statement should do it easily for the limited number of cases.
-- Matthew
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html