Dear All,
I have a problem getting LVS to work so I hope someone can offer some
advice. First some info about the setup. It is a test system on a private
network. There are three systems in the cluster and a client machine. They
are all running linux. The three systems consist of a director and two
real servers running slackware 9.1 but with a built version of the kernel
downloaded from kernel.org. The version number of the kernel is 2.4.26 and
it is built to include all the LVS stuff in the kernel. I am not trying to
run any fancy services on the real servers. I have been trying to get
telnet and ssh to work.
The three machines in the cluster are connected to a CISCO 1900 switch as
is the client PC. There are no firewalls, routers etc etc in the
configuration. I am not running any firewall software on any of the
machines and am logged in as root. I am using ipvsadm version 1.21
downloaded from www.linuxvirtualserver.org
I set up LVS on the three machines by hand following the instructions in
the documentation on the Documentation page of www.linuxvirtualserver.org.
I know I could have made typing mistakes so I have done it many times and
had someone else type the commands as well but always with the same
result.
The machines are called lnxtst2, lnxtst3 and lnxtst4. The director is
lnxtst4 and the real servers are lnxtst2 and lnxtst3. The linux
configuration of all three systems is exactly the same because we have an
automatic cloning system for servers so there is no human intervention
when they are being installed. I can telnet from the client to all three
machines and I can also ssh from the client to all three machines. All
machines can ping each other so lnxtst2 can ping lnxtst3 and lnxtst3 can
ping lnxtst2 and so on. When I install LVS it behaves exactly as the
documentation says. If I run ipvsadm I get exactly the output that the
documentation says I should.
The problem is very simple and is totally repeastable. It is, if I open
a window on the client and start a telnet session to the service address I
get lnxtst2. If I open another window and telnet to the service address I
also get lnxtst2. I can repeat this as often as I choose and I will always
get lnxtst2. The output from ipvadm shows all the connections to lnxtst2
and none to lnxtst3. Now for the clever bit. While all this is going on,
if I try to ssh from the client to the service address I always get the
other real server lnxtst3 so telnet goes to lnxtst2 and ssh goes to
lnxtst3. I can reboot all the servers, reinstall everything etc etc and
the behaviour remains the same.
I am using round robin scheduling and this happens whether I use DR or
NAT. I haven't tried TUN but I imagine it will do the same. All the while
this is happening I can telnet or ssh directly to either of the real
servers from the client without any problems at all.
Has anyone seen this before or know what is wrong please?
Best wishes....
Colin Bruce
|