.\"	$NetBSD: traceroute6.8,v 1.19 2018/04/23 07:13:50 wiz Exp $
.\"	$KAME: traceroute6.8,v 1.8 2000/06/12 16:29:18 itojun Exp $
.\"
.\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. Neither the name of the project nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd April 23, 2018
.Dt TRACEROUTE6 8
.Os
.\"
.Sh NAME
.Nm traceroute6
.Nd print the route IPv6 packets will take to the destination
.\"
.Sh SYNOPSIS
.Nm traceroute6
.Op Fl adIlnrv
.Op Fl A Ar as_server
.Op Fl f Ar firsthop
.Op Fl m Ar hoplimit
.Op Fl p Ar port
.Op Fl q Ar probes
.Op Fl s Ar src
.Op Fl w Ar waittime
.Ar target
.Op Ar datalen
.\"
.Sh DESCRIPTION
.Nm
uses the IPv6 protocol hop limit field to elicit an ICMPv6
.Dv TIME_EXCEEDED
response from each gateway along the path to some host.
.Pp
The only mandatory parameter is the destination host name or IPv6 address.
The default probe datagram carries 12 bytes of payload,
in addition to the IPv6 header.
The size of the payload can be specified by giving a length
.Po in bytes
.Pc
after the destination host name.
.Pp
Other options are:
.Bl -tag -width Ds
.It Fl A
Turn on AS# lookups and use the given server instead of the default.
.It Fl a
Turn on AS# lookups for each hop encountered.
.It Fl d
Turn on socket-level debugging.
.It Fl f Ar firsthop
Specify how many hops to skip in trace.
.It Fl I
Use ICMP6 ECHO instead of UDP datagrams.
.It Fl l
Print both host hostnames and numeric addresses.
Normally
.Nm
prints only hostnames if
.Fl n
is not specified, and only numeric addresses if
.Fl n
is specified.
.It Fl m Ar hoplimit
Specify maximum
.Ar hoplimit ,
up to 255.
The default is 30 hops.
.It Fl n
Do not resolve numeric address to hostname.
.It Fl p Ar port
Set the base UDP port number use in probes to
.Ar port .
The default is 33434.
.Nm
hopes that nothing is listening on UDP ports
.Va base
to
.Va base + nhops - 1
at the destination host (so an ICMPv6
.Dv PORT_UNREACHABLE
message will be returned to terminate the route tracing).
If something is listening on a port in the default range,
this option can be used to pick an unused port range.
.It Fl q Ar probes
Set the number of probe packets sent per hop count to
.Ar probes .
By default,
.Nm
sends three probe packets.
.It Fl r
Bypass the normal routing tables and send directly to
a host on an attached network.
If the host is not on a directly-attached network,
an error is returned.
This option can be used to send probes to a local host
through an interface that has no route through it
(e.g., after the interface was dropped by
.Xr route6d 8 ) .
.It Fl s Ar src
Use the IPv6 address,
.Ar src ,
as the source address in outgoing probe packets.
.It Fl v
Be verbose.
Received ICMPv6 packets other than
.Dv TIME_EXCEEDED
and
.Dv UNREACHABLEs
are listed.
.It Fl w Ar waittime
Use
.Ar waittime
as the delay in seconds, between probes.
The default is 5 seconds.
.El
.Pp
This program prints the route to the given destination
and the round-trip time to each gateway,
in the same manner as traceroute.
.Pp
Here is a list of possible annotations after the
round-trip time for each gateway:
.Bl -hang -offset indent
.It  !N
Destination Unreachable - No Route to Host.
.It  !X
Destination Unreachable - Administratively Prohibited.
.It  !S
Destination Unreachable - Not a Neighbour.
.It  !H
Destination Unreachable - Address Unreachable.
.It  !
This is printed if the hop limit is <= 1 on a port unreachable message.
This means that the packet got to the destination,
but that the reply had a hop limit that was just
large enough to allow it to get back to the source of the
.Nm .
This was more interesting in the IPv4 case,
where some IP stack bugs could be identified by this behaviour.
.El
.\"
.Sh EXIT STATUS
.Ex -std traceroute6
.\"
.Sh SEE ALSO
.Xr ping 8 ,
.Xr ping6 8 ,
.Xr traceroute 8
.\"
.Sh HISTORY
The
.Nm
command first appeared in WIDE hydrangea IPv6 protocol stack kit.
