TRACEROUTE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NAME | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
SYNOPSIS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
The only required parameter is the name or IP address of the destination host . The optional packet_len`gth is the total size of the probing packet (default 60 bytes for IPv4 and 80 for IPv6). The specified size can be ignored in some situations or increased up to a minimal value.
This program attempts to trace the route an IP packet would follow to some internet host by launching probe packets with a small ttl (time to live) then listening for an ICMP "time exceeded" reply from a gateway. We start our probes with a ttl of one and increase by one until we get an ICMP "port unreachable" (or TCP reset), which means we got to the "host", or hit a max (which defaults to 30 hops). Three probes (by default) are sent at each ttl setting and a line is printed showing the ttl, address of the gateway and round trip time of each probe. The address can be followed by additional information when requested. If the probe answers come from different gateways, the address of each responding system will be printed. If there is no response within a 5.0 seconds (default), an "*" is printed for that probe.
After the trip time, some additional annotation can be printed: !H, !N, or !P (host, network or protocol unreachable), !S (source route failed), !F (fragmentation needed), !X (communication administratively prohibited), !V (host precedence violation), !C (precedence cutoff in effect), or !<num> (ICMP unreachable code <num>). If almost all the probes result in some kind of unreachable, traceroute will give up and exit.
We don't want the destination host to process the UDP probe packets, so the destination port is set to an unlikely value (you can change it with the -p flag). There is no such a problem for ICMP or TCP tracerouting (for TCP we use half-open technique, which prevents our probes to be seen by applications on the destination host).
In the modern network environment the traditional traceroute methods can not be always applicable, because of widespread use of firewalls. Such firewalls filter the "unlikely" UDP ports, or even ICMP echoes. To solve this, some additional tracerouting methods are implemented (including tcp), see LIST OF AVAILABLE METHODS below. Such methods try to use particular protocol and source/destination port, in order to bypass firewalls (to be seen by firewalls just as a start of allowed type of a network session).
OPTIONS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Varying the size of the probing packet by the
packet_len
command line parameter, you can manually obtain information
about the MTU of individual network hops. The
--mtu
option (see below) tries to do this automatically.
Note, that non-fragmented features (like
-F
or
--mtu)
work properly since the Linux kernel 2.6.22 only.
Before that version, IPv6 was always fragmented, IPv4 could use
the once the discovered final mtu only (from the route cache), which can be
less than the actual mtu of a device.
Note, that some routers might cache once the seen information
on a fragmentation. Thus you can receive the final mtu from a closer hop.
Try to specify an unusual
tos
by
-t
, this can help for one attempt (then it can be cached there as well).
See
-F
option for more info.
LIST OF AVAILABLE METHODS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
default | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
icmp -I | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
tcp -T | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
tcpconn | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
udp -U | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
udplite -UL | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
raw -P proto | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
To speed up work, normally several probes are sent simultaneously. On the other hand, it creates a "storm of packages", especially in the reply direction. Routers can throttle the rate of icmp responses, and some of replies can be lost. To avoid this, decrease the number of simultaneous probes, or even set it to 1 (like in initial traceroute implementation), i.e. -N 1
The final (target) host can drop some of the simultaneous probes, and might even answer only the latest ones. It can lead to extra "looks like expired" hops near the final hop. We use a smart algorithm to auto-detect such a situation, but if it cannot help in your case, just use -N 1 too.
For even greater stability you can slow down the program's work by -z option, for example use -z 0.5 for half-second pause between probes.
If some hops report nothing for every method, the last chance to obtain something is to use ping -R command (IPv4, and for nearest 8 hops only).
SEE ALSO | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
--back | OPTIONS |
--help | OPTIONS |
--mtu | OPTIONS |
--sport=port | OPTIONS |
-4, -6 | OPTIONS |
-A | OPTIONS |
-d | OPTIONS |
-e | OPTIONS |
-F | OPTIONS |
-f first_ttl | OPTIONS |
-g gateway | OPTIONS |
-I | OPTIONS |
-i interface | OPTIONS |
-m max_ttl | OPTIONS |
-M method | OPTIONS |
-n | OPTIONS |
-N squeries | OPTIONS |
-O option | OPTIONS |
-p port | OPTIONS |
-P protocol | OPTIONS |
-q nqueries | OPTIONS |
-r | OPTIONS |
-s source_addr | OPTIONS |
-T | OPTIONS |
-t tos | OPTIONS |
-U | OPTIONS |
-UL | OPTIONS |
-V | OPTIONS |
-w waittime | OPTIONS |
-z sendwait | OPTIONS |
coverage=num | udplite -UL |
ecn | tcp -T |
flags=num | tcp -T |
mss=num | tcp -T |
protocol=proto | raw -P proto |
sack,timestamps,window_scaling | tcp -T |
syn,ack,fin,rst,psh,urg,ece,cwr | tcp -T |
sysctl | tcp -T |