xref: /freebsd/usr.sbin/traceroute/traceroute.8 (revision 9b7a920a12a9377b9c8227f72748ab32fbbb4822)
1*9b7a920aSLexi Winter.\" Copyright (c) 1989, 1995, 1996, 1997, 1999, 2000
2*9b7a920aSLexi Winter.\"	The Regents of the University of California.  All rights reserved.
3*9b7a920aSLexi Winter.\"
4*9b7a920aSLexi Winter.\" Redistribution and use in source and binary forms are permitted
5*9b7a920aSLexi Winter.\" provided that the above copyright notice and this paragraph are
6*9b7a920aSLexi Winter.\" duplicated in all such forms and that any documentation,
7*9b7a920aSLexi Winter.\" advertising materials, and other materials related to such
8*9b7a920aSLexi Winter.\" distribution and use acknowledge that the software was developed
9*9b7a920aSLexi Winter.\" by the University of California, Berkeley.  The name of the
10*9b7a920aSLexi Winter.\" University may not be used to endorse or promote products derived
11*9b7a920aSLexi Winter.\" from this software without specific prior written permission.
12*9b7a920aSLexi Winter.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
13*9b7a920aSLexi Winter.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
14*9b7a920aSLexi Winter.\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
15*9b7a920aSLexi Winter.\"
16*9b7a920aSLexi Winter.\"	$Id: traceroute.8,v 1.19 2000/09/21 08:44:19 leres Exp $
17*9b7a920aSLexi Winter.\"
18*9b7a920aSLexi Winter.Dd November 17, 2023
19*9b7a920aSLexi Winter.Dt TRACEROUTE 8
20*9b7a920aSLexi Winter.Os
21*9b7a920aSLexi Winter.Sh NAME
22*9b7a920aSLexi Winter.Nm traceroute
23*9b7a920aSLexi Winter.Nd "print the route packets take to network host"
24*9b7a920aSLexi Winter.Sh SYNOPSIS
25*9b7a920aSLexi Winter.Nm
26*9b7a920aSLexi Winter.Bk -words
27*9b7a920aSLexi Winter.Op Fl adDeEFISnrvx
28*9b7a920aSLexi Winter.Op Fl A Ar as_server
29*9b7a920aSLexi Winter.Op Fl f Ar first_ttl
30*9b7a920aSLexi Winter.Op Fl g Ar gateway
31*9b7a920aSLexi Winter.Op Fl i Ar iface
32*9b7a920aSLexi Winter.Op Fl m Ar max_ttl
33*9b7a920aSLexi Winter.Op Fl M Ar first_ttl
34*9b7a920aSLexi Winter.Op Fl p Ar port
35*9b7a920aSLexi Winter.Op Fl P Ar proto
36*9b7a920aSLexi Winter.Op Fl q Ar nprobes
37*9b7a920aSLexi Winter.Op Fl s Ar src_addr
38*9b7a920aSLexi Winter.Op Fl t Ar tos
39*9b7a920aSLexi Winter.Op Fl w Ar waittime
40*9b7a920aSLexi Winter.Op Fl z Ar pausemsecs
41*9b7a920aSLexi Winter.Ar host
42*9b7a920aSLexi Winter.Op Ar packetlen
43*9b7a920aSLexi Winter.Ek
44*9b7a920aSLexi Winter.Sh DESCRIPTION
45*9b7a920aSLexi WinterThe Internet is a large and complex aggregation of network hardware, connected
46*9b7a920aSLexi Wintertogether by gateways.
47*9b7a920aSLexi WinterTracking the route one's packets follow (or finding the miscreant gateway
48*9b7a920aSLexi Winterthat's discarding your packets) can be difficult.
49*9b7a920aSLexi Winter.Nm
50*9b7a920aSLexi Winterutilizes the IP protocol `time to live' field and attempts to elicit an ICMP
51*9b7a920aSLexi WinterTIME_EXCEEDED response from each gateway along the path to some host.
52*9b7a920aSLexi Winter.Pp
53*9b7a920aSLexi WinterThe only mandatory parameter is the destination host name or IP number.
54*9b7a920aSLexi WinterThe default probe datagram length is 40 bytes, but this may be increased by
55*9b7a920aSLexi Winterspecifying a packet length (in bytes) after the destination host name.
56*9b7a920aSLexi Winter.Pp
57*9b7a920aSLexi WinterOther options are:
58*9b7a920aSLexi Winter.Bl -tag -width Ds
59*9b7a920aSLexi Winter.It Fl a
60*9b7a920aSLexi WinterTurn on AS# lookups for each hop encountered.
61*9b7a920aSLexi Winter.It Fl A Ar as_server
62*9b7a920aSLexi WinterTurn on AS# lookups and use the given server instead of the default.
63*9b7a920aSLexi Winter.It Fl d
64*9b7a920aSLexi WinterEnable socket level debugging.
65*9b7a920aSLexi Winter.It Fl D
66*9b7a920aSLexi WinterWhen an ICMP response to our probe datagram is received, print the differences
67*9b7a920aSLexi Winterbetween the transmitted packet and the packet quoted by the ICMP response.
68*9b7a920aSLexi WinterA key showing the location of fields within the transmitted packet is printed,
69*9b7a920aSLexi Winterfollowed by the original packet in hex, followed by the quoted packet in hex.
70*9b7a920aSLexi WinterBytes that are unchanged in the quoted packet are shown as underscores.
71*9b7a920aSLexi WinterNote, the IP checksum and the TTL of the quoted packet are not expected to
72*9b7a920aSLexi Wintermatch.
73*9b7a920aSLexi WinterBy default, only one probe per hop is sent with this option.
74*9b7a920aSLexi Winter.It Fl e
75*9b7a920aSLexi WinterFirewall evasion mode.
76*9b7a920aSLexi WinterUse fixed destination ports for UDP, UDP-Lite, TCP and SCTP probes.
77*9b7a920aSLexi WinterThe destination port does NOT increment with each packet sent.
78*9b7a920aSLexi Winter.It Fl E
79*9b7a920aSLexi WinterDetect ECN bleaching.
80*9b7a920aSLexi WinterSet the
81*9b7a920aSLexi Winter.Em IPTOS_ECN_ECT1
82*9b7a920aSLexi WinterExplicit Congestion Notification (ECN) bits
83*9b7a920aSLexi Winter.Pq Dv 01 ,
84*9b7a920aSLexi Winterand report if the hop has bleached
85*9b7a920aSLexi Winter.Pq Dv 00
86*9b7a920aSLexi Winteror mangled
87*9b7a920aSLexi Winter.Pq Dv 10
88*9b7a920aSLexi Winterthem, or if it is experiencing congestion
89*9b7a920aSLexi Winter.Pq Dv 11 .
90*9b7a920aSLexi WinterOtherwise, report that it passed the bits appropriately.
91*9b7a920aSLexi WinterIf
92*9b7a920aSLexi Winter.Fl t
93*9b7a920aSLexi Winteris also specified, the corresponding ECN bits will be replaced.
94*9b7a920aSLexi Winter.It Fl f Ar first_ttl
95*9b7a920aSLexi WinterSet the initial time-to-live used in the first outgoing probe packet.
96*9b7a920aSLexi Winter.It Fl F
97*9b7a920aSLexi WinterSet the "don't fragment" bit.
98*9b7a920aSLexi Winter.It Fl g Ar gateway
99*9b7a920aSLexi WinterSpecify a loose source route gateway (8 maximum).
100*9b7a920aSLexi Winter.It Fl i Ar iface
101*9b7a920aSLexi WinterSpecify a network interface to obtain the source IP address for outgoing probe
102*9b7a920aSLexi Winterpackets.
103*9b7a920aSLexi WinterThis is normally only useful on a multi-homed host.
104*9b7a920aSLexi Winter(See the
105*9b7a920aSLexi Winter.Fl s
106*9b7a920aSLexi Winterflag for another way to do this).
107*9b7a920aSLexi Winter.It Fl I
108*9b7a920aSLexi WinterUse ICMP ECHO instead of UDP datagrams.
109*9b7a920aSLexi Winter(A synonym for "-P icmp").
110*9b7a920aSLexi Winter.It Fl m Ar max_ttl
111*9b7a920aSLexi WinterSet the max time-to-live (max number of hops) used in outgoing probe packets.
112*9b7a920aSLexi WinterThe default is the value of the
113*9b7a920aSLexi Winter.Va net.inet.ip.ttl
114*9b7a920aSLexi Winter.Xr sysctl 8
115*9b7a920aSLexi Winter(the same default used for TCP connections).
116*9b7a920aSLexi Winter.It Fl M Ar first_ttl
117*9b7a920aSLexi WinterSet the initial time-to-live value used in outgoing probe packets.
118*9b7a920aSLexi WinterThe default is 1, i.e., start with the first hop.
119*9b7a920aSLexi Winter.It Fl n
120*9b7a920aSLexi WinterPrint hop addresses numerically rather than symbolically and numerically
121*9b7a920aSLexi Winter(saves a nameserver address-to-name lookup for each gateway found on the path).
122*9b7a920aSLexi Winter.It Fl p Ar port
123*9b7a920aSLexi WinterProtocol specific.
124*9b7a920aSLexi WinterFor UDP, UDP-Lite, TCP and SCTP, sets the base
125*9b7a920aSLexi Winter.Ar port
126*9b7a920aSLexi Winternumber used in probes (default is 33434).
127*9b7a920aSLexi WinterTraceroute hopes that nothing is listening on UDP ports (or UDP-Lite ports
128*9b7a920aSLexi Winterif used by
129*9b7a920aSLexi Winter.Nm
130*9b7a920aSLexi Winterand supported by the peer)
131*9b7a920aSLexi Winter.Em port + 1
132*9b7a920aSLexi Winterto
133*9b7a920aSLexi Winter.Em port + (max_ttl - first_ttl + 1) * nprobes
134*9b7a920aSLexi Winterat the destination host (so an ICMP PORT_UNREACHABLE message will be returned
135*9b7a920aSLexi Winterto terminate the route tracing).
136*9b7a920aSLexi WinterIf something is listening on a port in the default range, this option can be
137*9b7a920aSLexi Winterused to pick an unused port range.
138*9b7a920aSLexi Winter.It Fl P Ar proto
139*9b7a920aSLexi WinterSend packets of specified IP protocol.
140*9b7a920aSLexi WinterThe currently supported protocols
141*9b7a920aSLexi Winterare: UDP, UDP-Lite, TCP, SCTP, GRE and ICMP.
142*9b7a920aSLexi WinterOther protocols may also be specified (either by name or by number), though
143*9b7a920aSLexi Winter.Nm
144*9b7a920aSLexi Winterdoes not implement any special knowledge of their packet formats.
145*9b7a920aSLexi WinterThis option is useful for determining which router along a path may be blocking
146*9b7a920aSLexi Winterpackets based on IP protocol number.
147*9b7a920aSLexi WinterBut see BUGS below.
148*9b7a920aSLexi Winter.It Fl q Ar nprobes
149*9b7a920aSLexi WinterSet the number of probes per hop (default is 3, unless
150*9b7a920aSLexi Winter.Fl D
151*9b7a920aSLexi Winteris specified,
152*9b7a920aSLexi Winterwhen it is 1).
153*9b7a920aSLexi Winter.It Fl r
154*9b7a920aSLexi WinterBypass the normal routing tables and send directly to a host on an attached
155*9b7a920aSLexi Winternetwork.
156*9b7a920aSLexi WinterIf the host is not on a directly-attached network, an error is returned.
157*9b7a920aSLexi WinterThis option can be used to ping a local host through an interface that has no
158*9b7a920aSLexi Winterroute through it (e.g., after the interface was dropped by
159*9b7a920aSLexi Winter.Xr routed 8 .
160*9b7a920aSLexi Winter.It Fl s Ar src_addr
161*9b7a920aSLexi WinterUse the following IP address (which usually is given as an IP number, not a
162*9b7a920aSLexi Winterhostname) as the source address in outgoing probe packets.
163*9b7a920aSLexi WinterOn multi-homed hosts (those with more than one IP address), this option can be
164*9b7a920aSLexi Winterused to force the source address to be something other than the IP address of
165*9b7a920aSLexi Winterthe interface the probe packet is sent on.
166*9b7a920aSLexi WinterIf the IP address is not one of this machine's interface addresses, an error is
167*9b7a920aSLexi Winterreturned and nothing is sent.
168*9b7a920aSLexi Winter(See the
169*9b7a920aSLexi Winter.Fl i
170*9b7a920aSLexi Winterflag for another way to do this).
171*9b7a920aSLexi Winter.It Fl S
172*9b7a920aSLexi WinterPrint a summary of how many probes were not answered for each hop.
173*9b7a920aSLexi Winter.It Fl t Ar tos
174*9b7a920aSLexi WinterSet the
175*9b7a920aSLexi Winter.Em type-of-service
176*9b7a920aSLexi Winterin probe packets to the following value (default zero).
177*9b7a920aSLexi WinterThe value must be a decimal integer in the range 0 to 255.
178*9b7a920aSLexi WinterThis option can be used to see if different types-of-service result in
179*9b7a920aSLexi Winterdifferent paths.
180*9b7a920aSLexi WinterThe upper six bits are the Differentiated Services Codepoint (RFC4594).
181*9b7a920aSLexi WinterThe lower two bits are the Explicit Congestion Notification field (RFC3168).
182*9b7a920aSLexi Winter.It Fl v
183*9b7a920aSLexi WinterVerbose output.
184*9b7a920aSLexi WinterReceived ICMP packets other than
185*9b7a920aSLexi Winter.Dv TIME_EXCEEDED
186*9b7a920aSLexi Winterand
187*9b7a920aSLexi Winter.Dv UNREACHABLE Ns s
188*9b7a920aSLexi Winterare listed.
189*9b7a920aSLexi Winter.It Fl w Ar waittime
190*9b7a920aSLexi WinterSet the time (in seconds) to wait for a response to a probe (default 5 sec.).
191*9b7a920aSLexi Winter.It Fl x
192*9b7a920aSLexi WinterToggle ip checksums.
193*9b7a920aSLexi WinterNormally, this prevents traceroute from calculating ip checksums.
194*9b7a920aSLexi WinterIn some cases, the operating system can overwrite parts of the outgoing packet
195*9b7a920aSLexi Winterbut not recalculate the checksum (so in some cases the default is to not
196*9b7a920aSLexi Wintercalculate checksums and using
197*9b7a920aSLexi Winter.Fl x
198*9b7a920aSLexi Wintercauses them to be calculated).
199*9b7a920aSLexi WinterNote that checksums are usually required for the last hop when using ICMP ECHO
200*9b7a920aSLexi Winterprobes
201*9b7a920aSLexi Winter.Pq Fl I .
202*9b7a920aSLexi WinterSo they are always calculated when using ICMP.
203*9b7a920aSLexi Winter.It Fl z Ar pausemsecs
204*9b7a920aSLexi WinterSet the time (in milliseconds) to pause between probes (default 0).
205*9b7a920aSLexi WinterSome systems such as Solaris and routers such as Ciscos rate limit ICMP
206*9b7a920aSLexi Wintermessages.
207*9b7a920aSLexi WinterA good value to use with this is 500 (e.g., 1/2 second).
208*9b7a920aSLexi Winter.El
209*9b7a920aSLexi Winter.Pp
210*9b7a920aSLexi WinterThis program attempts to trace the route an IP packet would follow to some
211*9b7a920aSLexi Winterinternet host by launching UDP probe packets with a small TTL (time to live)
212*9b7a920aSLexi Winterthen listening for an ICMP "time exceeded" reply from a gateway.
213*9b7a920aSLexi WinterWe start our probes with a TTL of one and increase by one until we get an ICMP
214*9b7a920aSLexi Winter"port unreachable" (which means we got to "host") or hit a max (which defaults
215*9b7a920aSLexi Winterto the amount of hops specified by the
216*9b7a920aSLexi Winter.Va net.inet.ip.ttl
217*9b7a920aSLexi Winter.Xr sysctl 8
218*9b7a920aSLexi Winterand can be changed with the
219*9b7a920aSLexi Winter.Fl m
220*9b7a920aSLexi Winterflag).
221*9b7a920aSLexi WinterThree probes (change with
222*9b7a920aSLexi Winter.Fl q
223*9b7a920aSLexi Winterflag) are sent at each TTL setting and a line is printed showing the TTL,
224*9b7a920aSLexi Winteraddress of the gateway and round trip time of each probe.
225*9b7a920aSLexi WinterIf the probe answers come from different gateways, the address of each
226*9b7a920aSLexi Winterresponding system will be printed.
227*9b7a920aSLexi WinterIf there is no response within a 5 sec. timeout interval (changed with the
228*9b7a920aSLexi Winter.Fl w
229*9b7a920aSLexi Winterflag), a "*" is printed for that probe.
230*9b7a920aSLexi Winter.Pp
231*9b7a920aSLexi WinterWe don't want the destination host to process the UDP probe packets so the
232*9b7a920aSLexi Winterdestination port is set to an unlikely value (if some clod on the destination
233*9b7a920aSLexi Winteris using that value, it can be changed with the
234*9b7a920aSLexi Winter.Fl p
235*9b7a920aSLexi Winterflag).
236*9b7a920aSLexi Winter.Pp
237*9b7a920aSLexi WinterA sample use and output might be:
238*9b7a920aSLexi Winter.Bd -literal -offset 4n
239*9b7a920aSLexi Winter% traceroute nis.nsf.net.
240*9b7a920aSLexi Wintertraceroute to nis.nsf.net (35.1.1.48), 64 hops max, 40 byte packets
241*9b7a920aSLexi Winter 1  helios.ee.lbl.gov (128.3.112.1)  19 ms  19 ms  0 ms
242*9b7a920aSLexi Winter 2  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  39 ms  19 ms
243*9b7a920aSLexi Winter 3  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  39 ms  19 ms
244*9b7a920aSLexi Winter 4  ccngw-ner-cc.Berkeley.EDU (128.32.136.23)  39 ms  40 ms  39 ms
245*9b7a920aSLexi Winter 5  ccn-nerif22.Berkeley.EDU (128.32.168.22)  39 ms  39 ms  39 ms
246*9b7a920aSLexi Winter 6  128.32.197.4 (128.32.197.4)  40 ms  59 ms  59 ms
247*9b7a920aSLexi Winter 7  131.119.2.5 (131.119.2.5)  59 ms  59 ms  59 ms
248*9b7a920aSLexi Winter 8  129.140.70.13 (129.140.70.13)  99 ms  99 ms  80 ms
249*9b7a920aSLexi Winter 9  129.140.71.6 (129.140.71.6)  139 ms  239 ms  319 ms
250*9b7a920aSLexi Winter10  129.140.81.7 (129.140.81.7)  220 ms  199 ms  199 ms
251*9b7a920aSLexi Winter11  nic.merit.edu (35.1.1.48)  239 ms  239 ms  239 ms
252*9b7a920aSLexi Winter.Ed
253*9b7a920aSLexi Winter.Pp
254*9b7a920aSLexi WinterNote that lines 2 & 3 are the same.
255*9b7a920aSLexi WinterThis is due to a buggy kernel on the 2nd hop system \- lilac-dmc.Berkeley.EDU \-
256*9b7a920aSLexi Winterthat forwards packets with a zero TTL (a bug in the distributed version of
257*9b7a920aSLexi Winter4.3BSD).
258*9b7a920aSLexi WinterNote that you have to guess what path the packets are taking cross-country
259*9b7a920aSLexi Wintersince the NSFNet (129.140) doesn't supply address-to-name translations for its
260*9b7a920aSLexi WinterNSSes.
261*9b7a920aSLexi Winter.Pp
262*9b7a920aSLexi WinterA more interesting example is:
263*9b7a920aSLexi Winter.Bd -literal -offset 4n
264*9b7a920aSLexi Winter% traceroute allspice.lcs.mit.edu.
265*9b7a920aSLexi Wintertraceroute to allspice.lcs.mit.edu (18.26.0.115), 64 hops max, 40 byte packets
266*9b7a920aSLexi Winter 1  helios.ee.lbl.gov (128.3.112.1)  0 ms  0 ms  0 ms
267*9b7a920aSLexi Winter 2  lilac-dmc.Berkeley.EDU (128.32.216.1)  19 ms  19 ms  19 ms
268*9b7a920aSLexi Winter 3  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  19 ms  19 ms
269*9b7a920aSLexi Winter 4  ccngw-ner-cc.Berkeley.EDU (128.32.136.23)  19 ms  39 ms  39 ms
270*9b7a920aSLexi Winter 5  ccn-nerif22.Berkeley.EDU (128.32.168.22)  20 ms  39 ms  39 ms
271*9b7a920aSLexi Winter 6  128.32.197.4 (128.32.197.4)  59 ms  119 ms  39 ms
272*9b7a920aSLexi Winter 7  131.119.2.5 (131.119.2.5)  59 ms  59 ms  39 ms
273*9b7a920aSLexi Winter 8  129.140.70.13 (129.140.70.13)  80 ms  79 ms  99 ms
274*9b7a920aSLexi Winter 9  129.140.71.6 (129.140.71.6)  139 ms  139 ms  159 ms
275*9b7a920aSLexi Winter10  129.140.81.7 (129.140.81.7)  199 ms  180 ms  300 ms
276*9b7a920aSLexi Winter11  129.140.72.17 (129.140.72.17)  300 ms  239 ms  239 ms
277*9b7a920aSLexi Winter12  * * *
278*9b7a920aSLexi Winter13  128.121.54.72 (128.121.54.72)  259 ms  499 ms  279 ms
279*9b7a920aSLexi Winter14  * * *
280*9b7a920aSLexi Winter15  * * *
281*9b7a920aSLexi Winter16  * * *
282*9b7a920aSLexi Winter17  * * *
283*9b7a920aSLexi Winter18  ALLSPICE.LCS.MIT.EDU (18.26.0.115)  339 ms  279 ms  279 ms
284*9b7a920aSLexi Winter.Ed
285*9b7a920aSLexi Winter.Pp
286*9b7a920aSLexi WinterNote that the gateways 12, 14, 15, 16 & 17 hops away either don't send ICMP
287*9b7a920aSLexi Winter"time exceeded" messages or send them with a TTL too small to reach us.
288*9b7a920aSLexi Winter14 \- 17 are running the MIT C Gateway code that doesn't send "time exceeded"s.
289*9b7a920aSLexi WinterGod only knows what's going on with 12.
290*9b7a920aSLexi Winter.Pp
291*9b7a920aSLexi WinterThe silent gateway 12 in the above may be the result of a bug in the 4.[23]BSD
292*9b7a920aSLexi Winternetwork code (and its derivatives):  4.x (x <= 3) sends an unreachable message
293*9b7a920aSLexi Winterusing whatever TTL remains in the original datagram.
294*9b7a920aSLexi WinterSince, for gateways, the remaining TTL is zero, the ICMP "time exceeded" is
295*9b7a920aSLexi Winterguaranteed to not make it back to us.
296*9b7a920aSLexi WinterThe behavior of this bug is slightly more interesting when it appears on the
297*9b7a920aSLexi Winterdestination system:
298*9b7a920aSLexi Winter.Bd -literal -offset 4n
299*9b7a920aSLexi Winter 1  helios.ee.lbl.gov (128.3.112.1)  0 ms  0 ms  0 ms
300*9b7a920aSLexi Winter 2  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  19 ms  39 ms
301*9b7a920aSLexi Winter 3  lilac-dmc.Berkeley.EDU (128.32.216.1)  19 ms  39 ms  19 ms
302*9b7a920aSLexi Winter 4  ccngw-ner-cc.Berkeley.EDU (128.32.136.23)  39 ms  40 ms  19 ms
303*9b7a920aSLexi Winter 5  ccn-nerif35.Berkeley.EDU (128.32.168.35)  39 ms  39 ms  39 ms
304*9b7a920aSLexi Winter 6  csgw.Berkeley.EDU (128.32.133.254)  39 ms  59 ms  39 ms
305*9b7a920aSLexi Winter 7  * * *
306*9b7a920aSLexi Winter 8  * * *
307*9b7a920aSLexi Winter 9  * * *
308*9b7a920aSLexi Winter10  * * *
309*9b7a920aSLexi Winter11  * * *
310*9b7a920aSLexi Winter12  * * *
311*9b7a920aSLexi Winter13  rip.Berkeley.EDU (128.32.131.22)  59 ms !  39 ms !  39 ms !
312*9b7a920aSLexi Winter.Ed
313*9b7a920aSLexi Winter.Pp
314*9b7a920aSLexi WinterNotice that there are 12 "gateways" (13 is the final destination) and exactly
315*9b7a920aSLexi Winterthe last half of them are "missing".
316*9b7a920aSLexi WinterWhat's really happening is that rip (a Sun-3 running Sun OS3.5) is using the
317*9b7a920aSLexi WinterTTL from our arriving datagram as the TTL in its ICMP reply.
318*9b7a920aSLexi WinterSo, the reply will time out on the return path (with no notice sent to anyone
319*9b7a920aSLexi Wintersince ICMP's aren't sent for ICMP's) until we probe with a TTL that's at least
320*9b7a920aSLexi Wintertwice the path length.
321*9b7a920aSLexi WinterI.e., rip is really only 7 hops away.
322*9b7a920aSLexi WinterA reply that returns with a TTL of 1 is a clue this problem exists.
323*9b7a920aSLexi Winter.Nm
324*9b7a920aSLexi Winterprints a "!" after the time if the TTL is <= 1.
325*9b7a920aSLexi WinterSince vendors ship a lot of obsolete
326*9b7a920aSLexi Winter.Pf ( DEC Ns \'s
327*9b7a920aSLexi WinterUltrix, Sun 3.x) or
328*9b7a920aSLexi Winternon-standard
329*9b7a920aSLexi Winter.Pq HP-UX
330*9b7a920aSLexi Wintersoftware, expect to see this problem frequently and/or take care picking the
331*9b7a920aSLexi Wintertarget host of your probes.
332*9b7a920aSLexi Winter.Pp
333*9b7a920aSLexi WinterOther possible annotations after the time are:
334*9b7a920aSLexi Winter.Bl -hang -offset indent -width 12n
335*9b7a920aSLexi Winter.It Sy !H
336*9b7a920aSLexi WinterHost unreachable.
337*9b7a920aSLexi Winter.It Sy !N
338*9b7a920aSLexi WinterNetwork unreachable.
339*9b7a920aSLexi Winter.It Sy !P
340*9b7a920aSLexi WinterProtocol unreachable.
341*9b7a920aSLexi Winter.It Sy !S
342*9b7a920aSLexi WinterSource route failed.
343*9b7a920aSLexi Winter.It Sy !F\-<pmtu>
344*9b7a920aSLexi WinterFragmentation needed.
345*9b7a920aSLexi WinterThe RFC1191 Path MTU Discovery value is displayed.
346*9b7a920aSLexi Winter.It Sy !U
347*9b7a920aSLexi WinterDestination network unknown.
348*9b7a920aSLexi Winter.It Sy !W
349*9b7a920aSLexi WinterDestination host unknown.
350*9b7a920aSLexi Winter.It Sy !I
351*9b7a920aSLexi WinterSource host is isolated.
352*9b7a920aSLexi Winter.It Sy !A
353*9b7a920aSLexi WinterCommunication with destination network administratively prohibited.
354*9b7a920aSLexi Winter.It Sy !Z
355*9b7a920aSLexi WinterCommunication with destination host administratively prohibited.
356*9b7a920aSLexi Winter.It Sy !Q
357*9b7a920aSLexi WinterFor this ToS the destination network is unreachable.
358*9b7a920aSLexi Winter.It Sy !T
359*9b7a920aSLexi WinterFor this ToS the destination host is unreachable.
360*9b7a920aSLexi Winter.It Sy !X
361*9b7a920aSLexi WinterCommunication administratively prohibited.
362*9b7a920aSLexi Winter.It Sy !V
363*9b7a920aSLexi WinterHost precedence violation.
364*9b7a920aSLexi Winter.It Sy !C
365*9b7a920aSLexi WinterPrecedence cutoff in effect.
366*9b7a920aSLexi Winter.It Sy !<num>
367*9b7a920aSLexi WinterICMP unreachable code <num>.
368*9b7a920aSLexi Winter.El
369*9b7a920aSLexi Winter.Pp
370*9b7a920aSLexi WinterThese are defined by RFC1812 (which supersedes RFC1716).
371*9b7a920aSLexi WinterIf almost all the probes result in some kind of unreachable,
372*9b7a920aSLexi Winter.Nm
373*9b7a920aSLexi Winterwill give up and exit.
374*9b7a920aSLexi Winter.Pp
375*9b7a920aSLexi WinterThis program is intended for use in network testing, measurement and
376*9b7a920aSLexi Wintermanagement.
377*9b7a920aSLexi WinterIt should be used primarily for manual fault isolation.
378*9b7a920aSLexi WinterBecause of the load it could impose on the network, it is unwise to use
379*9b7a920aSLexi Winter.Nm
380*9b7a920aSLexi Winterduring normal operations or from automated scripts.
381*9b7a920aSLexi Winter.Sh SEE ALSO
382*9b7a920aSLexi Winter.Xr netstat 1 ,
383*9b7a920aSLexi Winter.Xr ping 8 ,
384*9b7a920aSLexi Winter.Xr traceroute6 8
385*9b7a920aSLexi Winter.Sh AUTHORS
386*9b7a920aSLexi WinterImplemented by
387*9b7a920aSLexi Winter.An Van Jacobson
388*9b7a920aSLexi Winterfrom a suggestion by Steve Deering.
389*9b7a920aSLexi WinterDebugged by a cast of thousands with particularly cogent suggestions or fixes
390*9b7a920aSLexi Winterfrom C. Philip Wood, Tim Seaver and Ken Adelman.
391*9b7a920aSLexi Winter.Sh BUGS
392*9b7a920aSLexi WinterWhen using protocols other than UDP, functionality is reduced.
393*9b7a920aSLexi WinterIn particular, the last packet will often appear to be lost, because even
394*9b7a920aSLexi Winterthough it reaches the destination host, there's no way to know that because no
395*9b7a920aSLexi WinterICMP message is sent back.
396*9b7a920aSLexi WinterIn the TCP case,
397*9b7a920aSLexi Winter.Nm
398*9b7a920aSLexi Wintershould listen for a RST from the destination host (or an intermediate router
399*9b7a920aSLexi Winterthat's filtering packets), but this is not implemented yet.
400*9b7a920aSLexi Winter.Pp
401*9b7a920aSLexi WinterThe AS number capability reports information that may sometimes be inaccurate
402*9b7a920aSLexi Winterdue to discrepancies between the contents of the routing database server and
403*9b7a920aSLexi Winterthe current state of the Internet.
404