Mailing List Archive

wackamole query
--CE+1k2dSO48ffgeK
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello,
I am hoping to use wackamole in a cluster of machine which have=20
2 interfaces. eth0 I hope to be the public service interface, while=20
eth1 is connected to a private network.

I have been doing some experimenting with the spread.conf and=20
wackamole.conf to get the behavior I desire with very limited success,=20
so I thought I would come here and see what I could learn.

My hope:
Boot box, eth0 gets upped with no address (ifconfig eth0=20
0.0.0.0) eth1 receives a private address (10.0.0.211) Start spread,=20
start wackamole -- machine receives 1 or more public addresses on eth0. =20
I am hoping to not have to have an address in the public network for=20
every machine, for we don't really have that many addresses left.

Here are my two current config attempts and what they do:
Attempt1:
/usr/local/etc/spread.conf:
Spread_Segment 10.0.0.255 {
p1 10.0.0.211
p2 10.0.0.212
p3 10.0.0.213
p4 10.0.0.214
p5 10.0.0.215
p6 10.0.0.216
}
wackamole.conf:
VirtualInterfaces {
{ eth0:132.198.101.211/24 }
{ eth0:132.198.101.212/24 }
{ eth0:132.198.101.213/24 }
{ eth0:132.198.101.214/24 }
{ eth0:132.198.101.215/24 }
{ eth0:132.198.101.216/24 }
}
Notify {
eth1:10.0.0.0/24 throttle 128
arp-cache
}
Behavior: Semi works if I am very careful to already have eth0=20
up with no address. 1 machine of the 6 invariably doesn't receive an=20
address properly for reasons I do not understand.


Attempt 2:
spread.conf:
Spread_Segment 10.0.0.255 {
penguin1 132.198.101.211 {
D 10.0.0.211
C 132.198.101.211
}
penguin2 132.198.101.212 {
D 10.0.0.212
C 132.198.101.212
}
penguin3 132.198.101.213 {
D 10.0.0.213
C 132.198.101.213
}
penguin4 132.198.101.214 {
D 10.0.0.214
C 132.198.101.214
}
penguin5 132.198.101.215 {
D 10.0.0.215
C 132.198.101.215
}
penguin6 132.198.101.216 {
D 10.0.0.216
C 132.198.101.216
}
}
wackamole.conf:
VirtualInterfaces {
{ eth0:132.198.101.211/24 }
{ eth0:132.198.101.212/24 }
{ eth0:132.198.101.213/24 }
{ eth0:132.198.101.214/24 }
{ eth0:132.198.101.215/24 }
{ eth0:132.198.101.216/24 }
}
Notify {
eth1:10.0.0.0/24 throttle 128
arp-cache
}

Behavior: Does not seem to work at all. I am not sure why. I=20
haven't been receiving notifications of new nodes joining the group, and=20
when I start wackamole the eth0 interface (which I suspect unwisely)=20
brought up with its default address gets lost.

Suggestions? Would it be easy/possible to hack wackamole to=20
check to see if the default address is already up and not attempt to add=20
vip?

Thank you very much for your time,
-Trey

--
Ashton Trey Belew
http://www.uvm.edu/~atb

You will gain money by a speculation or lottery.

--CE+1k2dSO48ffgeK
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE/JZqOF9UIceSIYeoRAsLwAJ4gmgPgouauf9MXEYIYHUkuvX3JjgCgulBf
vGF84+jXTloE45QgpLk3peE=
=NexI
-----END PGP SIGNATURE-----

--CE+1k2dSO48ffgeK--
wackamole query [ In reply to ]
The first configuration you've sent looks much more reasonable (as far
as Spread is concerned). It should work properly as a spread.conf. For
the problems you were describing, I'd suggest first running Spread and
observing the messages printed to make sure that each daemon correctly
installs a configuration with all six, and maybe trying to send messages
using the spuser program.

