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