xref: /dflybsd-src/usr.sbin/traceroute/traceroute.8 (revision 63e031164e1a164287f8767633d5d0b4c72a4b64)
10382be72SJeroen Ruigrok/asmodai.\"	$OpenBSD: traceroute.8,v 1.36 2003/08/27 08:17:33 jmc Exp $
20382be72SJeroen Ruigrok/asmodai.\"	$NetBSD: traceroute.8,v 1.6 1995/10/12 03:05:50 mycroft Exp $
30382be72SJeroen Ruigrok/asmodai.\"
40382be72SJeroen Ruigrok/asmodai.\" Copyright (c) 1990, 1991, 1993
50382be72SJeroen Ruigrok/asmodai.\"	The Regents of the University of California.  All rights reserved.
60382be72SJeroen Ruigrok/asmodai.\"
70382be72SJeroen Ruigrok/asmodai.\" This code is derived from software contributed to Berkeley by
80382be72SJeroen Ruigrok/asmodai.\" Van Jacobson.
90382be72SJeroen Ruigrok/asmodai.\"
100382be72SJeroen Ruigrok/asmodai.\" Redistribution and use in source and binary forms, with or without
110382be72SJeroen Ruigrok/asmodai.\" modification, are permitted provided that the following conditions
120382be72SJeroen Ruigrok/asmodai.\" are met:
130382be72SJeroen Ruigrok/asmodai.\" 1. Redistributions of source code must retain the above copyright
140382be72SJeroen Ruigrok/asmodai.\"    notice, this list of conditions and the following disclaimer.
150382be72SJeroen Ruigrok/asmodai.\" 2. Redistributions in binary form must reproduce the above copyright
160382be72SJeroen Ruigrok/asmodai.\"    notice, this list of conditions and the following disclaimer in the
170382be72SJeroen Ruigrok/asmodai.\"    documentation and/or other materials provided with the distribution.
180382be72SJeroen Ruigrok/asmodai.\" 3. Neither the name of the University nor the names of its contributors
190382be72SJeroen Ruigrok/asmodai.\"    may be used to endorse or promote products derived from this software
200382be72SJeroen Ruigrok/asmodai.\"    without specific prior written permission.
210382be72SJeroen Ruigrok/asmodai.\"
220382be72SJeroen Ruigrok/asmodai.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
230382be72SJeroen Ruigrok/asmodai.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
240382be72SJeroen Ruigrok/asmodai.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
250382be72SJeroen Ruigrok/asmodai.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
260382be72SJeroen Ruigrok/asmodai.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
270382be72SJeroen Ruigrok/asmodai.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
280382be72SJeroen Ruigrok/asmodai.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
290382be72SJeroen Ruigrok/asmodai.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
300382be72SJeroen Ruigrok/asmodai.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
310382be72SJeroen Ruigrok/asmodai.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
320382be72SJeroen Ruigrok/asmodai.\" SUCH DAMAGE.
330382be72SJeroen Ruigrok/asmodai.\"
340382be72SJeroen Ruigrok/asmodai.\"	@(#)traceroute.8	8.1 (Berkeley) 6/6/93
350382be72SJeroen Ruigrok/asmodai.\"
367c8d170eSAaron LI.Dd June 26, 2020
370382be72SJeroen Ruigrok/asmodai.Dt TRACEROUTE 8
380382be72SJeroen Ruigrok/asmodai.Os
390382be72SJeroen Ruigrok/asmodai.Sh NAME
400382be72SJeroen Ruigrok/asmodai.Nm traceroute
410382be72SJeroen Ruigrok/asmodai.Nd print the route packets take to network host
420382be72SJeroen Ruigrok/asmodai.Sh SYNOPSIS
439b5a9965SSascha Wildner.Nm
440382be72SJeroen Ruigrok/asmodai.Bk -words
4546877004SHasso Tepper.Op Fl cdDIlMnrSv
460382be72SJeroen Ruigrok/asmodai.Op Fl f Ar first_ttl
470382be72SJeroen Ruigrok/asmodai.Op Fl g Ar gateway_addr
480382be72SJeroen Ruigrok/asmodai.Op Fl m Ar max_ttl
490382be72SJeroen Ruigrok/asmodai.Op Fl p Ar port
500382be72SJeroen Ruigrok/asmodai.Op Fl P Ar proto
510382be72SJeroen Ruigrok/asmodai.Op Fl q Ar nqueries
520382be72SJeroen Ruigrok/asmodai.Op Fl s Ar src_addr
530382be72SJeroen Ruigrok/asmodai.Op Fl t Ar tos
540382be72SJeroen Ruigrok/asmodai.Op Fl w Ar waittime
550382be72SJeroen Ruigrok/asmodai.Ar host
560382be72SJeroen Ruigrok/asmodai.Op Ar packetsize
570382be72SJeroen Ruigrok/asmodai.Ek
580382be72SJeroen Ruigrok/asmodai.Sh DESCRIPTION
590382be72SJeroen Ruigrok/asmodaiThe Internet is a large and complex aggregation of
600382be72SJeroen Ruigrok/asmodainetwork hardware, connected together by gateways.
610382be72SJeroen Ruigrok/asmodaiTracking the route one's packets follow (or finding the miscreant
620382be72SJeroen Ruigrok/asmodaigateway that's discarding your packets) can be difficult.
630382be72SJeroen Ruigrok/asmodai.Nm
640382be72SJeroen Ruigrok/asmodaiutilizes the IP protocol `time to live' field and attempts to elicit an
650382be72SJeroen Ruigrok/asmodai.Tn ICMP
660382be72SJeroen Ruigrok/asmodai.Dv TIME_EXCEEDED
670382be72SJeroen Ruigrok/asmodairesponse from each gateway along the path to some
680382be72SJeroen Ruigrok/asmodaihost.
690382be72SJeroen Ruigrok/asmodai.Pp
700382be72SJeroen Ruigrok/asmodaiThe only mandatory parameter is the destination host name or IP number.
710382be72SJeroen Ruigrok/asmodaiThe default probe datagram length is 38 bytes, but this may be increased
720382be72SJeroen Ruigrok/asmodaiby specifying a packet size (in bytes) after the destination host
730382be72SJeroen Ruigrok/asmodainame.
740382be72SJeroen Ruigrok/asmodai.Pp
750382be72SJeroen Ruigrok/asmodaiThe options are as follows:
760382be72SJeroen Ruigrok/asmodai.Bl -tag -width Ds
770382be72SJeroen Ruigrok/asmodai.It Fl c
780382be72SJeroen Ruigrok/asmodaiDo not increment the destination port number in successive UDP packets.
790382be72SJeroen Ruigrok/asmodaiRather, all UDP packets will have the same destination port, as set via the
800382be72SJeroen Ruigrok/asmodai.Fl p
810382be72SJeroen Ruigrok/asmodaiflag (or 33434 if none is specified).
820382be72SJeroen Ruigrok/asmodai.It Fl d
830382be72SJeroen Ruigrok/asmodaiTurn on socket-level debugging.
840382be72SJeroen Ruigrok/asmodai.It Fl D
850382be72SJeroen Ruigrok/asmodaiDump the packet data to standard error before transmitting it.
860382be72SJeroen Ruigrok/asmodai.It Fl f Ar first_ttl
870382be72SJeroen Ruigrok/asmodaiSet the first time-to-live used in outgoing probe packets. The effect is that
880382be72SJeroen Ruigrok/asmodaithe first first_ttl - 1 hosts will be skipped in the output of
899b5a9965SSascha Wildner.Nm .
900382be72SJeroen Ruigrok/asmodaiThe default value is 1 (skip no hosts).
910382be72SJeroen Ruigrok/asmodai.It Fl g Ar gateway_addr
920382be72SJeroen Ruigrok/asmodaiAdd
930382be72SJeroen Ruigrok/asmodai.Ar gateway_addr
940382be72SJeroen Ruigrok/asmodaito the list of addresses in the IP Loose Source Record Route (LSRR)
950382be72SJeroen Ruigrok/asmodaioption.
960382be72SJeroen Ruigrok/asmodaiIf no gateways are specified, the LSRR option is omitted.
970382be72SJeroen Ruigrok/asmodai.It Fl I
980382be72SJeroen Ruigrok/asmodaiEquivalent to
990382be72SJeroen Ruigrok/asmodai.Fl P
1000382be72SJeroen Ruigrok/asmodai1.
1010382be72SJeroen Ruigrok/asmodaiUsed for compatibility with other OSes.
1020382be72SJeroen Ruigrok/asmodai.It Fl l
1030382be72SJeroen Ruigrok/asmodaiDisplay the ttl value of the returned packet.
1040382be72SJeroen Ruigrok/asmodaiThis is useful for checking for asymmetric routing.
1050382be72SJeroen Ruigrok/asmodai.It Fl m Ar max_ttl
1060382be72SJeroen Ruigrok/asmodaiSet the max time-to-live (max number of hops) used in outgoing probe
1070382be72SJeroen Ruigrok/asmodaipackets.
1080382be72SJeroen Ruigrok/asmodaiThe default is the value of the system's
109e9c76aafSSascha Wildner.Va net.inet.ip.ttl
1100382be72SJeroen Ruigrok/asmodaiMIB variable, which defaults to 64.
11146877004SHasso Tepper.It Fl M
11246877004SHasso TepperIf found, show the MPLS Label and the Experimental (EXP) bit for the hop.
1130382be72SJeroen Ruigrok/asmodai.It Fl n
1140382be72SJeroen Ruigrok/asmodaiPrint hop addresses numerically rather than symbolically and numerically
1150382be72SJeroen Ruigrok/asmodai(saves a nameserver address-to-name lookup for each gateway found on the
1160382be72SJeroen Ruigrok/asmodaipath).
1170382be72SJeroen Ruigrok/asmodai.It Fl p Ar port
1180382be72SJeroen Ruigrok/asmodaiSet the base
1190382be72SJeroen Ruigrok/asmodai.Tn UDP
1200382be72SJeroen Ruigrok/asmodai.Ar port
1210382be72SJeroen Ruigrok/asmodainumber used in probes (default is 33434).
1220382be72SJeroen Ruigrok/asmodai.Nm
1230382be72SJeroen Ruigrok/asmodaihopes that nothing is listening on
1240382be72SJeroen Ruigrok/asmodai.Tn UDP
1250382be72SJeroen Ruigrok/asmodaiports
1260382be72SJeroen Ruigrok/asmodai.Em base
1270382be72SJeroen Ruigrok/asmodaito
1280382be72SJeroen Ruigrok/asmodai.Em base+nhops*nqueries-1
1290382be72SJeroen Ruigrok/asmodaiat the destination host (so an
1300382be72SJeroen Ruigrok/asmodai.Tn ICMP
1310382be72SJeroen Ruigrok/asmodai.Dv PORT_UNREACHABLE
1320382be72SJeroen Ruigrok/asmodaimessage will
1330382be72SJeroen Ruigrok/asmodaibe returned to terminate the route tracing).
1340382be72SJeroen Ruigrok/asmodaiIf something is
1350382be72SJeroen Ruigrok/asmodailistening on a port in the default range, this option can be used
1360382be72SJeroen Ruigrok/asmodaito pick an unused port range.
1370382be72SJeroen Ruigrok/asmodai.It Fl P Ar proto
1380382be72SJeroen Ruigrok/asmodaiChange the protocol being used from
1390382be72SJeroen Ruigrok/asmodai.Tn UDP
1400382be72SJeroen Ruigrok/asmodaito a numeric protocol or a name as specified in
1410382be72SJeroen Ruigrok/asmodai.Pa /etc/protocols .
1420382be72SJeroen Ruigrok/asmodaiThis will not work reliably for most protocols.
1430382be72SJeroen Ruigrok/asmodaiIf set to 1 (ICMP), then
1440382be72SJeroen Ruigrok/asmodaiICMP Echo Request messages will be used (same as
1450382be72SJeroen Ruigrok/asmodai.Xr ping 8 ) .
1460382be72SJeroen Ruigrok/asmodai.It Fl q Ar nqueries
1470382be72SJeroen Ruigrok/asmodaiSet the number of probes per ``ttl'' to
1480382be72SJeroen Ruigrok/asmodai.Ar nqueries
1490382be72SJeroen Ruigrok/asmodai(default is three probes).
1500382be72SJeroen Ruigrok/asmodai.It Fl r
1510382be72SJeroen Ruigrok/asmodaiBypass the normal routing tables and send directly to a host on an attached
1520382be72SJeroen Ruigrok/asmodainetwork.
1530382be72SJeroen Ruigrok/asmodaiIf the host is not on a directly attached network,
1540382be72SJeroen Ruigrok/asmodaian error is returned.
1550382be72SJeroen Ruigrok/asmodaiThis option can be used to ping a local host through an interface
1560382be72SJeroen Ruigrok/asmodaithat has no route through it (e.g., after the interface was dropped by
1570382be72SJeroen Ruigrok/asmodai.Xr routed 8 ) .
1580382be72SJeroen Ruigrok/asmodai.It Fl s Ar src_addr
1590382be72SJeroen Ruigrok/asmodaiUse the following IP address
1600382be72SJeroen Ruigrok/asmodai(which must be given as an IP number, not
1610382be72SJeroen Ruigrok/asmodaia hostname) as the source address in outgoing probe packets.
1620382be72SJeroen Ruigrok/asmodaiOn hosts with more than one IP address, this option can be used to
1630382be72SJeroen Ruigrok/asmodaiforce the source address to be something other than the IP address
1640382be72SJeroen Ruigrok/asmodaiof the interface the probe packet is sent on.
1650382be72SJeroen Ruigrok/asmodaiIf the IP address
1660382be72SJeroen Ruigrok/asmodaiis not one of this machine's interface addresses and the user is
1670382be72SJeroen Ruigrok/asmodainot the superuser, an error is returned and nothing is sent.
1680382be72SJeroen Ruigrok/asmodai.It Fl S
1690382be72SJeroen Ruigrok/asmodaiPrint how many probes were not answered for each hop.
1700382be72SJeroen Ruigrok/asmodai.It Fl t Ar tos
1710382be72SJeroen Ruigrok/asmodaiSet the
1720382be72SJeroen Ruigrok/asmodai.Em type-of-service
1730382be72SJeroen Ruigrok/asmodaiin probe packets to the following value (default zero).
1740382be72SJeroen Ruigrok/asmodaiThe value must be a decimal integer in the range 0 to 255.
1750382be72SJeroen Ruigrok/asmodaiThis option can be used to
1760382be72SJeroen Ruigrok/asmodaisee if different types-of-service result in different paths.
1770382be72SJeroen Ruigrok/asmodai(If you are not running a
1780382be72SJeroen Ruigrok/asmodai.Bx 4.3 tahoe
1790382be72SJeroen Ruigrok/asmodaior later system, this may be academic since the normal network
1800382be72SJeroen Ruigrok/asmodaiservices like telnet and ftp don't let you control the
1810382be72SJeroen Ruigrok/asmodai.Dv TOS ) .
1820382be72SJeroen Ruigrok/asmodaiNot all values of
1830382be72SJeroen Ruigrok/asmodai.Dv TOS
1840382be72SJeroen Ruigrok/asmodaiare legal or
1850382be72SJeroen Ruigrok/asmodaimeaningful \- see the IP spec for definitions.
1860382be72SJeroen Ruigrok/asmodaiUseful values are probably
1870382be72SJeroen Ruigrok/asmodai.Ql -t 16
1880382be72SJeroen Ruigrok/asmodai(low delay) and
1890382be72SJeroen Ruigrok/asmodai.Ql -t 8
1900382be72SJeroen Ruigrok/asmodai(high throughput).
1910382be72SJeroen Ruigrok/asmodai.It Fl v
1920382be72SJeroen Ruigrok/asmodaiVerbose output.
1930382be72SJeroen Ruigrok/asmodaiReceived
1940382be72SJeroen Ruigrok/asmodai.Tn ICMP
1950382be72SJeroen Ruigrok/asmodaipackets other than
1960382be72SJeroen Ruigrok/asmodai.Dv TIME_EXCEEDED
1970382be72SJeroen Ruigrok/asmodaiand
1980382be72SJeroen Ruigrok/asmodai.Dv UNREACHABLE Ns s
1990382be72SJeroen Ruigrok/asmodaiare listed.
2000382be72SJeroen Ruigrok/asmodai.It Fl w Ar waittime
2010382be72SJeroen Ruigrok/asmodaiSet the time (in seconds) to wait for a response to a probe (default 3).
2020382be72SJeroen Ruigrok/asmodai.El
2030382be72SJeroen Ruigrok/asmodai.Pp
2040382be72SJeroen Ruigrok/asmodaiThis program attempts to trace the route an IP packet would follow to some
2050382be72SJeroen Ruigrok/asmodaiinternet host by launching
2060382be72SJeroen Ruigrok/asmodai.Tn UDP
2070382be72SJeroen Ruigrok/asmodaiprobe
2080382be72SJeroen Ruigrok/asmodaipackets with a small ttl (time to live) then listening for an
2090382be72SJeroen Ruigrok/asmodai.Tn ICMP
2100382be72SJeroen Ruigrok/asmodai"time exceeded" reply from a gateway.
2110382be72SJeroen Ruigrok/asmodaiWe start out probes with a ttl of one and increase by one until we get an
2120382be72SJeroen Ruigrok/asmodai.Tn ICMP
2130382be72SJeroen Ruigrok/asmodai"port unreachable"
2140382be72SJeroen Ruigrok/asmodai(which means we got to "host") or hit a max (which
2150382be72SJeroen Ruigrok/asmodaidefaults to 64 hops and can be changed with the
2160382be72SJeroen Ruigrok/asmodai.Fl m
2170382be72SJeroen Ruigrok/asmodaiflag).
2180382be72SJeroen Ruigrok/asmodaiThree probes (changed with
2190382be72SJeroen Ruigrok/asmodai.Fl q
2200382be72SJeroen Ruigrok/asmodaiflag) are sent at each ttl setting and a
2210382be72SJeroen Ruigrok/asmodailine is printed showing the ttl, address of the gateway and
2220382be72SJeroen Ruigrok/asmodairound trip time of each probe.
2230382be72SJeroen Ruigrok/asmodaiIf the probe answers come from
2240382be72SJeroen Ruigrok/asmodaidifferent gateways, the address of each responding system will
2250382be72SJeroen Ruigrok/asmodaibe printed.
2260382be72SJeroen Ruigrok/asmodaiIf there is no response within a 5 sec. timeout
2270382be72SJeroen Ruigrok/asmodaiinterval (changed with the
2280382be72SJeroen Ruigrok/asmodai.Fl w
2290382be72SJeroen Ruigrok/asmodaiflag), a "*" is printed for that
2300382be72SJeroen Ruigrok/asmodaiprobe.
2310382be72SJeroen Ruigrok/asmodai.Pp
2320382be72SJeroen Ruigrok/asmodaiWe don't want the destination
2330382be72SJeroen Ruigrok/asmodaihost to process the
2340382be72SJeroen Ruigrok/asmodai.Tn UDP
2350382be72SJeroen Ruigrok/asmodaiprobe packets so the destination port is set to an
2360382be72SJeroen Ruigrok/asmodaiunlikely value (if some clod on the destination is using that
2370382be72SJeroen Ruigrok/asmodaivalue, it can be changed with the
2380382be72SJeroen Ruigrok/asmodai.Fl p
2390382be72SJeroen Ruigrok/asmodaiflag).
2400382be72SJeroen Ruigrok/asmodai.Pp
2410382be72SJeroen Ruigrok/asmodaiA sample use and output might be:
2420382be72SJeroen Ruigrok/asmodai.Bd -literal -offset indent
2430382be72SJeroen Ruigrok/asmodai$ traceroute nis.nsf.net.
2440382be72SJeroen Ruigrok/asmodaitraceroute to nis.nsf.net (35.1.1.48), 64 hops max, 56 byte packet
2450382be72SJeroen Ruigrok/asmodai1  helios.ee.lbl.gov (128.3.112.1)  19 ms  19 ms  0 ms
2460382be72SJeroen Ruigrok/asmodai2  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  39 ms  19 ms
2470382be72SJeroen Ruigrok/asmodai3  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  39 ms  19 ms
2480382be72SJeroen Ruigrok/asmodai4  ccngw-ner-cc.Berkeley.EDU (128.32.136.23)  39 ms  40 ms  39 ms
2490382be72SJeroen Ruigrok/asmodai5  ccn-nerif22.Berkeley.EDU (128.32.168.22)  39 ms  39 ms  39 ms
2500382be72SJeroen Ruigrok/asmodai6  128.32.197.4 (128.32.197.4)  40 ms  59 ms  59 ms
2510382be72SJeroen Ruigrok/asmodai7  131.119.2.5 (131.119.2.5)  59 ms  59 ms  59 ms
2520382be72SJeroen Ruigrok/asmodai8  129.140.70.13 (129.140.70.13)  99 ms  99 ms  80 ms
2530382be72SJeroen Ruigrok/asmodai9  129.140.71.6 (129.140.71.6)  139 ms  239 ms  319 ms
2540382be72SJeroen Ruigrok/asmodai10  129.140.81.7 (129.140.81.7)  220 ms  199 ms  199 ms
2550382be72SJeroen Ruigrok/asmodai11  nic.merit.edu (35.1.1.48)  239 ms  239 ms  239 ms
2560382be72SJeroen Ruigrok/asmodai.Ed
2570382be72SJeroen Ruigrok/asmodai.Pp
2580382be72SJeroen Ruigrok/asmodaiNote that lines 2 & 3 are the same.
2590382be72SJeroen Ruigrok/asmodaiThis is due to a buggy
260495d962aSJoerg Sonnenbergerkernel on the 2nd hop system \- lilac-dmc.Berkeley.EDU \- that forwards
2610382be72SJeroen Ruigrok/asmodaipackets with a zero ttl (a bug in the distributed version
2620382be72SJeroen Ruigrok/asmodaiof 4.3
2630382be72SJeroen Ruigrok/asmodai.Tn BSD ) .
2640382be72SJeroen Ruigrok/asmodaiNote that you have to guess what path
2650382be72SJeroen Ruigrok/asmodaithe packets are taking cross-country since the
2660382be72SJeroen Ruigrok/asmodai.Tn NSFNET
2670382be72SJeroen Ruigrok/asmodai(129.140)
2680382be72SJeroen Ruigrok/asmodaidoesn't supply address-to-name translations for its
2690382be72SJeroen Ruigrok/asmodai.Tn NSS Ns es .
2700382be72SJeroen Ruigrok/asmodai.Pp
2710382be72SJeroen Ruigrok/asmodaiA more interesting example is:
2720382be72SJeroen Ruigrok/asmodai.Bd -literal -offset indent
2730382be72SJeroen Ruigrok/asmodai$ traceroute allspice.lcs.mit.edu.
2740382be72SJeroen Ruigrok/asmodaitraceroute to allspice.lcs.mit.edu (18.26.0.115), 64 hops max
2750382be72SJeroen Ruigrok/asmodai1  helios.ee.lbl.gov (128.3.112.1)  0 ms  0 ms  0 ms
2760382be72SJeroen Ruigrok/asmodai2  lilac-dmc.Berkeley.EDU (128.32.216.1)  19 ms  19 ms  19 ms
2770382be72SJeroen Ruigrok/asmodai3  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  19 ms  19 ms
2780382be72SJeroen Ruigrok/asmodai4  ccngw-ner-cc.Berkeley.EDU (128.32.136.23)  19 ms  39 ms  39 ms
2790382be72SJeroen Ruigrok/asmodai5  ccn-nerif22.Berkeley.EDU (128.32.168.22)  20 ms  39 ms  39 ms
2800382be72SJeroen Ruigrok/asmodai6  128.32.197.4 (128.32.197.4)  59 ms  119 ms  39 ms
2810382be72SJeroen Ruigrok/asmodai7  131.119.2.5 (131.119.2.5)  59 ms  59 ms  39 ms
2820382be72SJeroen Ruigrok/asmodai8  129.140.70.13 (129.140.70.13)  80 ms  79 ms  99 ms
2830382be72SJeroen Ruigrok/asmodai9  129.140.71.6 (129.140.71.6)  139 ms  139 ms  159 ms
2840382be72SJeroen Ruigrok/asmodai10  129.140.81.7 (129.140.81.7)  199 ms  180 ms  300 ms
2850382be72SJeroen Ruigrok/asmodai11  129.140.72.17 (129.140.72.17)  300 ms  239 ms  239 ms
2860382be72SJeroen Ruigrok/asmodai12  * * *
2870382be72SJeroen Ruigrok/asmodai13  128.121.54.72 (128.121.54.72)  259 ms  499 ms  279 ms
2880382be72SJeroen Ruigrok/asmodai14  * * *
2890382be72SJeroen Ruigrok/asmodai15  * * *
2900382be72SJeroen Ruigrok/asmodai16  * * *
2910382be72SJeroen Ruigrok/asmodai17  * * *
2920382be72SJeroen Ruigrok/asmodai18  ALLSPICE.LCS.MIT.EDU (18.26.0.115)  339 ms  279 ms  279 ms
2930382be72SJeroen Ruigrok/asmodai.Ed
2940382be72SJeroen Ruigrok/asmodai.Pp
2950382be72SJeroen Ruigrok/asmodaiNote that the gateways 12, 14, 15, 16 & 17 hops away
2960382be72SJeroen Ruigrok/asmodaieither don't send
2970382be72SJeroen Ruigrok/asmodai.Tn ICMP
2980382be72SJeroen Ruigrok/asmodai"time exceeded" messages or send them
2990382be72SJeroen Ruigrok/asmodaiwith a ttl too small to reach us.
3000382be72SJeroen Ruigrok/asmodai14 \- 17 are running the
3010382be72SJeroen Ruigrok/asmodai.Tn MIT
3020382be72SJeroen Ruigrok/asmodaiC Gateway code that doesn't send "time exceeded"s.
3030382be72SJeroen Ruigrok/asmodaiGod only knows what's going on with 12.
3040382be72SJeroen Ruigrok/asmodai.Pp
3050382be72SJeroen Ruigrok/asmodaiThe silent gateway 12 in the above may be the result of a bug in
3060382be72SJeroen Ruigrok/asmodaithe 4.[23]
3070382be72SJeroen Ruigrok/asmodai.Tn BSD
308aa0d550aSSascha Wildnernetwork code (and its derivatives):  4.x (x \(<= 3)
3090382be72SJeroen Ruigrok/asmodaisends an unreachable message using whatever ttl remains in the
3100382be72SJeroen Ruigrok/asmodaioriginal datagram.
3110382be72SJeroen Ruigrok/asmodaiSince, for gateways, the remaining ttl is zero, the
3120382be72SJeroen Ruigrok/asmodai.Tn ICMP
3130382be72SJeroen Ruigrok/asmodai"time exceeded" is guaranteed to not make it back to us.
3140382be72SJeroen Ruigrok/asmodaiThe behavior of this bug is slightly more interesting
3150382be72SJeroen Ruigrok/asmodaiwhen it appears on the destination system:
3160382be72SJeroen Ruigrok/asmodai.Bd -literal -offset indent
3170382be72SJeroen Ruigrok/asmodai1  helios.ee.lbl.gov (128.3.112.1)  0 ms  0 ms  0 ms
3180382be72SJeroen Ruigrok/asmodai2  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  19 ms  39 ms
3190382be72SJeroen Ruigrok/asmodai3  lilac-dmc.Berkeley.EDU (128.32.216.1)  19 ms  39 ms  19 ms
3200382be72SJeroen Ruigrok/asmodai4  ccngw-ner-cc.Berkeley.EDU (128.32.136.23)  39 ms  40 ms  19 ms
3210382be72SJeroen Ruigrok/asmodai5  ccn-nerif35.Berkeley.EDU (128.32.168.35)  39 ms  39 ms  39 ms
3220382be72SJeroen Ruigrok/asmodai6  csgw.Berkeley.EDU (128.32.133.254)  39 ms  59 ms  39 ms
3230382be72SJeroen Ruigrok/asmodai7  * * *
3240382be72SJeroen Ruigrok/asmodai8  * * *
3250382be72SJeroen Ruigrok/asmodai9  * * *
3260382be72SJeroen Ruigrok/asmodai10  * * *
3270382be72SJeroen Ruigrok/asmodai11  * * *
3280382be72SJeroen Ruigrok/asmodai12  * * *
3290382be72SJeroen Ruigrok/asmodai13  rip.Berkeley.EDU (128.32.131.22)  59 ms !  39 ms !  39 ms !
3300382be72SJeroen Ruigrok/asmodai.Ed
3310382be72SJeroen Ruigrok/asmodai.Pp
3320382be72SJeroen Ruigrok/asmodaiNotice that there are 12 "gateways" (13 is the final
3330382be72SJeroen Ruigrok/asmodaidestination) and exactly the last half of them are "missing".
3340382be72SJeroen Ruigrok/asmodaiWhat's really happening is that rip (a Sun-3 running Sun OS3.5)
3350382be72SJeroen Ruigrok/asmodaiis using the ttl from our arriving datagram as the ttl in its
3360382be72SJeroen Ruigrok/asmodai.Tn ICMP
3370382be72SJeroen Ruigrok/asmodaireply.
3380382be72SJeroen Ruigrok/asmodaiSo, the reply will time out on the return path
3390382be72SJeroen Ruigrok/asmodai(with no notice sent to anyone since
3400382be72SJeroen Ruigrok/asmodai.Tn ICMP's
3410382be72SJeroen Ruigrok/asmodaiaren't sent for
3420382be72SJeroen Ruigrok/asmodai.Tn ICMP's )
3430382be72SJeroen Ruigrok/asmodaiuntil we probe with a ttl that's at least twice the path
3440382be72SJeroen Ruigrok/asmodailength.
3450382be72SJeroen Ruigrok/asmodaii.e., rip is really only 7 hops away.
3460382be72SJeroen Ruigrok/asmodaiA reply that returns with a ttl of 1 is a clue this problem exists.
3470382be72SJeroen Ruigrok/asmodai.Nm
348aa0d550aSSascha Wildnerprints a "!" after the time if the ttl is \(<= 1.
3490382be72SJeroen Ruigrok/asmodaiSince vendors ship a lot of obsolete
3500382be72SJeroen Ruigrok/asmodai.Pf ( Tn DEC Ns \'s
3510382be72SJeroen Ruigrok/asmodaiUltrix, Sun 3.x) or
3520382be72SJeroen Ruigrok/asmodainon-standard
3530382be72SJeroen Ruigrok/asmodai.Pq Tn HP-UX
3540382be72SJeroen Ruigrok/asmodaisoftware, expect to see this problem
3550382be72SJeroen Ruigrok/asmodaifrequently and/or take care picking the target host of your
3560382be72SJeroen Ruigrok/asmodaiprobes.
3570382be72SJeroen Ruigrok/asmodai.Pp
3580382be72SJeroen Ruigrok/asmodaiOther possible annotations after the time are
3590382be72SJeroen Ruigrok/asmodai.Sy !H ,
3600382be72SJeroen Ruigrok/asmodai.Sy !N ,
3610382be72SJeroen Ruigrok/asmodai.Sy !P
3620382be72SJeroen Ruigrok/asmodai(got a host, network or protocol unreachable, respectively),
3630382be72SJeroen Ruigrok/asmodai.Sy !A ,
3640382be72SJeroen Ruigrok/asmodai.Sy !C
3650382be72SJeroen Ruigrok/asmodai(access to the network or host, respectively, is prohibited),
3660382be72SJeroen Ruigrok/asmodai.Sy !X
3670382be72SJeroen Ruigrok/asmodai(communication administratively prohibited by filtering),
3680382be72SJeroen Ruigrok/asmodai.Sy !S
3690382be72SJeroen Ruigrok/asmodaior
3700382be72SJeroen Ruigrok/asmodai.Sy !F
3710382be72SJeroen Ruigrok/asmodai(source route failed or fragmentation needed \- neither of these should
3720382be72SJeroen Ruigrok/asmodaiever occur and the associated gateway is busted if you see one),
3730382be72SJeroen Ruigrok/asmodai.Sy !U
3740382be72SJeroen Ruigrok/asmodai(destination network or host unknown),
3750382be72SJeroen Ruigrok/asmodai.Sy !T
3760382be72SJeroen Ruigrok/asmodai(destination network or host unreachable for TOS),
3770382be72SJeroen Ruigrok/asmodai.Sy !<code>
3780382be72SJeroen Ruigrok/asmodai(other ICMP unreachable code).
3790382be72SJeroen Ruigrok/asmodaiIf almost all the probes result in some kind of unreachable,
3800382be72SJeroen Ruigrok/asmodai.Nm
3810382be72SJeroen Ruigrok/asmodaiwill give up and exit.
3820382be72SJeroen Ruigrok/asmodai.Pp
3830382be72SJeroen Ruigrok/asmodai.Dl $ traceroute -g 10.3.0.5 128.182.0.0
3840382be72SJeroen Ruigrok/asmodai.Pp
3850382be72SJeroen Ruigrok/asmodaiwill show the path from the Cambridge Mailbridge to PSC, while
3860382be72SJeroen Ruigrok/asmodai.Pp
3870382be72SJeroen Ruigrok/asmodai.Dl $ traceroute -g 192.5.146.4 -g 10.3.0.5 35.0.0.0
3880382be72SJeroen Ruigrok/asmodai.Pp
3890382be72SJeroen Ruigrok/asmodaiwill show the path from the Cambridge Mailbridge to Merit, using PSC to
3900382be72SJeroen Ruigrok/asmodaireach the Mailbridge.
3910382be72SJeroen Ruigrok/asmodai.Pp
3920382be72SJeroen Ruigrok/asmodaiThis program is intended for use in network testing, measurement
3930382be72SJeroen Ruigrok/asmodaiand management.
3940382be72SJeroen Ruigrok/asmodaiIt should be used primarily for manual fault isolation.
3950382be72SJeroen Ruigrok/asmodaiBecause of the load it could impose on the network, it is unwise to use
3960382be72SJeroen Ruigrok/asmodai.Nm
3970382be72SJeroen Ruigrok/asmodaiduring normal operations or from automated scripts.
3980382be72SJeroen Ruigrok/asmodai.Sh SEE ALSO
3990382be72SJeroen Ruigrok/asmodai.Xr netstat 1 ,
4007c8d170eSAaron LI.Xr ping 8 ,
4017c8d170eSAaron LI.Xr ping6 8 ,
4027c8d170eSAaron LI.Xr traceroute6 8
4030382be72SJeroen Ruigrok/asmodai.Sh HISTORY
4040382be72SJeroen Ruigrok/asmodaiThe very first
4050382be72SJeroen Ruigrok/asmodai.Nm
4060382be72SJeroen Ruigrok/asmodai(never released) used ICMP ECHO_REQUEST
4070382be72SJeroen Ruigrok/asmodaidatagrams as probe packets.  During the first night of testing it was
4080382be72SJeroen Ruigrok/asmodaidiscovered that more than half the router vendors of the time would
4090382be72SJeroen Ruigrok/asmodainot return an ICMP TIME_EXCEEDED for an ECHO_REQUEST.
4100382be72SJeroen Ruigrok/asmodai.Nm
4110382be72SJeroen Ruigrok/asmodaiwas then changed to use UDP probe packets.
4120382be72SJeroen Ruigrok/asmodaiMost modern TCP/IP implementations will now generate an ICMP error
4130382be72SJeroen Ruigrok/asmodaimessage to ICMP query messages, and the option to use ECHO_REQUEST probes
4140382be72SJeroen Ruigrok/asmodaiwas re-implemented.
4150382be72SJeroen Ruigrok/asmodai.Pp
4160382be72SJeroen Ruigrok/asmodaiThe
4170382be72SJeroen Ruigrok/asmodai.Nm
4180382be72SJeroen Ruigrok/asmodaicommand first appeared in
4190382be72SJeroen Ruigrok/asmodai.Bx 4.4 .
4200382be72SJeroen Ruigrok/asmodai.Sh AUTHORS
421*63e03116SSascha Wildner.An -nosplit
422*63e03116SSascha WildnerImplemented by
423*63e03116SSascha Wildner.An Van Jacobson
424*63e03116SSascha Wildnerfrom a suggestion by
425*63e03116SSascha Wildner.An Steve Deering .
4260382be72SJeroen Ruigrok/asmodaiDebugged
4270382be72SJeroen Ruigrok/asmodaiby a cast of thousands with particularly cogent suggestions or fixes from
428*63e03116SSascha Wildner.An C. Philip Wood ,
429*63e03116SSascha Wildner.An Tim Seaver
430*63e03116SSascha Wildnerand
431*63e03116SSascha Wildner.An Ken Adelman .
432