# phpman > info > traceroute6

[TRACEROUTE6(8)](https://www.chedong.com/phpMan.php/man/TRACEROUTE6/8/markdown)              System Manager's Manual             [TRACEROUTE6(8)](https://www.chedong.com/phpMan.php/man/TRACEROUTE6/8/markdown)

NAME
       rltraceroute6 - IPv6 traceroute tool

       tcptraceroute6 - TCP/IPv6 traceroute tool

SYNOPSIS
       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 length]

       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]

DESCRIPTON
       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 destina-
       tion (that's the historical default).  However, it can  also  send  TCP
       packets,  much  like Michael C. Toren's tcptraceroute does on IPv4 net-
       works; tcptraceroute6 sends TCP packets by  default  (and  mimics  tcp-
       traceroute 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 net-
       work route should be determined. An optional additional parameter spec-
       ifies  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).

OPTIONS
       -A     Send TCP/ACK probe packets. That's very efficient against state-
              less  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 debug-
              ging  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 un-
              less 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 tracert6.

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

       -I  (rltraceroute6 only)
              Send  UDP-Lite (protocol 136) packets (with full checksum cover-
              age) 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 routing.

       -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 Inter-
              net 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)](https://www.chedong.com/phpMan.php/man/tcptraceroute/8/markdown).

       -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 (de-
              fault:  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  tcptracer-
              oute6.

       -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 tracer-
              oute.  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.

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

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

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

       !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, par-
              ticularly a link-layer failure (e.g.  Neighbor  discovery  fail-
              ure).

       !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  op-
              tion) which MUST be supported by any IPv6 node.

SECURITY
       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 im-
       pact of a security vulnerability.

BUGS
       However useful they might be, -i and -r options are ignored by the  of-
       ficial  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 ker-
       nel versions below 2.6.17.12.

       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 pay-
       load 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.

SEE ALSO
       [ipv6(7)](https://www.chedong.com/phpMan.php/man/ipv6/7/markdown), [traceroute(8)](https://www.chedong.com/phpMan.php/man/traceroute/8/markdown), [tcptraceroute(8)](https://www.chedong.com/phpMan.php/man/tcptraceroute/8/markdown), [traceroute6(8)](https://www.chedong.com/phpMan.php/man/traceroute6/8/markdown)

AUTHOR
       Remi Denis-Courmont <remi at remlab dot net>

       <http://www.remlab.net/ndisc6/>

traceroute6                         $Date$                      [TRACEROUTE6(8)](https://www.chedong.com/phpMan.php/man/TRACEROUTE6/8/markdown)
