T   R   A   C   E   R   O   U   T   E          
f o r   L i n u x          

Project Page             Download              Mail List

This is a new modern implementation of traceroute(8) utility for Linux systems.

It has replaced the old one in the majority of distributions now, including Fedora, RHEL, Debian, Mandriva, Gentoo, Ubuntu.

Traceroute tracks the route packets taken from an IP network on their way to a given host. It utilizes the IP protocol's time to live (TTL) field and attempts to elicit an ICMP TIME_EXCEEDED response from each gateway along the path to the host. See traceroute(8) in the manual of your system for more info.

It is well-known application, appeared long time ago. Since 2000, its initial implementation is not developed, and does not follow the modern network needs. There was already some attempts to continue or re-write it, or to create similar application with additional features, but mostly such works either provides things partially or have considerably different interface.

This code was written from the scratch, using some ideas of Olaf Kirch's traceroute, the original implementation of Van Jacobson and some current BSD's ones. It is fully compatible with the original traceroute from Van Jacobson, wide used before for years.


Note, that this implementation is intended for Linux only. It utilizes some currently Linux-specific features (including MSG_ERRQUEUE for recvmsg(2)), which allow such things like the use by unprivileged users (without setuid bit) for some type of tracerouting. The Linux kernel 2.6 or higher required.


Main features:

- Command line and output compatible with the original traceroute
- Full support for both IPv4 and IPv6 protocols
- Ability to send several probe packets at a time (most cases much faster results)
- Several tracerouting methods, including
   * UDP datagrams (including udplite and udp to particlular port)
   * ICMP ECHO packets
   * TCP SYN requests (in general, any TCP request with various flags and options)
   * Generic IP datagrams
- UDP methods do not require root privileges
- Performing AS path lookups for returned addresses
- Showing of ICMP extensions, including MPLS
- Wrappers for tcptraceroute and others

- and much more, see traceroute(8)


You can try to contact the author at <Dmitry at Butskoy dot name> .