Re: Re: [Spread-users] unconfigured interfaces

Theo Schlossnagle <[email protected]> Thu, 4 Dec 2003 10:48:59 -0500
Newsgroups gmane.comp.apache.mod-wackamole.general
Message-ID <[email protected]>
> Kieren Hynd wrote:
>> So, the question is: Does anyone know of a way to get Wackamole to
>> manage its virtual interfaces on a 'real' interface under linux that 
>> has
>> no address assigned to it (ie; down)?
>> If we try to run Wackamole on an interface that isn't up, it has
>> problems bringing up its virtual interfaces because the interface eth0
>> wasn't up, and therefore had no routes in place.

The problem is unclear to me.  Is it that the IP address cannot be 
added, or that it is added successfully but does not work because it is 
lacking a route?  The first would be a bug, while the second would be 
an unimplemented feature.  The CVS version of wackamole does have the 
ability to run arbitrary C code and perl code when an interface goes up 
or down -- so it could be done that way.

Honestly, adding routes is different (and complicated) enough on each 
platform that it might be best to _not_ do this inside wackamole, but 
have wackamole run a script to set the routes when an IP address is 
added.

>> I'd like not to have to assign one of the VIPs to eth0 to just get it
>> configured (and also not to have to set preferred VIPs in wackamole). 
>>  I'd also not like to assign other addresses outside of the VIP range 
>> to
>> eth0 just to get the interface up.
>> Is it possible to get Wackamole to create a default route when it 
>> brings
>> up its virtual interfaces, or is this something that should be 
>> achieved
>> in linux's IP functions (if so, could someone give me a clue how?).

On linux, it doesn't matter so much, but on FreeBSD and Solaris, this 
poses a problem.  The first IP address in a subnet should have that 
subnet's netmask.  All additional aliases should have a netmask of 
0xffffffff (as stated in the ifconfig man page on FreeBSD).  I suppose 
that is pretty trivial logic to add into the ife*.c code.  This is why 
the examples have a real address in the subnet already plumbed on the 
interfaces that _is not_ managed by Wackamole.

I supposed that ife could be modified to see if the IP address about to 
be added exists in any of the subnets already configured and UP and if 
so alter its netmask to 0xffffffff.  We still have the problem of 
loosing the "main" IP address, but I suppose that could be solved with 
a "Prefer" statement on each machine.

// Theo Schlossnagle
// Principal Engineer -- http://www.omniti.com/~jesus/
// Postal Engine -- http://www.postalengine.com/
// Ecelerity: fastest MTA on earth