Section: Maintenance Commands (8)Updated: 28 August 2006Local indexUp
paris-traceroute - print the IP-level routes between two Internet hosts.
Paris traceroute is a new version of the well-known network diagnosis tool.
It addresses problems caused by load balancers with the initial
implementation. By controlling the flow identifier of the probes,
it is able to follow accurate paths in networks with load balancers.
It is also able to find all the load balanced paths to the destination.
Finally, it enriches its output with information extracted from the
received packets, allowing a more precise analysis of the
Set the probing algorithm:
Send q (configured with the
flag) probes with the same TTL, then wait for all the
replies or a timeout. Increment the TTL and reiter
the operation until we reach the destination.
All packets hold the same flow identifier.
It is the classic
send one probe at a time, then wait for a reply or
a timeout. Reiter the operation until we reach the
Send all the probes from min_ttl to max_ttl and wait
for all replies or a timeout.
Send a scout probe with a ttl max to the destination.
If the destination can be reached, compute the
number of hops used to reach the destination and
start the concurrent algorithm with a max_ttl equal
to this number of hops. If the destination cannot be
reached, the hopbyhop algorithm will be used instead.
This algorithm is only usable with UDP probes.
Print all the possible "load balanced" paths to the destination.
Set the initial probe identifier.
Set the the UDP/TCP destination port (default: 33457).
Set the initial ttl (default: 1).
Print the "IP Identifier" value of the responses. It is
used to identify the different interfaces of a router, or
uncover NAT boxes.
Display the ttl value of the reply. Useful to study asymmetric routing
and NAT boxes.
Set the data length to be used in outgoing packets. (default: 0).
Set the maximum ttl (default: 30).
Set the maximum number of consecutive unresponsive hops which causes
the program to abort (default 3).
Print hop addresses numerically. The default is to print also hostnames.
Set the protocol to use (possible values: udp, tcp, icmp).
Set the number of probes per hop (default: 3).
Set the UDP/TCP source port (default: 33456).
Set the Type of Service (default: 0). This field is taken into
account by many per-flow load balancers: in presence of such
a load balancer, packets having different TOS values are
likely to follow a different paths.
Set the time to wait between probes, in milliseconds (default 50ms).
Print debug messages.
Print the program version.
Set the time to wait for a response, in milliseconds (default 5000ms).
With the deployment of load balancing, there is no longer only
one path between two Internet hosts.
This algorithm sends enough probes at each hop to find all the
possible interfaces. Unlike the other algorithms, it varies
the flow identifier of the probes in a controlled manner, to ensure
the discovery of all the interfaces with a high confidence degree.
It also categorizes load balancers as "per-packet" (pseudo-random,
round-robin packet balancing) or "per-flow" (packets belonging to
the same flow follow the same path).
In case of per-flow load balancing, it prints additional information to
The following trace shows the enriched output:
14 22.214.171.124:0,1,3 539.065 ms 126.96.36.199:2,4,5 492.152 ms
15 188.8.131.52:0,1,3 563.163 ms 184.108.40.206:2,4,5 470.919 ms
Integers listed after the interface addresses are "flow identifiers":
they are used to identify a flow in the set of interfaces found by the
algorithm. For example, flow #0 traverses interfaces 220.127.116.11 and
18.104.22.168. This is the same for flows 1 and 3 while flows 2, 4 and 5
traverse 22.214.171.124 and 126.96.36.199.
The following information are extracted from the response packets
The TTL of the responses (from the routers and the destination) is
optionally displayed in square brackets (Use the
This is the TTL of the probe when it was received and dropped by the router.
If the original TTL is different than 1, it is displayed with a
is the value of the TTL.
indicates that the value of the TTL was 0 when the
probe reached the router that discarded it.
This the identifier of the IP error packet sent
by the router. This field is set with the value of an internal 16-bit
counter usually incremented for each packet sent. This value is optionally
displayed inside brackets. For instance
indicates that the probe
had its identifier set to 1234.
If the packet contains ICMP extensions for MPLS, the MPLS label stack
is diplayed in an additionnal line just after the current hop line.
Labels of the same stack are separated with a "|" character.
Other ICMP error messages
Paris traceroutes uses the same convensions as
to display unexpected ICMP messages (i.e. different than
TIME_EXCEEDED, PORT_UNREACHABLE and ECHO_REPLY).