Robust Authentication Proxying

Philip Molter hrunting at hrunting.org
Sat Jul 11 21:16:00 CEST 2009


On Jul 11, 2009, at 12:14 PM, Ivan Kalik wrote:

>> I'm not using RADIUS as a backend for ISP gear.  I am using a RADIUS
>> proxy to serve requests for service software, and when false failures
>> come back, customers get error boxes in their software and contact  
>> our
>> support angry that our authentications are returning transient
>> errors.  Furthermore, I consider it bad public face to return errors
>> to customers when they should not get them.  Yes, customers can  
>> always
>> retry, but we can also retry for them when know the reason is not due
>> to invalid information.
>
> I think that you are going about it the wrong way. You wont proxy to
> pretend that home server has not gone down. How about this - instead  
> of a
> group of stand-alone load-balanced home servers create a (true) high
> availability cluster. If your home server is always available this  
> issue
> doesn't come up. And your customer always gets a response.

Well, if I get the proxy handling to function the way I am  
envisioning, I effectively create a high-availability cluster with the  
proxy as my availability manager. :)

But why not setup a high-availability cluster as a home server?   
First, I already have an existing pool of dumb home servers that I  
would like to continue using.  Second, those home servers are  
incredibly cheap and easily replaceable.  A high-availability cluster  
probably would not be.  Third, if my home servers start having issues  
with the load, the easiest thing to do to just add more dumb home  
servers and update the proxies to spread that load out across the new  
ones in addition to the old ones.  Easy scaling.  And why use a proxy  
in the first place?  I can use that proxy to work around a bunch of  
different NASes not having the ability to use a pool of home servers.

I do not want the proxy to pretend that the home server has not gone  
down (in fact, it very much needs to accept that any individual home  
server may be down).  I want it to hide the fact that a single home  
server is not responding and not have that result in the entire pool  
appearing to have gone down (if only for a single request).  NASes  
already handle the unreliability in the network by retransmitting  
packets.  I can have the proxy use that to its advantage by not giving  
the NAS any clue that a single home server in the pool did not respond  
to a request in a timely fashion (do this by sending retransmits to  
another server).  A proxy that does not respond to the initial request  
because the initial request never got responded to by the home server,  
but then responds to subsequent retransmits of that request because  
the proxy transmitted them to a different home server that was up and  
responding just appears as a slow RADIUS server to the NAS.  My  
customers do not really complain about login taking a long time (30s,  
etc.), but they really complain when their client tells them their  
login is not valid when they know it is.

Philip







More information about the Freeradius-Users mailing list