tcp mtu probing oddity - small packets
From: George B. <hidden>
Date: 2012-06-29 17:43:25
This is mainly meant to put this in the archive in case anyone else has this problem. It was a hair-puller. Setup is a load balancer doing source NAT to a linux server. Server had /proc/sys/net/ipv4/tcp_mtu_probing=2 Apparently the PMTU probing somehow gets confused and the flow gets clamped to the tcp_base_mss value (512 byte packets). But this PMTU value is apparently cached for all traffic to the IP address and since that is a source NAT, ALL flows from that IP address get clamped to 512 byte packets. So if something goes wonky with one flow, it impacts all flows because they all appear to come from the same IP address. Setting tcp_mtu_probing to 1 has cleared the issue for now but it may come back from time to time if a flow gets into trouble and whatever Linux is doing in the PMTU probing causes the flow to be clamped to tcp_base_mss but assuming that PMTU will age out at some point after the problem client goes away, things should return to normal behavior. There's something about how the PMTU probes work that apparently cause them to fail when activated in this particular configuration and clamp the packet size to tcp_base_mss for all flows to that IP address. If you are behind a source NAT, all flows share the same IP address and so all flows get clamped. Linux 2.6.38-11