On 24.11.2014 16:14, Alan DeKok wrote:
Iliya Peregoudov wrote:
Your radius-diameter-translator module should listen RADIUS protocol on UDP/4013 port. Translator should implement RADIUS server (receive requests, send responses) and Diameter client (send requests, receive answers). Flow diagram is following:
i.e. he needs to implement a RADIUS proxy. Just like FreeRADIUS.
Take it from me, that's a lot of work. Anyone who asks for design diagrams on how to implement a RADIUS server has about 5 years of full-time work ahead of them.
There is nothing inherently sophisticated in the RADIUS protocol itself. Implementing a RADIUS-to-Diameter translator is not inherently harder than implementing anything-else-to-Diameter translator. Topic starter has already implemented something-else-to-Diameter translator as a standalone process. To integrate it with RADIUS he has to implement RADIUS-to-something-else translator as a freeradius module, and this module does not work well. The problem with freeradius is that it was not designed to be used as extensible protocol translator. One cannot write a freeradius module that will translate RADIUS to any other protocol in non-blocking manner because freeradius module interface is blocking. So mentioned earlier freeradius module *can not* work well.