Proxy / reply translation

Richard J Palmer richard at merula.net
Thu Nov 9 14:47:09 CET 2017


HI Alan

That's perfect - I *should* be able to work with that (and start at 
least)

If I get any issues I'll come back to you - I do appreciate the help 
here

Richard


> --- Original message ---
> Subject: Re: Proxy / reply translation
> From: Alan DeKok <aland at deployingradius.com>
> To: FreeRadius users mailing list 
> <freeradius-users at lists.freeradius.org>
> Date: Thursday, 09/11/2017 1:35 PM
>
> On Nov 9, 2017, at 8:19 AM, Richard J Palmer <richard at merula.net> 
> wrote:
>>
>> 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.
>
>    It shouldn't be difficult.
>
>>
>> Alternatively if someone can provide a few pointers on that bit I can 
>> probably build from there.
>
>    If you have:
>
>>
>>>
>>>>
>>>>        Cisco-AVPair = "ip:route=1.2.3.1 255.255.255.240"
>
>    Step 1, split it into pieces:
>
> if (&Cisco-AVPair =~ /ip:route=([^ ]+) ([^ ]+)/) {
>
>    This matches the "ip:route" prefix.  It then matches non-space 
> data, then a space, and more non-space data.  As per the FR 
> documentation, the first match goes into %{1}, and the second into 
> %{2}.
>
>    As there are only a limited number of net masks, you can expand the 
> net mask, and switch over it (inside of the "if" block from above)
>
> switch "%{2}" {
> case "255.255.255.255" {
> update reply {
> Framed-Route = "%{1}/32"
> }
> }
>
> case "255.255.255.254" {
> update reply {
> Framed-Route = "%{1}/31"
> }
> }
>
> case "255.255.255.252" {
> update reply {
> Framed-Route = "%{1}/30"
> }
> }
>
> ... etc...
>
> # and the "catch all" case, just mash it to /28
> case {
> update reply {
> Framed-Route = "%{1}/28"
> }
> }
> }
>
>    A little verbose, but it should work.
>
>    Alan DeKok.
>
>
> -
> List info/subscribe/unsubscribe? See 
> http://www.freeradius.org/list/users.html



More information about the Freeradius-Users mailing list