When you say "default address" I assume you mean one of the vips. If
this is the behavior you desire, have Wackamole handle it using "Prefer"
statements, don't let the OS bring the interface up (although I'm not
sure you want to do this, Prefer None seems good here). The other issue
I'd mention is that there have been problems with some platforms in the
past where you needed to have an address already on eth0 in order for
Wackamole to correctly function, so 0.0.0.0 might not be enough.

Let me know if this is any help,
Ryan

Ashton Trey Belew wrote:

> Hello,
> I am hoping to use wackamole in a cluster of machine which have
> 2 interfaces. eth0 I hope to be the public service interface, while
> eth1 is connected to a private network.
>
> I have been doing some experimenting with the spread.conf and
> wackamole.conf to get the behavior I desire with very limited success,
> so I thought I would come here and see what I could learn.
>
> My hope:
> Boot box, eth0 gets upped with no address (ifconfig eth0
> 0.0.0.0) eth1 receives a private address (10.0.0.211) Start spread,
> start wackamole -- machine receives 1 or more public addresses on eth0.
> I am hoping to not have to have an address in the public network for
> every machine, for we don't really have that many addresses left.
>
> Here are my two current config attempts and what they do:
> Attempt1:
> /usr/local/etc/spread.conf:
> Spread_Segment 10.0.0.255 {
> p1 10.0.0.211
> p2 10.0.0.212
> p3 10.0.0.213
> p4 10.0.0.214
> p5 10.0.0.215
> p6 10.0.0.216
> }
> wackamole.conf:
> VirtualInterfaces {
> { eth0:132.198.101.211/24 }
> { eth0:132.198.101.212/24 }
> { eth0:132.198.101.213/24 }
> { eth0:132.198.101.214/24 }
> { eth0:132.198.101.215/24 }
> { eth0:132.198.101.216/24 }
> }
> Notify {
> eth1:10.0.0.0/24 throttle 128
> arp-cache
> }
> Behavior: Semi works if I am very careful to already have eth0
> up with no address. 1 machine of the 6 invariably doesn't receive an
> address properly for reasons I do not understand.
>
>
> Attempt 2:
> spread.conf:
> Spread_Segment 10.0.0.255 {
> penguin1 132.198.101.211 {
> D 10.0.0.211
> C 132.198.101.211
> }
> penguin2 132.198.101.212 {
> D 10.0.0.212
> C 132.198.101.212
> }
> penguin3 132.198.101.213 {
> D 10.0.0.213
> C 132.198.101.213
> }
> penguin4 132.198.101.214 {
> D 10.0.0.214
> C 132.198.101.214
> }
> penguin5 132.198.101.215 {
> D 10.0.0.215
> C 132.198.101.215
> }
> penguin6 132.198.101.216 {
> D 10.0.0.216
> C 132.198.101.216
> }
> }
> wackamole.conf:
> VirtualInterfaces {
> { eth0:132.198.101.211/24 }
> { eth0:132.198.101.212/24 }
> { eth0:132.198.101.213/24 }
> { eth0:132.198.101.214/24 }
> { eth0:132.198.101.215/24 }
> { eth0:132.198.101.216/24 }
> }
> Notify {
> eth1:10.0.0.0/24 throttle 128
> arp-cache
> }
>
> Behavior: Does not seem to work at all. I am not sure why. I
> haven't been receiving notifications of new nodes joining the group, and
> when I start wackamole the eth0 interface (which I suspect unwisely)
> brought up with its default address gets lost.
>
> Suggestions? Would it be easy/possible to hack wackamole to
> check to see if the default address is already up and not attempt to add
> vip?
>
> Thank you very much for your time,
> -Trey
>
> --
> Ashton Trey Belew
> http://www.uvm.edu/~atb
>
> You will gain money by a speculation or lottery.

