Mailing List Archive

Virtual IP doesn't provide the port of a running service
Hello

I have the following simplified situation:

[linux router]
/ \
[Server1] [Server2]

Server 1 and 2:
wackamole + load balancer app.on port 80 + apache on port 8000

The idea is to have one load balancer active at any time, using the
other server ("stand-by server" from the LB point of view) together with
the server it is running on for serving balanced load.

The problem is:

Wackamole HA is working allright for apache listening on p. 80 (for
example, or some other). The load balancer by itself is working allright
listening on port 80 and forwarding to ports 8000.

If I try both together (virtual IP with port 80 pointing to load
balancer on port 80), the thing doesn't work as expected. When I connect
to the virtual IP (or check it with nmap), I don't see the load balancer
on port 80. I can't see the load balancer listening on any port, as a
matter of fact. But when I check or connect to the real IPs of servers,
I see it listening and working correctly.

By the way, the apache on 8000, ssh and ohers that run on real servers
appear to work on the virtual IP wihout any problems whatsoever. Just
the load balancer on its port remains to be invisible.

How do I make a load balancer app listening on some port on real servers
highly avaible with wackamole?

The thing is really frustrating, since - as it stands for me now - I
can't manage to set up HA of a load balanced system with wackamole.
Which makes me think I must be doing something fundamentally wrong.

My configuration:

Router: 192.168.4.1
Server1: 192.168.4.10
Server2: 192.168.4.20
Virtual: 192.168.4.150

----------------
/etc/spread.conf:


DebugFlags = { ALL !DATA_LINK !EVENTS }

Spread_Segment 192.168.4.255:4803 {
node1 192.168.4.10
node2 192.168.4.20
}


----------------
/etc/wackamole.conf:

Spread = 4803
SpreadRetryInterval = 5s
Group = cluster
Control = /var/run/wack.it

Mature = 5s
Balance {
AcquisitionsPerRound = all
interval = 4s
}

Arp-Cache = 5s

Prefer None
VirtualInterfaces {
{ eth0:192.168.4.150/32 }
# { eth0:0.0.0.0/26 }
}

Notify {
eth0:192.168.4.1/32
eth0:192.168.4.155/32
eth0:192.168.4.0/24

arp-cache
}

I don't think it really matters, but anyway, the load balancer app I am
using is pound. I've tried Python Director before and there was the same
problem.

Thanks for any help.

Tomazh Furlan.



_______________________________________________
wackamole-users mailing list
wackamole-users@lists.backhand.org
http://lists.backhand.org/mailman/listinfo/wackamole-users
Re: Virtual IP doesn't provide the port of a running service [ In reply to ]
> If I try both together (virtual IP with port 80 pointing to load
> balancer on port 80), the thing doesn't work as expected.

Solved. This was apparently a matter of wrong Pound configuration. With
Pound listening to the virtual IP, this thing works.


_______________________________________________
wackamole-users mailing list
wackamole-users@lists.backhand.org
http://lists.backhand.org/mailman/listinfo/wackamole-users
Re: Static IPs required? [ In reply to ]
I'm coming in late to this discussion, but wanted to post my solution.

I'm using Linux (ubuntu 7.04).

Our public interfaces are eth0, private backend is eth1.

I have a post up script to check for the proper default route going out the
public IP's.

On eth0 I use a private IP, 192.168.1.x for the frontend boxes only.
With that, wackamole doesn't turn off eth0 when it goes out of rotation.


Anyway, works for me. :-)


--
.allan.

_______________________________________________
wackamole-users mailing list
wackamole-users@lists.backhand.org
http://lists.backhand.org/mailman/listinfo/wackamole-users