[lvs-users] package fragment through lvs

Pickup.Li(李春) pickup112 at 163.com
Tue Jul 4 13:50:24 BST 2017


I have meet a very strange problem in my LVS environment.


when I connect to mysqld real server, mysql client is ok.
when I connect to LVS to access to the real server, mysql client report error.



And I have tcpdump the package on the LVS and real server.
Sync/Sync+ack/ack of Three-way Handshake is ok,and four-way handshake is ok.
But when mysql client send the login request (user/password) package, the package fragment.


As show as follows,The LVS received the package and send it the real server correct(length 252). 
But real server get a fragment of the package (length 248) and a error chksum. It have missed the 4 bytes fragment of the package.


Here is the package I have ```tcpdump -lnnneeevvv``` on the LVS.
* 9c:dc:71:4d:49:d0 = 158.222.165.126 is the client
* 24:8a:07:64:7f:21 = 158.222.165.185 is the VIP and the director
* 24:8a:07:64:56:41 = 158.222.165.185 is the real server


LVS package:
```
19:12:22.229356 9c:dc:71:4d:49:d0 > 24:8a:07:64:7f:21, ethertype IPv4 (0x0800), length 252: (tos 0x8, ttl 64, id 56669, offset 0, flags [DF], proto TCP (6), l
    158.222.165.126.37691 > 158.222.165.185.3306: Flags [P.], cksum 0x5d97 (correct), seq 0:198, ack 83, win 115, length 198
19:12:22.229367 24:8a:07:64:7f:21 > 24:8a:07:64:56:41, ethertype IPv4 (0x0800), length 252: (tos 0x8, ttl 64, id 56669, offset 0, flags [DF], proto TCP (6), l
    158.222.165.126.37691 > 158.222.165.185.3306: Flags [P.], cksum 0x5d97 (correct), seq 0:198, ack 83, win 115, length 198
```


real server packages:
```
19:12:21.803118 24:8a:07:64:7f:21 > 24:8a:07:64:56:41, ethertype IPv4 (0x0800), length 248: (tos 0x8, ttl 64, id 56668, offset 0, flags [DF], proto TCP (6), l
    158.222.165.126.37691 > 158.222.165.185.3306: Flags [.], cksum 0x5d97 (incorrect -> 0x4883), seq 1:195, ack 83, win 115, length 194
19:12:21.803126 24:8a:07:64:7f:21 > 24:8a:07:64:56:41, ethertype IPv4 (0x0800), length 60: (tos 0x8, ttl 64, id 56669, offset 0, flags [DF], proto TCP (6), le
    158.222.165.126.37691 > 158.222.165.185.3306: Flags [P.], cksum 0x7973 (incorrect -> 0x5fb3), seq 199, ack 83, win 115, length 0
```



* we run the test on rhel6.7 with ipvsadm v1.26 2008/5/15 (compiled with popt and IPVS v1.2.1)
* our network engineer have mirror the port of LVS and report that the package is fragmented from LVS director.
* we have replace the broadcom network card to intel netword card, but it still the same problem


Have any one meet the problem, do you resolve it ? Or any one can help to fix it.


More information about the lvs-users mailing list