--
Ryan W. Caudy
Center for Networking and Distributed Systems
Department of Computer Science
Johns Hopkins University
wackamole query [ In reply to ]
> The other issue I'd mention is that there have been problems with some
> platforms in the past where you needed to have an address already on
> eth0 in order for Wackamole to correctly function, so 0.0.0.0 might not
> be enough.

This is precisely my problem. Does anyone perchance know where I
should start poking around to try to change wackamole to work properly
with a null address?

Thank you! :)
-Trey

>
> Let me know if this is any help,
> Ryan
>
> Ashton Trey Belew wrote:
>
> > Hello,
> > I am hoping to use wackamole in a cluster of machine which have
> > 2 interfaces. eth0 I hope to be the public service interface, while
> > eth1 is connected to a private network.
> >
> > I have been doing some experimenting with the spread.conf and
> > wackamole.conf to get the behavior I desire with very limited success,
> > so I thought I would come here and see what I could learn.
> >
> > My hope:
> > Boot box, eth0 gets upped with no address (ifconfig eth0
> > 0.0.0.0) eth1 receives a private address (10.0.0.211) Start spread,
> > start wackamole -- machine receives 1 or more public addresses on eth0.
> > I am hoping to not have to have an address in the public network for
> > every machine, for we don't really have that many addresses left.
> >
> > Here are my two current config attempts and what they do:
> > Attempt1:
> > /usr/local/etc/spread.conf:
> > Spread_Segment 10.0.0.255 {
> > p1 10.0.0.211
> > p2 10.0.0.212
> > p3 10.0.0.213
> > p4 10.0.0.214
> > p5 10.0.0.215
> > p6 10.0.0.216
> > }
> > wackamole.conf:
> > VirtualInterfaces {
> > { eth0:132.198.101.211/24 }
> > { eth0:132.198.101.212/24 }
> > { eth0:132.198.101.213/24 }
> > { eth0:132.198.101.214/24 }
> > { eth0:132.198.101.215/24 }
> > { eth0:132.198.101.216/24 }
> > }
> > Notify {
> > eth1:10.0.0.0/24 throttle 128
> > arp-cache
> > }
> > Behavior: Semi works if I am very careful to already have eth0
> > up with no address. 1 machine of the 6 invariably doesn't receive an
> > address properly for reasons I do not understand.
> >
> >
> > Attempt 2:
> > spread.conf:
> > Spread_Segment 10.0.0.255 {
> > penguin1 132.198.101.211 {
> > D 10.0.0.211
> > C 132.198.101.211
> > }
> > penguin2 132.198.101.212 {
> > D 10.0.0.212
> > C 132.198.101.212
> > }
> > penguin3 132.198.101.213 {
> > D 10.0.0.213
> > C 132.198.101.213
> > }
> > penguin4 132.198.101.214 {
> > D 10.0.0.214
> > C 132.198.101.214
> > }
> > penguin5 132.198.101.215 {
> > D 10.0.0.215
> > C 132.198.101.215
> > }
> > penguin6 132.198.101.216 {
> > D 10.0.0.216
> > C 132.198.101.216
> > }
> > }
> > wackamole.conf:
> > VirtualInterfaces {
> > { eth0:132.198.101.211/24 }
> > { eth0:132.198.101.212/24 }
> > { eth0:132.198.101.213/24 }
> > { eth0:132.198.101.214/24 }
> > { eth0:132.198.101.215/24 }
> > { eth0:132.198.101.216/24 }
> > }
> > Notify {
> > eth1:10.0.0.0/24 throttle 128
> > arp-cache
> > }
> >
> > Behavior: Does not seem to work at all. I am not sure why. I
> > haven't been receiving notifications of new nodes joining the group, and
> > when I start wackamole the eth0 interface (which I suspect unwisely)
> > brought up with its default address gets lost.
> >
> > Suggestions? Would it be easy/possible to hack wackamole to
> > check to see if the default address is already up and not attempt to add
> > vip?
> >
> > Thank you very much for your time,
> > -Trey
> >
> > --
> > Ashton Trey Belew
> > http://www.uvm.edu/~atb
> >
> > You will gain money by a speculation or lottery.
>
> --
> Ryan W. Caudy
> Center for Networking and Distributed Systems
> Department of Computer Science
> Johns Hopkins University
>
>
> _______________________________________________
> wackamole-users mailing list
> wackamole-users@lists.backhand.org
> http://lists.backhand.org/mailman/listinfo/wackamole-users
>



