Red Hat Bugzilla – Bug 106013
traceroute gives "Icmp checksum is wrong" for packets larger than 484
Last modified: 2007-04-18 12:58:02 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 Galeon/1.2.7 (X11; Linux i686; U;) Gecko/20030131
Description of problem:
The traceroute program is giving me an "Icmp checksum is wrong" error message
when run with a packet length of greater than 484 bytes. As far as I can tell
the packet is fine (at least ethereal doesn't seem to complain).
/proc/sys/net/ipv6/conf/eth0/mtu shows 1500.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. traceroute -n -q 1 bc 485
Actual Results: traceroute to bc (192.168.5.7), 30 hops max, 485 byte packets
Icmp checksum is wrong
1 192.168.5.7 4.916 ms
Expected Results: No error message
I don't think this is a security issue, but note that traceroute is setuid root.
(my kernel is kernel-2.4.20-20.9)
This one is still present in AS3, FC1 and FC2 on the i686 platform.
Tested with traceroute-1.4a12-20, traceroute-1.4a12-20.1 and
Strangely the error message seems only to appear when tracerouting to
I've reproduce the bug here.
The wierd thing is that even if i use the checksum code of Ethereal i
get the error message, so my guess would be that the Linux router
doesn't calculate the checksum correctly on the server side (which
would be very wierd, but possible).
I'll see if i can nail it down some more, but i don't have high hopes
in the near future.
Read ya, Phil
Correct me if I'm wrong but shouldn't be icmp cheksums counted only
when traceroute uses ICMP ECHOs eg. -I option?
Patch included in the latest rawhide version of traceroute