1TRACEROUTE6(8) System Manager's Manual TRACEROUTE6(8)
2
3
4
6 rltraceroute6 - IPv6 traceroute tool
7
8 tcptraceroute6 - TCP/IPv6 traceroute tool
9
10
12 traceroute6 [-AdEILlnrSU] [-f min_hop] [-g hop] [ -i iface] [-m
13 max_hop] [-p port] [-q attempts] [ -s source] [-t tclass] [-w wait] [-z
14 delay_ms] < hostname/address> [packet length]
15
16 tcptraceroute6 [-AdEnrS] [-f min_hop] [-g hop] [ -i iface] [-l
17 packet_size] [-m max_hop] [-p port] [ -q attempts] [-s source] [-t
18 tclass] [-w wait] [ -z delay_ms] < hostname/address> [port]
19
20
22 rltraceroute6 is an IPv6 traceroute implementation.
23
24 It displays the list of hops along the network route between the local
25 system and specified destination, by sending packets while incrementing
26 their hop limit, until the final destination is reached.
27
28 By default, rltraceroute6 sends UDP probe packets toward the destina‐
29 tion (that's the historical default). However, it can also send TCP
30 packets, much like Michael C. Toren's tcptraceroute does on IPv4 net‐
31 works; tcptraceroute6 sends TCP packets by default (and mimics tcp‐
32 traceroute command line syntax). Finally, it can also send ICMPv6 Echo
33 Request packets, like some other traceroute implementations (such as
34 the one in Microsoft Windows); tracert6 does this by default.
35
36 You must specify the name or address of the host toward which the net‐
37 work route should be determined. An optional additional parameter spec‐
38 ifies either the probe packets length (for UDP and ICMP packets), or
39 the destination port number/service name (for TCP packets).
40
41 Note that TCP destination port zero really is TCP port numbered 0
42 (which cannot be used via the standard higer-level TCP/IP programming
43 interface).
44
45
47 -A Send TCP/ACK probe packets. That's very efficient against state‐
48 less firewalls (e.g. the official Linux kernel versions up to
49 and including 2.4.31 and 2.6.14), and utterly helpless against
50 stateful ones. Note that TCP/ACK probing cannot determine
51 whether the destination TCP port is open or not.
52
53
54 -d Enable socket debugging option (SO_DEBUG). Unless you are debug‐
55 ging the kernel, this is probably not going to have any actual
56 effect.
57
58
59 -E Send ECN-setup TCP/SYN probe packets (as per RFC 3168) rather
60 than non-ECN-setup TCP/SYN probe packets. This has no effect
61 unless command line optin -S is specified as well.
62
63
64 -F This option is ignored for backward compatibility. IPv6 packets
65 are never fragmented en route.
66
67
68 -f Override the initial IPv6 packets hop limit (default: 1).
69
70
71 -g Add an IPv6 route segment within an IPv6 Routing Header. This
72 enables loose source routing. Currently, only "Type 0" routing
73 header is supported.
74
75
76 -h Display some help and exit.
77
78
79 -I (rltraceroute6 only)
80 Send ICMPv6 Echo requests (like ping6) as probe packets. That's
81 the default for tracert6.
82
83
84 -i Only send packets through the specified interface. See also
85 BUGS.
86
87
88 -I (rltraceroute6 only)
89 Send UDP-Lite (protocol 136) packets (with full checksum cover‐
90 age) as probe packets instead of normal UDP (protocol 17).
91
92
93 -l (rltraceroute6 only)
94 Print the hop limit of received packets. This is mostly used to
95 detect asymmetric routing.
96
97
98 -l (tcptraceroute6 only)
99 Specify the size (bytes) of sent packets.
100
101
102 -m Override the maximum hop limit (maximum number of hops). The
103 default is 30 hops which should be sufficient on the IPv6 Inter‐
104 net for some time.
105
106
107 -N Try to resolve each hop's IPv6 address to a host name. This is
108 the default. This option is meant for backward compatibility
109 with tcptraceroute(8).
110
111
112 -n Do not try to resolve each hop's IPv6 address to a host name.
113 That may speed up the traceroute significantly.
114
115
116 -p For rltraceroute6, specify the base destination port number
117 (default: 33434). rltraceroute6 assumes that packets toward
118 this port up to this port plus the maximum hop limit are not in
119 use by any program on the final destination and that they are
120 not blocked by some firewall. The fact that this very assumption
121 was not always correct, eventually lead to the development of
122 the original IPv4 tcptraceroute by Michael Toren.
123
124 For tcptraceroute6, specify the source port number (default:
125 auto). Note that source port number zero really means number
126 zero, rather than some port number that would be automatically
127 assigned, as is the case with usual softwares.
128
129
130 -q Override the number of probes sent to each hop (default: 3).
131
132
133 -r Do not route packets, i.e. do not send packets through a gateway
134 that would be specified by the routing table. See also BUGS.
135
136
137 -S Use TCP/SYN probe packets. That's the default for tcptracer‐
138 oute6.
139
140
141 -s Specify the source address to use for probe packets explicitly.
142
143
144 -S Use UDP probe packets. That's the default for rltraceroute6.
145
146
147 -t Specify the traffic class (DSCP) for probe packets. See also
148 BUGS.
149
150
151 -U (rltraceroute6 only)
152 Send UDP probe packets. That's the default.
153
154
155 -V Display program version and license and exit.
156
157
158 -w Override the delay (in seconds) to wait for response once a
159 given probe packet was sent (default: 5 seconds).
160
161
162 -x This option is ignored for seamless migration from IPv4 tracer‐
163 oute. The IPv6 header has no checksum field.
164
165
166 -z Specify a milliseconds delay to wait between each probe with
167 identical hop limit. This can be useful to work-around ICMPv6
168 rate limitation on some hosts.
169
170
172 If a response is received, the round-trip time is printed. In addi‐
173 tion, specific symbols denote certain errors:
174
175
176 * No response
177 No valid response received before the timeout delay (see -w
178 option).
179
180
181 !N No route to destination
182 There is no entry for the destination network in the routing ta‐
183 ble.
184
185
186 !A Communication with destination administratively prohibited
187 A firewall explicitly rejected the traffic.
188
189
190 !S Beyond scope of source address
191 The address scope of the source address is too small to reach
192 the destination address. At the time of writing, this can only
193 happen when using a link-local source address to reach a global
194 scope destination. (Note: some IPv4 traceroute implementations
195 use !S for source route error which is completely different)
196
197
198 !H Address unreachable
199 The host address is not reachable for some other reasons, par‐
200 ticularly a link-layer failure (e.g. Neighbor discovery fail‐
201 ure).
202
203
204 !P Unrecognized Next Header type encountered
205 The destination does not implement the layer-4 protocol used.
206 You should retry with ICMPv6 Echo Requests (-I command line
207 option) which MUST be supported by any IPv6 node.
208
209
211 rltraceroute6 should be setuid root to allow use by non privileged
212 users. It will drop its root privileges before any attempt is made to
213 send or receive data from the network so as to reduce the possible
214 impact of a security vulnerability.
215
216
218 However useful they might be, -i and -r options are ignored by the
219 official Linux kernel at the time of writing this manpage, and hence do
220 not work as documented.
221
222 Support for option -t was broken until Linux kernel version 2.6.18.
223
224 Usage of Routing Header, with option -g, triggers an OOPS on Linux ker‐
225 nel versions below 2.6.17.12.
226
227 Receiving TCP/SYN-ACK packets does not work on FreeBSD at all. This
228 severely limits the usefulness of tcptraceroute6 on FreeBSD.
229
230 Packet length takes the IPv6 header and, if present, extension headers
231 into account. rltraceroute6 versions before 0.7.4 used it as IPv6 pay‐
232 load length instead, i.e. did not include the layer-3 headers in the
233 computation. Linux iputils traceroute6 does not even include the UDP
234 header. On the whole, the packet length semantic is very inconsistent
235 among IPv6 traceroute implementations.
236
237
239 ipv6(7), traceroute(8), tcptraceroute(8), traceroute6(8)
240
241
243 Rémi Denis-Courmont <remi at remlab dot net>
244
245 http://www.remlab.net/ndisc6/
246
247
248
249traceroute6 $Date$ TRACEROUTE6(8)