Thanks for reply. It seems not the problem of checksum. Because the LVS send a 252 length package and checksum of 0x5d97, but real server get a 248 package with the same checksum 0x5d97. I still want to check the environment of checksum offload on the LVS server. But unfortunately we can not reproduce the problem on "net.ipv4.ip_forward = 0" 2017-07-24 16:47 GMT+08:00 Paolo Schiro <paolo@xxxxxxxxx>: > Checksum problems are usally caused by ethernet offloads. > try play with ethtool -k -K. > > Il 17/07/2017 16:04, 李春 ha scritto: >> >> 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. >> >> >> I config the LVS as DR mode like this: >> ``` >> ipvsadm -A -t 158.222.165.185:3306 -s wrr >> ipvsadm -a -t 158.222.165.185:3306 -r 158.222.165.125:3306 -g -w 100 >> ``` >> >> >> >> 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 mellanox netword card, >> but it still the same problem >> >> >> And I have not config net.ipv4.ip_forward = 1 accord to >> http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.LVS-DR.html >> But if I config "net.ipv4.ip_forward = 1 ", there are no package >> fragment. MySQL connect to mysqld (throught LVS) successfully. >> >> >> Have any one meet the problem, do you resolve it ? Or any one can help >> to fix it. >> > -- pickup.lichun 李春 -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html