Man Linux: Main Page and Category List


       paris-traceroute  -  print  the  IP-level  routes  between two Internet


       paris-traceroute [ -fhilnqvV ] [ -b initial_id ]
               [ -d dest_port ] [ -a algorithm ] [ -f first_ttl ]
               [ -L packetlen ] [ -m max_ttl ]
               [ -M max_missing_hops ] [ -p protocol ]
               [ -q nqueries ] [ -s source_port ] [ -t tos ]
               [ -T delaymsecs ] [ -w waittime ]


       Paris traceroute is a new version of the well-known  network  diagnosis
       tool.   It addresses problems caused by load balancers with the initial
       traceroute(8) 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 discovered paths.

       Options are:

       -a     Set the probing algorithm:

              Send  q  (configured with the -q 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 traceroute(8) algorithm: send one probe  at  a
              time,  then  wait for a reply or a timeout. Reiter the operation
              until we reach the destination.

              Send all the probes from min_ttl to max_ttl  and  wait  for  all
              replies or a timeout.

       scout  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.
              (See section EXHAUSTIVE ALGORITHM )

       -b     Set the initial probe identifier.

       -d     Set the the UDP/TCP destination port (default: 33457).

       -f     Set the initial ttl (default: 1).

       -h     Print help.

       -i     Print  the "IP Identifier" value of the responses. It is used to
              identify the different interfaces of a router,  or  uncover  NAT

       -l     Display  the  ttl value of the reply. Useful to study asymmetric
              routing and NAT boxes.

       -L     Set the data length to be used in  outgoing  packets.  (default:

       -m     Set the maximum ttl (default: 30).

       -M     Set  the  maximum  number of consecutive unresponsive hops which
              causes the program to abort (default 3).

       -n     Print hop addresses numerically. The default is  to  print  also

       -p     Set the protocol to use (possible values: udp, tcp, icmp).

       -q     Set the number of probes per hop (default: 3).

       -s     Set the UDP/TCP source port (default: 33456).

       -t     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.

       -T     Set the time to wait between probes,  in  milliseconds  (default

       -v     Print debug messages.

       -V     Print the program version.

       -w     Set  the  time  to wait for a response, in milliseconds (default


       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
       track flows.  The following trace shows the enriched output:

              14,1,3  539.065 ms,4,5  492.152 ms
              15,1,3  563.163 ms,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  and  This  is  the  same  for flows 1 and 3 while flows 2, 4 and 5
       traverse and


       The following information are extracted from the response  packets  and

       Response TTL
              The  TTL of the responses (from the routers and the destination)
              is optionally displayed in square brackets (Use the -l flag ).

       Original TTL
              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 !Tx symbol, where x is the value  of  the  TTL.
              For  example, !T0 indicates that the value of the TTL was 0 when
              the probe reached the router that discarded it.

       IP Identifier
              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  {1234}
              indicates that the probe had its identifier set to 1234.

       MPLS labels
              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  "|"

       Other ICMP error messages
              Paris  traceroutes uses the same convensions as traceroute(8) to
              display  unexpected   ICMP   messages   (i.e.   different   than


       traceroute(8), pathchar(8), netstat(1), ping(8)


       The  initial  version  of traceroute(8) was implemented by Van Jacobson
       from a suggestion by Steve Deering.  Paris traceroute  was  implemented
       by Xavier Cuvellier. Debugged and enhanced by Brice Augustin.

       The current version is available at:



       Please send bug reports to