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