From: Kapetanakis Giannis <bilias@edu.physics.uoc.gr>
To: "netfilter@vger.kernel.org" <netfilter@vger.kernel.org>
Subject: Round robin load balance to local port range
Date: Fri, 06 Nov 2009 17:30:48 +0200 [thread overview]
Message-ID: <4AF44128.5000301@edu.physics.uoc.gr> (raw)
Hi all,
I'm trying to load balance (round robin) to multiple instances of openvpn
running locally in ports 9000-9004 without luck.
2.6.30.9-96.fc11 / iptables-1.4.3.1-1.fc11
For testing I tried first on the output chain to see if it works.
iptables -t nat -A OUTPUT -d 127.0.0.1 -m tcp -p tcp --dport 8000 -j
DNAT --to-destination :9000-9004
iptables -t filter -I INPUT 1 -m tcp -p tcp --dport 9000:9004 -j LOG
telnet 127.0.0.1 8000
telnet 127.0.0.1 8000
telnet 127.0.0.1 8000
Nov 6 17:27:20 localhost kernel: IN=lo OUT=
MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1
DST=127.0.0.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=37697 DF PROTO=TCP
SPT=35462 DPT=9000 WINDOW=32792 RES=0x00 SYN URGP=0
Nov 6 17:27:21 localhost kernel: IN=lo OUT=
MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1
DST=127.0.0.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=30693 DF PROTO=TCP
SPT=35463 DPT=9000 WINDOW=32792 RES=0x00 SYN URGP=0
Nov 6 17:27:22 localhost kernel: IN=lo OUT=
MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1
DST=127.0.0.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=12621 DF PROTO=TCP
SPT=35464 DPT=9000 WINDOW=32792 RES=0x00 SYN URGP=0
As you can see all connections are natted but only port 9000 is being
used from the range.
I also tried with redirect
iptables -t nat -A OUTPUT -d 127.0.0.1 -m tcp -p tcp --dport 8000 -j
REDIRECT --to-ports 9000-9004
or even
iptables -t nat -A OUTPUT -d 127.0.0.1 -m tcp -p tcp --dport 8000 -j
DNAT --to-destination 127.0.0.1:9000-9004
same results, only port 9000.
According to the man page:
In Kernels up to 2.6.10 you can add several --to-destination
options. For those kernels, if you specify more than one
desti-
nation address, either via an address range or
multiple
--to-destination options, a simple round-robin
(one after
another in cycle) load balancing takes place
between these
addresses. Later Kernels (>= 2.6.11-rc1) don¢t have the
ability
to NAT to multiple ranges anymore.
Either the kernel is doing some kind of hashing based on my src-ip
instead of round-robin
or the last phrase should change "to ranges anymore" instead of
"multiple ranges anymore"
I'm using a single range (ports 9000-9004) thus not multiple ranges.
Am I doing something wrong here or is it something I don't get?
best regards,
Giannis
next reply other threads:[~2009-11-06 15:30 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-06 15:30 Kapetanakis Giannis [this message]
2009-11-06 15:55 ` Round robin load balance to local port range Patrick McHardy
2009-11-06 16:07 ` Kapetanakis Giannis
2009-11-06 16:16 ` Patrick McHardy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4AF44128.5000301@edu.physics.uoc.gr \
--to=bilias@edu.physics.uoc.gr \
--cc=netfilter@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.