On Thu, 7 Dec 2006, jarol1@xxxxxxxxx wrote:
Today I ran into problem of MTU in LVS/Tunneling.
Small packets were forwarded to real servers without problems, but the bigger
ones weren't and TCP retransmissions occurred. I noticed the problem
dissapeared when I switched to LVS/DR so this gave me hint to where the
problem might be. MTU 1480 had to be set on the outgoing interface of
realservers with tunl0 having standard 1500. Directors have 1500 on all
interfaces. This way TCP syn ack contained correct MTU and client didn't send
big packets that were discarded on director anymore. IP header is 20 bytes
long so 1480 is the maximum value that works.
It isn't mentioned in documentation that this problem will occur if tunneling
is used
http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.LVS-Tun.html#MTU
This was a hard problem to figure out and solve. People
worked on this for about 2yrs before finding a satisfactory
solution. The problem is that the ipip code in Linux doesn't
handle fragmentation (or handle it properly).
You did well to come up with a solution in one go.
Joe
--
Joseph Mack NA3T EME(B,D), FM05lw North Carolina
jmack (at) wm7d (dot) net - azimuthal equidistant map
generator at http://www.wm7d.net/azproj.shtml
Homepage http://www.austintek.com/ It's GNU/Linux!
|