Re: Strange http client/MTU problem under linux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I got a little bit interested in this, so below are a few pointers
to how to continue with investigation.

On Wed, 30 Jul 2008, j t wrote:
Here are the results of the 2 boundary-case pings:

$ ping -s 1472 -M do ocp.com.com
PING c18-ad-xw-lb.cnet.com (216.239.122.193) 1472(1500) bytes of data.
64 bytes from c18-ad-xw-lb.cnet.com (216.239.122.193): icmp_seq=1
ttl=241 (truncated)

Truncated means that you got less data than you expected. Here you're requesting 1472B but you're only getting 56+8B.

You should try to figure out where this is disappearing. Can you do a ping -s 1472 without "truncated" with other sites internet? This will give you clues whether the issue is at your end or the destination network end.

My suspicion is that the load-balancer at ocp.com.com has interesting ICMP implementation that even if you ping it with big packets, it replies with small packets, and you can't figure out MTU issues like this.

$ ping -s 1473 -M do ocp.com.com
PING c18-ad-xw-lb.cnet.com (216.239.122.193) 1473(1501) bytes of data.
From t60jt (192.168.0.3) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From t60jt (192.168.0.3) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From t60jt (192.168.0.3) icmp_seq=1 Frag needed and DF set (mtu = 1500)
From t60jt (192.168.0.3) icmp_seq=1 Frag needed and DF set (mtu = 1500)

If I am correct, success with "-s 1472" means that an mtu of 1500
should work (i.e. lowering the mtu down to 1499 should not be
necessary). Consequently, I don't want to drop the mtu down to 1499 if
that will simply mask/cover a bigger problem.

Note that you're getting this ICMP message apparently from a local network and it doesn't prove much in and of itself.

As for your questions:
a) Dropping the mtu down to 1499 doesn't tell me why wget works under
windows (without the need to drop the mtu).

b) Dropping the mtu down to 1499 doesn't tell me why wget (under
linux) works if I force my router to grab a public-facing ip address
in the range 93.96.x.x.

c) Dropping the mtu down to 1499 doesn't agree with/explain the
results of the ping testing, which follows...

If you want to figure this out, I think you'll need to run tcpdump on the host (both windows and linux) and compare the TCP streams as they seem to you. Specifically I'd look for the MSS negotiated size, whether one uses fragments and one doesn't, and used TCP options. (Even better would be doing a few tests to another host in internet, which is also running tcpdump. This would show if your ISP is modifying any packets.)

As for IP address differences, 93/8 was allocated by IANA in 2007/03, 78/8 in 2006/08; with more recent IP address blocks, it's common that some misguided sites and ISPs filter these in their "bogon" filters. Maybe with one prefix a router in that prefix sends an ICMP packet too big message but it is discarded by filters.

The inconclusiveness of ping testing was shown above.

--
Pekka Savola                 "You each name yourselves king, yet the
Netcore Oy                    kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux