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

NAME

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

SYNOPSIS

       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 ]
               host

DESCRIPTION

       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:

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

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

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

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

       -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: 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).

EXHAUSTIVE ALGORITHM

       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.1.1.1:0,1,3  539.065 ms  1.1.1.2:2,4,5  492.152 ms
              15  2.2.2.2:0,1,3  563.163 ms  2.2.2.3: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 1.1.1.1 and
       2.2.2.2. This is the same for flows 1 and 3 while flows 2, 4 and 5 traverse 1.1.1.2 and 2.2.2.3.

OUTPUT

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

SEE ALSO

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

AUTHOR

       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:

              http://www.paris-traceroute.net

BUGS

       Please send bug reports to brice.augustin@rp.lip6.fr.