Provided by: ndisc6_1.0.1-1ubuntu2_amd64 bug


       rltraceroute6 - IPv6 traceroute tool

       tcptraceroute6 - TCP/IPv6 traceroute tool


       traceroute6  [-AdEILlnrSU]  [-f  min_hop]  [-g hop] [ -i iface] [-m max_hop] [-p port] [-q
       attempts] [ -s source] [-t tclass] [-w wait] [-z  delay_ms]  <  hostname/address>  [packet

       tcptraceroute6  [-AdEnrS]  [-f min_hop] [-g hop] [ -i iface] [-l packet_size] [-m max_hop]
       [-p  port]  [  -q  attempts]  [-s  source]  [-t  tclass]  [-w  wait]  [  -z  delay_ms]   <
       hostname/address> [port]


       rltraceroute6 is an IPv6 traceroute implementation.

       It  displays  the  list  of  hops  along  the  network  route between the local system and
       specified destination, by sending packets while incrementing their hop  limit,  until  the
       final destination is reached.

       By  default,  rltraceroute6  sends  UDP  probe  packets toward the destination (that's the
       historical default).  However, it can also send TCP packets, much like Michael C.  Toren's
       tcptraceroute  does  on  IPv4  networks;  tcptraceroute6 sends TCP packets by default (and
       mimics tcptraceroute command line syntax).  Finally, it can also send ICMPv6 Echo  Request
       packets,  like  some  other  traceroute  implementations  (such  as  the  one in Microsoft
       Windows); tracert6 does this by default.

       You must specify the name or address of the host toward which the network route should  be
       determined.  An  optional  additional  parameter specifies either the probe packets length
       (for UDP and ICMP packets), or the destination port number/service name (for TCP packets).

       Note that TCP destination port zero really is TCP port numbered 0 (which  cannot  be  used
       via the standard higer-level TCP/IP programming interface).


       -A     Send TCP/ACK probe packets. That's very efficient against stateless firewalls (e.g.
              the official Linux kernel versions up to and  including  2.4.31  and  2.6.14),  and
              utterly  helpless against stateful ones. Note that TCP/ACK probing cannot determine
              whether the destination TCP port is open or not.

       -d     Enable socket debugging option (SO_DEBUG). Unless you  are  debugging  the  kernel,
              this is probably not going to have any actual effect.

       -E     Send  ECN-setup  TCP/SYN  probe packets (as per RFC 3168) rather than non-ECN-setup
              TCP/SYN probe packets. This has no effect unless command line optin -S is specified
              as well.

       -F     This  option  is  ignored  for  backward  compatibility.   IPv6  packets  are never
              fragmented en route.

       -f     Override the initial IPv6 packets hop limit (default: 1).

       -g     Add an IPv6 route segment within an IPv6 Routing Header.  This enables loose source
              routing.  Currently, only "Type 0" routing header is supported.

       -h     Display some help and exit.

       -I  (rltraceroute6 only)
              Send  ICMPv6  Echo  requests (like ping6) as probe packets.  That's the default for

       -i     Only send packets through the specified interface.  See also BUGS.

       -I  (rltraceroute6 only)
              Send UDP-Lite (protocol 136) packets (with full checksum coverage) as probe packets
              instead of normal UDP (protocol 17).

       -l (rltraceroute6 only)
              Print  the hop limit of received packets.  This is mostly used to detect asymmetric

       -l (tcptraceroute6 only)
              Specify the size (bytes) of sent packets.

       -m     Override the maximum hop limit (maximum number of hops).  The default  is  30  hops
              which should be sufficient on the IPv6 Internet for some time.

       -N     Try  to  resolve each hop's IPv6 address to a host name. This is the default.  This
              option is meant for backward compatibility with tcptraceroute(8).

       -n     Do not try to resolve each hop's IPv6 address to a host name.  That  may  speed  up
              the traceroute significantly.

       -p     For  rltraceroute6,  specify  the  base  destination  port number (default: 33434).
              rltraceroute6 assumes that packets toward this  port  up  to  this  port  plus  the
              maximum  hop  limit are not in use by any program on the final destination and that
              they are not blocked by some firewall. The fact that this very assumption  was  not
              always   correct,   eventually  lead  to  the  development  of  the  original  IPv4
              tcptraceroute by Michael Toren.

              For tcptraceroute6, specify the source port  number  (default:  auto).   Note  that
              source port number zero really means number zero, rather than some port number that
              would be automatically assigned, as is the case with usual softwares.

       -q     Override the number of probes sent to each hop (default: 3).

       -r     Do not route packets, i.e. do not send packets through  a  gateway  that  would  be
              specified by the routing table.  See also BUGS.

       -S     Use TCP/SYN probe packets. That's the default for tcptraceroute6.

       -s     Specify the source address to use for probe packets explicitly.

       -S     Use UDP probe packets. That's the default for rltraceroute6.

       -t     Specify the traffic class (DSCP) for probe packets.  See also BUGS.

       -U  (rltraceroute6 only)
              Send UDP probe packets. That's the default.

       -V     Display program version and license and exit.

       -w     Override  the delay (in seconds) to wait for response once a given probe packet was
              sent (default: 5 seconds).

       -x     This option is ignored for seamless  migration  from  IPv4  traceroute.   The  IPv6
              header has no checksum field.

       -z     Specify  a  milliseconds delay to wait between each probe with identical hop limit.
              This can be useful to work-around ICMPv6 rate limitation on some hosts.


       If a response is received, the round-trip time is printed.  In addition, specific  symbols
       denote certain errors:

       *   No response
              No valid response received before the timeout delay (see -w option).

       !N  No route to destination
              There is no entry for the destination network in the routing table.

       !A  Communication with destination administratively prohibited
              A firewall explicitly rejected the traffic.

       !S  Beyond scope of source address
              The  address  scope  of  the  source  address is too small to reach the destination
              address. At the time of writing, this can  only  happen  when  using  a  link-local
              source  address  to  reach a global scope destination.  (Note: some IPv4 traceroute
              implementations use !S for source route error which is completely different)

       !H  Address unreachable
              The host address is not reachable for some other reasons, particularly a link-layer
              failure (e.g. Neighbor discovery failure).

       !P  Unrecognized Next Header type encountered
              The  destination  does  not  implement the layer-4 protocol used.  You should retry
              with ICMPv6 Echo Requests (-I command line option) which MUST be supported  by  any
              IPv6 node.


       rltraceroute6 should be setuid root to allow use by non privileged users. It will drop its
       root privileges before any attempt is made to send or receive data from the network so  as
       to reduce the possible impact of a security vulnerability.


       However  useful  they might be, -i and -r options are ignored by the official Linux kernel
       at the time of writing this manpage, and hence do not work as documented.

       Support for option -t was broken until Linux kernel version 2.6.18.

       Usage of Routing Header, with option -g, triggers an OOPS on Linux kernel  versions  below

       Receiving  TCP/SYN-ACK  packets does not work on FreeBSD at all.  This severely limits the
       usefulness of tcptraceroute6 on FreeBSD.

       Packet length takes the IPv6 header and,  if  present,  extension  headers  into  account.
       rltraceroute6  versions  before 0.7.4 used it as IPv6 payload length instead, i.e. did not
       include the layer-3 headers in the computation.  Linux iputils traceroute6 does  not  even
       include  the  UDP  header.   On the whole, the packet length semantic is very inconsistent
       among IPv6 traceroute implementations.


       ipv6(7), traceroute(8), tcptraceroute(8), traceroute6(8)


       RĂ©mi Denis-Courmont <remi at remlab dot net>

       $Id: rltraceroute6.8 658 2010-10-31 20:56:30Z remi $