Diameter client module in FreeRADIUS ?
Hello, I may have to implement a Diameter client module within FreeRADIUS. I would like to be able to query a Diameter server when handling some RADIUS requests. Basically, it would be similar to the FreeRADIUS rlm_rest module... but using Diameter instead of REST. Has anyone had to do something like that ? For now my idea is to scavenge stuff from freeDiameter and embed them in a custom module. All advices are welcome. :) Regards, Nicolas. This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
On Sep 25, 2018, at 12:09 PM, Chaigneau, Nicolas <nicolas.chaigneau@capgemini.com> wrote:
I may have to implement a Diameter client module within FreeRADIUS.
Oh dear...
I would like to be able to query a Diameter server when handling some RADIUS requests.
Basically, it would be similar to the FreeRADIUS rlm_rest module... but using Diameter instead of REST.
Has anyone had to do something like that ?
Nope.
For now my idea is to scavenge stuff from freeDiameter and embed them in a custom module.
freeDiameter is good... tho I think Sebastien has moved on to other things. The mailing lists are down, and nothing has really been updated since 2016. You might try emailing him directly with questions. And he's from Grenoble, so you won't have the language barrier. :) TBH, I haven't looked at freeDiameter in a while. It's not clear if it can be "embedded" as a library in another application. The question here is what you need. The base Diameter transport isn't that difficult. It's TCP, with a different encoding than RADIUS uses. The harder part is the whole state machine needed for Diameter applications. I would like to believe that can be done with some kind of "unlang" policy. But I haven't had a chance to look at it in any detail. And yes, this should be done in the v4.0.x branch. And, there's already a Diameter encoder / decoder in rlm_eap_ttls. That could be broken out into a separate library. I've been meaning to abstract rlm_radius in the v4 branch a bit better, and also add TCP support. Once that's done, a basic "encode Diameter over TCP" module is probably 2 days work. Alan DeKok.
participants (2)
-
Alan DeKok -
Chaigneau, Nicolas