LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: Connection tracking

To: Thomas Proell <Thomas.Proell@xxxxxxxxxx>
Subject: Re: Connection tracking
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
From: Julian Anastasov <ja@xxxxxx>
Date: Tue, 28 Nov 2000 22:07:11 +0000 (GMT)
        Hello,

On Tue, 28 Nov 2000, Thomas Proell wrote:

> Hi!
>
> LVS keeps a table with all established connections. The testLVS
> simulates thousands of different clients to make this table
> big and "load" the redirector in that way.
>
> How exactly is this table working? What entries are there?

        The hash table is a 2D table with fixed number of rows and
unlimited number of columns. The number of the rows can be configured
from the kernel menu (12 bits default=4096 rows). The columns are
with different length (double linked lists).

        One entry (connection structure) contains info for one
"connection" or for one "template" used to keep all connections from
same client to same real server.

> Why are 1000 connections for 1000 clients so much bigger
> then 1000 connections for one client?

        If one client host loops in creating connections to
one remote service (VIP:VPORT for example) the max number of
these connections is 65536 (2-byte TCP and UDP port value). The
real situation is different. For example, Linux uses ports 1024
to 4999 for autoselecting source ports. Of course, you can change
these settings. So, with the default settings you can create
3976 connections from one client host. After tuning you can
achieve ~60000. OTOH, testlvs is not limited because it does not
creates connections nor uses source port autoselection with
connect()/bind().

> Is it possible to obtain a big table with the same client-
> IP-address, but with different ports?

        Up to 60000 connections from one client IP after tuning.
Create many client IPs and learn the client program to bind to
these different IP addresses when flooding the server.

> Thomas


Regards

--
Julian Anastasov <ja@xxxxxx>



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