[RADIATOR] Multi-homed, Virtual IP and source IP

Thomas Guthmann tguthmann at iseek.com.au
Mon May 24 22:06:21 CDT 2010


Hey guys,

*Disclaimer*
- It's a long email :)
- I know, it's a common issue but I'd like to have some clarifications 
and also to summarize for everybody the dilemma and possible solutions :)

*Issue*
If you have Radiator behind a load balancer, you have Virtual IPs (VIP) 
mounted on the Radiator hosts. As a result they will receive 
Access-Requests for these VIPs. However Radiator won't reply with the 
VIP used to receive the Access-Request but with its real IP (RIP aka 
your main server IP).
This generates 2 side effects :
- the client will generally drop the reply because it's coming from an 
unknown host. Indeed the client asked the VIP and expects a reply from 
this source address and not from something else.
- possible asymmetric routing (that's not a biggie)

*Questions*
- Are there any Radiator design limitations to not be able to reply with 
a VIP ?
- Can you give me some hints to implement this feature in a homemade 
authentication module (so far we use get_user and then return 
$main::ACCEPT in handle_request)
- is LocalAddress and getSock the way to go (cf: AuthRADIUS.pm) ?

*Possible workarounds*
- Launch a radiator daemon per VIP with BindAddress [1]
- Use dedicated routes [2]
- Use iptables to S/DNAT everything to a VIP

None of these solutions are great IMHO. Because all of them imply more 
work and create other problems. How to maintain many different 
configurations or how to maintain all the routes/iptables rules when you 
add/remove a VIP ? How to monitor so many process where you could only 
monitor one. I agree workarounds exist, so it's better than nothing but 
still it's just too bad that this feature doesn't exist for any kind of 
authentication (though LocalAddress exists for AuthRADIUS to proxy 
requests). I'm sure it would simplify a lot everybody's radiator farms 
IF this is possible.

Anyway, except that Radiator is awesome, it's flexible and powerful. 
Thanks for that and thanks for reading so far :)

Cheers,
Thomas

PS: The wiki is broken : internal server error.

[1] : http://www.open.com.au/pipermail/radiator/2009-March/015444.html
[2] : http://www.mail-archive.com/radiator@open.com.au/msg10956.html



More information about the radiator mailing list