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

Hugh Irvine hugh at open.com.au
Mon May 31 19:22:01 CDT 2010


Hello Thomas -

Many thanks.

regards

Hugh


On 1 Jun 2010, at 10:10, Thomas Guthmann wrote:

> Hi Hugh,
> 
>> Radiator does not have access to the UDP packet headers - it simply gives the packet to the operating system to send.
> Indeed.
> 
> But I looked into the code and it took me a whole morning to remember my 
> sockets knowledge and to understand Radiator's low layers. And then it 
> was so obvious and so simple that I wonder why I haven't thought about 
> that before. That's maybe why you didn't understand my question, because 
> it was a dumb one :)
> 
> *Solution*
> You bind a socket to an interface. And therefore you will reply with 
> this interface. So instead using the default bind to 0.0.0.0. You just 
> have to listen to the interfaces you are interested in with BindAddress. 
> Radiator will create different sockets per IP aka interfaces and Bob's 
> your uncle.
> 
> *Example*
> [..]
> BindAddress VIP1,VIP2,VIP3,RIP,127.0.0.1
> [..]
> # Listen to everything for SNMP queries
> <SNMPAgent>
>     BindAddress 0.0.0.0
> </SNMPAgent>
> 
> *Contrib*
> If you add the following code after the variable definitions in your 
> init.d script it will generate the BindAddress parameter automatically 
> in a sub config. So you need to tell radiator to include this file or 
> the directory containing this file 
> (/etc/radiator/conf.d/bindaddresses.cfg). This code will parse ifconfig 
> and add all IPs in BindAddress. This is a quick hack, feel free to improve.
> 
> /etc/init.d/radiator
> [..]
> 
> # LVS support so Radiator will use the good VIP to reply to requests
> # Indeed if Radiator listens to 0.0.0.0 it will use eth0's IP to reply
> # which will break the dialogue (the client may complain that he's
> # receiving an answer of an unknown server).
> # Tom - 26/5/10
> grep -q '^net.ipv4.conf.eth0.arp_ignore' /etc/sysctl.conf
> if [[ $? == 0 ]]
> then
>         LOCALIPS="`/sbin/ifconfig |grep 'inet addr:' |cut -d ':' -f2 
> |cut -d ' ' -f1`"
>         BINDADDRESSES=`echo $LOCALIPS |tr ' ' ','`
>         echo "BindAddress $BINDADDRESSES" > 
> /etc/radiator/conf.d/bindaddresses.cfg
> else
>         if [ -f /etc/radiator/conf.d/bindaddresses.cfg ]
>         then
>                 /bin/rm -f /etc/radiator/conf.d/bindaddresses.cfg
>         fi
> fi
> # End Tom
> [..]
> 
> Thanks guys for your time and hope it will help lost mind like mine :)
> Thomas
> _______________________________________________
> radiator mailing list
> radiator at open.com.au
> http://www.open.com.au/mailman/listinfo/radiator



NB: 

Have you read the reference manual ("doc/ref.html")?
Have you searched the mailing list archive (www.open.com.au/archives/radiator)?
Have you had a quick look on Google (www.google.com)?
Have you included a copy of your configuration file (no secrets), 
together with a trace 4 debug showing what is happening?

-- 
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows, MacOS X.
Includes support for reliable RADIUS transport (RadSec),
and DIAMETER translation agent.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.
-
CATool: Private Certificate Authority for Unix and Unix-like systems.





More information about the radiator mailing list