LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

[lvs-users] ldirectord: same port number used with NAT and Direct Routin

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: [lvs-users] ldirectord: same port number used with NAT and Direct Routing + monitoring = problem
From: Daniel Lemay <daniel.lemay@xxxxxxxx>
Date: Mon, 25 May 2009 18:30:27 +0000
Hi,

Here are some specs:

    os: Debian GNU/Linux 4.0 (etch)
    ipvsadm v1.24 2003/06/07 (compiled with popt and IPVS v1.2.0)
    ldirectord  version 1.77.2.51


General observations:

    a) In each case, an external (masq) and internal (route) virtual 
service is configured on the same port (7777)
    b) When no health check is done on the internal service, all is 
working correctly (see case #1)
    c) When a health check is added on the internal service, ipvsadm 
give a strange result (see case #2)
    d) I have no control on how the Oracle stack is configured. I have 
asked the person responsible for the Oracle stack if we can use a port 
other than 7777 for
        the internal load balancing, but she insists that we can't 
(possibly because she don't know how to configure the stack in this case).

Here is (a part) my ldirectord config. for 2 use cases:

1) This case is working correctly (no health check on the internal service)
-------------------------------------------------------------------------------------------------

# external service
virtual=x.x.x.x:7777
    real=192.168.58.55:7777 masq
    real=192.168.58.56:7777 masq
    scheduler=rr
    protocol=tcp
    service=http
    checkport=7778
    request="/cmctest.html"
    receive="WORKING"

# internal service
virtual=192.168.58.4:7777
    real=192.168.58.55:7777 gate
    real=192.168.58.56:7777 gate
    scheduler=rr
    protocol=tcp

TCP  x.x.x.x:7777 rr
  -> 192.168.58.56:7777           Masq    1      0          0
  -> 192.168.58.55:7777           Masq    0      0          0

TCP  192.168.58.4:7777 rr
  -> 192.168.58.55:7777   Route   1      0          0
  -> 192.168.58.56:7777   Route   1      0          0


2) This case give a strange result (health check on the internal service)
---------------------------------------------------------------------------------------------

# external service
virtual=x.x.x.x:7777
    real=192.168.58.55:7777 masq
    real=192.168.58.56:7777 masq
    scheduler=rr
    protocol=tcp
    service=http
    checkport=7778
    request="/cmctest.html"
    receive="WORKING"

# internal service
virtual=192.168.58.4:7777
    real=192.168.58.55:7777 gate
    real=192.168.58.56:7777 gate
    scheduler=rr
    protocol=tcp
    service=http
    checkport=7778
    request="/cmctest.html"
    receive="WORKING"

TCP  x.x.x.x:7777 rr
  -> 192.168.58.56:7777           *Route*   1      0          0
  -> 192.168.58.55:7777           *Masq *   0      0          0

TCP  192.168.58.4:7777 rr
  -> 192.168.58.55:7777           *Masq*    0      0          0
  -> 192.168.58.56:7777           *Route*   1      0          0

How can we explain the strange "coupling" with Route and Masq?

Any idea? Thanks.
_______________________________________________
Please read the documentation before posting - it's available at:
http://www.linuxvirtualserver.org/

LinuxVirtualServer.org mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Send requests to lvs-users-request@xxxxxxxxxxxxxxxxxxxxxx
or go to http://lists.graemef.net/mailman/listinfo/lvs-users

<Prev in Thread] Current Thread [Next in Thread>