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