--
Ashton Trey Belew
http://www.uvm.edu/~atb

Repeat after me: the goodness of an operating system is not in how pretty it
is, but in how well it supports the user.

Make it your mantra.
- Linus Torvalds
wackamole query [ In reply to ]
The code that handles this is in ife.c.

--Ryan

Ashton Trey Belew wrote:

>>The other issue I'd mention is that there have been problems with some
>>platforms in the past where you needed to have an address already on
>>eth0 in order for Wackamole to correctly function, so 0.0.0.0 might not
>>be enough.
>
>
> This is precisely my problem. Does anyone perchance know where I
> should start poking around to try to change wackamole to work properly
> with a null address?
>
> Thank you! :)
> -Trey
>
>
>>Let me know if this is any help,
>>Ryan
>>
>>Ashton Trey Belew wrote:
>>
>>
>>> Hello,
>>> I am hoping to use wackamole in a cluster of machine which have
>>>2 interfaces. eth0 I hope to be the public service interface, while
>>>eth1 is connected to a private network.
>>>
>>> I have been doing some experimenting with the spread.conf and
>>>wackamole.conf to get the behavior I desire with very limited success,
>>>so I thought I would come here and see what I could learn.
>>>
>>> My hope:
>>> Boot box, eth0 gets upped with no address (ifconfig eth0
>>>0.0.0.0) eth1 receives a private address (10.0.0.211) Start spread,
>>>start wackamole -- machine receives 1 or more public addresses on eth0.
>>>I am hoping to not have to have an address in the public network for
>>>every machine, for we don't really have that many addresses left.
>>>
>>> Here are my two current config attempts and what they do:
>>>Attempt1:
>>>/usr/local/etc/spread.conf:
>>>Spread_Segment 10.0.0.255 {
>>> p1 10.0.0.211
>>> p2 10.0.0.212
>>> p3 10.0.0.213
>>> p4 10.0.0.214
>>> p5 10.0.0.215
>>> p6 10.0.0.216
>>>}
>>>wackamole.conf:
>>>VirtualInterfaces {
>>> { eth0:132.198.101.211/24 }
>>> { eth0:132.198.101.212/24 }
>>> { eth0:132.198.101.213/24 }
>>> { eth0:132.198.101.214/24 }
>>> { eth0:132.198.101.215/24 }
>>> { eth0:132.198.101.216/24 }
>>>}
>>>Notify {
>>> eth1:10.0.0.0/24 throttle 128
>>> arp-cache
>>>}
>>> Behavior: Semi works if I am very careful to already have eth0
>>>up with no address. 1 machine of the 6 invariably doesn't receive an
>>>address properly for reasons I do not understand.
>>>
>>>
>>>Attempt 2:
>>>spread.conf:
>>>Spread_Segment 10.0.0.255 {
>>> penguin1 132.198.101.211 {
>>> D 10.0.0.211
>>> C 132.198.101.211
>>> }
>>> penguin2 132.198.101.212 {
>>> D 10.0.0.212
>>> C 132.198.101.212
>>> }
>>> penguin3 132.198.101.213 {
>>> D 10.0.0.213
>>> C 132.198.101.213
>>> }
>>> penguin4 132.198.101.214 {
>>> D 10.0.0.214
>>> C 132.198.101.214
>>> }
>>> penguin5 132.198.101.215 {
>>> D 10.0.0.215
>>> C 132.198.101.215
>>> }
>>> penguin6 132.198.101.216 {
>>> D 10.0.0.216
>>> C 132.198.101.216
>>> }
>>>}
>>>wackamole.conf:
>>>VirtualInterfaces {
>>> { eth0:132.198.101.211/24 }
>>> { eth0:132.198.101.212/24 }
>>> { eth0:132.198.101.213/24 }
>>> { eth0:132.198.101.214/24 }
>>> { eth0:132.198.101.215/24 }
>>> { eth0:132.198.101.216/24 }
>>>}
>>>Notify {
>>> eth1:10.0.0.0/24 throttle 128
>>> arp-cache
>>>}
>>>
>>> Behavior: Does not seem to work at all. I am not sure why. I
>>>haven't been receiving notifications of new nodes joining the group, and
>>>when I start wackamole the eth0 interface (which I suspect unwisely)
>>>brought up with its default address gets lost.
>>>
>>> Suggestions? Would it be easy/possible to hack wackamole to
>>>check to see if the default address is already up and not attempt to add
>>>vip?
>>>
>>> Thank you very much for your time,
>>> -Trey
>>>
>>>--
>>>Ashton Trey Belew
>>>http://www.uvm.edu/~atb
>>>
>>>You will gain money by a speculation or lottery.
>>
>>--
>>Ryan W. Caudy
>>Center for Networking and Distributed Systems
>>Department of Computer Science
>>Johns Hopkins University
>>
>>
>>_______________________________________________
>>wackamole-users mailing list
>>wackamole-users@lists.backhand.org
>>http://lists.backhand.org/mailman/listinfo/wackamole-users
>>
>
>
>
>
> --
> Ashton Trey Belew
> http://www.uvm.edu/~atb
>
> Repeat after me: the goodness of an operating system is not in how pretty it
> is, but in how well it supports the user.
>
> Make it your mantra.
> - Linus Torvalds
>
>
> _______________________________________________
> wackamole-users mailing list
> wackamole-users@lists.backhand.org
> http://lists.backhand.org/mailman/listinfo/wackamole-users
>

