Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TRACEROUTE6(8)		     System Manager's Manual		  TRACEROUTE6(8)

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 sys-
     tem 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; tcp-
     traceroute6 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  Win-
     dows); 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  ei-
     ther  the	probe packets length (for UDP and ICMP packets), or the destina-
     tion 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 stateless
	    firewalls (e.g. the official Linux kernel versions up to and includ-
	    ing 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  com-
	    mand 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 en-
	    ables 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  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 de-
	    tect asymmetric routing.

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

     -m     Override  the  maximum  hop limit (maximum number of hops).  The de-
	    fault 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 tcp-
	    traceroute(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 (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 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 identi-
	    cal  hop limit.  This can be useful to work-around ICMPv6 rate limi-
	    tation on some hosts.

DIAGNOSTICS
     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 des-
	    tination.  (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, particu-
	    larly 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.

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 re-
     ceive data from the network so as to reduce the possible impact of a  secu-
     rity vulnerability.

BUGS
     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 2.6.17.12.

     Receiving	TCP/SYN-ACK  packets  does not work on FreeBSD at all.	This se-
     verely 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 computa-
     tion.  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), traceroute(8), tcptraceroute(8), traceroute6(8)

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

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

traceroute6			     $Date$			  TRACEROUTE6(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=tracert6&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help