Hello LVS users/developers,
I have a LVS-TUN setup for HTTP with one director and one realserver.
The setup works perfectly if the request string is short enough but
will hang and timeout if it's too long (around 800 characters or so,
sometime shorter, sometime longer, also depends on whether Firefox,
Opera or IE is the browser)
URL Format:
http://virtual.example.com/test.php?reallylongstring.....
If the same URL changed to the RIP, the realserver replies immediately:
http://real.example.com/test.php?reallylongstring.....
I suspect this has something to do with the large packet size. The MTU
settings for eth0 on both directors & reals are 1500. The MTU for
tunl0 at the realserver is 1480.
I applied this "hack" but it does not work:
iptables -A OUTPUT -s <VIP> -p tcp -m tcp --tcp-flags SYN,RST,ACK
SYN,ACK -j TCPMSS --set-mss 1440
The director details:
- CentOS 3.5, kernel 2.4.21-37.EL
- IP Virtual Server version 1.0.8 (size=65536)
[root@d]# ipvsadm -v
ipvsadm v1.21 2002/07/09 (compiled with popt and IPVS v1.0.4)
[root@d2]# rpm -qa|grep ipvsadm
ipvsadm-1.21-1.rh.el.1.um.1 (got from UltraMonkey)
The realserver is CentOS 4.3 kernel 2.6.9-34.EL at a different
datacenter from the director.
I have read this old thread
http://archive.linuxvirtualserver.org/html/lvs-users/2004-05/msg00221.html
and the LVS-TUN section about MTU here:
http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.LVS-Tun.html#MTU
Anyone has any idea what should I do to figure out what is wrong and
how to correct it? Greatly appreciate.
Best regards,
Son Nguyen
|