--
Ryan W. Caudy
Center for Networking and Distributed Systems
Department of Computer Science
Johns Hopkins University
wackamole query [ In reply to ]
On Tuesday, Jul 29, 2003, at 09:41 US/Eastern, Ashton Trey Belew wrote:

>> The other issue I'd mention is that there have been problems with some
>> platforms in the past where you needed to have an address already on
>> eth0 in order for Wackamole to correctly function, so 0.0.0.0 might
>> not
>> be enough.
>
> This is precisely my problem. Does anyone perchance know
> where I
> should start poking around to try to change wackamole to work properly
> with a null address?

Just curious, does wackamole act correctly when you have a bogus IP on
that interface to start with?

i.e. if 192.168.123.0/24 isn't used anywhere on your network. Can you
work around the problem by assigning each machine an address in that
netblock? I am not sure if that will fix the problem, but it may.

I think the problem is more complex that we are assuming. As I recall,
Linux has "issues" with bringing down the "primary" IP address on an
interface and leaving the other enabled. So if you add .1, .2, .3, .4
and then remove .1, they all go bye-bye. I think that is because Linux
doesn't have a clear concept of an IP alias -- it instead has this
notion of eth0:1 where you have a secondary virtual network interface
instead.

The reason I think this is the root of the problem is because wackamole
acts as expected on FreeBSD and Solaris.

If anyone can do the legwork of verifying that this is indeed the
problem, I will puzzle out how to work around it on Linux.

--
Theo Schlossnagle
Principal Consultant
OmniTI Computer Consulting, Inc. -- http://www.omniti.com/
Phone: +1 410 872 4910 x201 Fax: +1 410 872 4911
1024D/82844984/95FD 30F1 489E 4613 F22E 491A 7E88 364C 8284 4984
2047R/33131B65/71 F7 95 64 49 76 5D BA 3D 90 B9 9F BE 27 24 E7