I came across this some time earlier. http://groups.google.co.jp/groups?selm=406865d2.107471531%40news-server.woh.rr.com In a nutshell: With an mtu of 9000, ping up to a size of 8968(8996) bytes to another host in the same subnet works, until a ping of larger size (but smaller than the 8972 bytes allowed by an mtu of 9000) causes the pmtu to drop to 8166. With several pings the pmtu can drop all the way down to 1492. I tried it on my system and got the same behaviour on a Redhat 9 box running vanilla kernel 2.6.5. With a 2.4.22 kernel from Fedora Core 1, the same box does not show this problem. This is not limited to jumbo frames, an mtu of 1496 (but not 1500) shows similar behavior, with pings larger than 1464(1492) bytes failing. Is this a configuration problem or a bug? Below is the log from 2.6.5. I've also attached the kernel configuration used. Stephen # uname -srvmpio Linux 2.6.5 #1 SMP Thu Apr 29 09:23:10 JST 2004 i686 i686 i386 GNU/Linux # /sbin/ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:F1:6B:F7:21 inet addr:192.168.120.118 Bcast:192.168.120.255 Mask:255.255.255.0 inet6 addr: fe80::20c:f1ff:fe6b:f721/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1 RX packets:173 errors:0 dropped:0 overruns:0 frame:0 TX packets:240 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:18115 (17.6 Kb) TX bytes:21919 (21.4 Kb) Base address:0xbc00 Memory:ff8e0000-ff900000 # ping -c 4 -M do -s 8973 192.168.120.211 PING 192.168.120.211 (192.168.120.211) 8973(9001) bytes of data. From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 9000) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 9000) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 9000) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 9000) --- 192.168.120.211 ping statistics --- 0 packets transmitted, 0 received, +4 errors # ping -c 4 -M do -s 8968 192.168.120.211 PING 192.168.120.211 (192.168.120.211) 8968(8996) bytes of data. 8976 bytes from 192.168.120.211: icmp_seq=1 ttl=64 time=0.814 ms 8976 bytes from 192.168.120.211: icmp_seq=2 ttl=64 time=1.08 ms 8976 bytes from 192.168.120.211: icmp_seq=3 ttl=64 time=1.10 ms 8976 bytes from 192.168.120.211: icmp_seq=4 ttl=64 time=1.12 ms --- 192.168.120.211 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3002ms rtt min/avg/max/mdev = 0.814/1.032/1.121/0.130 ms # ping -c 4 -M do -s 8969 192.168.120.211 PING 192.168.120.211 (192.168.120.211) 8969(8997) bytes of data. From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 8166) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 8166) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 8166) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 8166) --- 192.168.120.211 ping statistics --- 0 packets transmitted, 0 received, +4 errors # ping -c 4 -M do -s 8968 192.168.120.211 PING 192.168.120.211 (192.168.120.211) 8968(8996) bytes of data. From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 8166) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 8166) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 8166) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 8166) --- 192.168.120.211 ping statistics --- 0 packets transmitted, 0 received, +4 errors # ip link set eth0 mtu 1496 # ping -c 4 -M do -s 1466 192.168.120.211 PING 192.168.120.211 (192.168.120.211) 1466(1494) bytes of data. From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 1492) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 1492) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 1492) From 192.168.120.118 icmp_seq=1 Frag needed and DF set (mtu = 1492) --- 192.168.120.211 ping statistics --- 0 packets transmitted, 0 received, +4 errors # ping -c 4 -M do -s 1464 192.168.120.211 PING 192.168.120.211 (192.168.120.211) 1464(1492) bytes of data. 1472 bytes from 192.168.120.211: icmp_seq=1 ttl=64 time=0.365 ms 1472 bytes from 192.168.120.211: icmp_seq=2 ttl=64 time=0.281 ms 1472 bytes from 192.168.120.211: icmp_seq=3 ttl=64 time=0.287 ms 1472 bytes from 192.168.120.211: icmp_seq=4 ttl=64 time=0.288 ms --- 192.168.120.211 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.281/0.305/0.365/0.036 ms # ip link set eth0 mtu 1500 # ping -c 4 -M do -s 1472 192.168.120.211 PING 192.168.120.211 (192.168.120.211) 1472(1500) bytes of data. 1480 bytes from 192.168.120.211: icmp_seq=1 ttl=64 time=0.666 ms 1480 bytes from 192.168.120.211: icmp_seq=2 ttl=64 time=0.232 ms 1480 bytes from 192.168.120.211: icmp_seq=3 ttl=64 time=0.366 ms 1480 bytes from 192.168.120.211: icmp_seq=4 ttl=64 time=0.238 ms --- 192.168.120.211 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3001ms rtt min/avg/max/mdev = 0.232/0.375/0.666/0.177 ms
Attachment:
config265.txt
Description: Binary data