Provided by: paris-traceroute_0.92-dev-2_amd64 bug


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


       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

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

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

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

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

       -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 50ms).

       -v     Print debug messages.

       -V     Print the program version.

       -w     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 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 displayed:

       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 "|" character.

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


       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