Fix conflicts.
This commit is contained in:
parent
3bf140db34
commit
89ab9fcd0f
@ -1,9 +1,18 @@
|
||||
# $NetBSD: Makefile,v 1.5 1995/03/26 21:45:18 glass Exp $
|
||||
# @(#)Makefile 8.1 (Berkeley) 6/6/93
|
||||
# $NetBSD: Makefile,v 1.6 1997/10/04 16:31:24 christos Exp $
|
||||
|
||||
WARNS?= 1
|
||||
PROG= traceroute
|
||||
MAN= traceroute.8
|
||||
BINOWN= root
|
||||
|
||||
CFLAGS+=-DHAVE_MALLOC_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SOCKIO_H=1
|
||||
CFLAGS+=-DHAVE_STRERROR=1 -DHAVE_SETLINEBUF=1 -DHAVE_SOCKADDR_SA_LEN=1
|
||||
|
||||
BINOWN= root
|
||||
BINMODE=4555
|
||||
|
||||
SRCS= traceroute.c savestr.c ifaddrlist.c
|
||||
SRCS+= version.c
|
||||
|
||||
AWKS= median.awk mean.awk
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
@ -1,42 +1,5 @@
|
||||
#!/bin/awk -f
|
||||
# $NetBSD: mean.awk,v 1.4 1995/03/27 02:24:13 glass Exp $
|
||||
#
|
||||
# Copyright (c) 1990, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# This code is derived from software contributed to Berkeley by
|
||||
# Van Jacobson.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# @(#)mean.awk 8.1 (Berkeley) 6/6/93
|
||||
#
|
||||
# $NetBSD: mean.awk,v 1.5 1997/10/04 16:31:29 christos Exp $
|
||||
/^ *[0-9]/ {
|
||||
# print out the average time to each hop along a route.
|
||||
tottime = 0; n = 0;
|
||||
|
@ -1,42 +1,5 @@
|
||||
#!/bin/awk -f
|
||||
# $NetBSD: median.awk,v 1.4 1995/03/27 02:24:16 glass Exp $
|
||||
#
|
||||
# Copyright (c) 1990, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# This code is derived from software contributed to Berkeley by
|
||||
# Van Jacobson.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# @(#)median.awk 8.1 (Berkeley) 6/6/93
|
||||
#
|
||||
# $NetBSD: median.awk,v 1.5 1997/10/04 16:31:32 christos Exp $
|
||||
/^ *[0-9]/ {
|
||||
# print out the median time to each hop along a route.
|
||||
tottime = 0; n = 0;
|
||||
|
@ -1,255 +1,269 @@
|
||||
.\" $NetBSD: traceroute.8,v 1.7 1996/09/27 01:34:53 thorpej Exp $
|
||||
.\" $NetBSD: traceroute.8,v 1.8 1997/10/04 16:31:33 christos Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 1990, 1991, 1993
|
||||
.\" Copyright (c) 1989, 1995, 1996, 1997
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" This code is derived from software contributed to Berkeley by
|
||||
.\" Van Jacobson.
|
||||
.\" Redistribution and use in source and binary forms are permitted
|
||||
.\" provided that the above copyright notice and this paragraph are
|
||||
.\" duplicated in all such forms and that any documentation,
|
||||
.\" advertising materials, and other materials related to such
|
||||
.\" distribution and use acknowledge that the software was developed
|
||||
.\" by the University of California, Berkeley. The name of the
|
||||
.\" University may not be used to endorse or promote products derived
|
||||
.\" from this software without specific prior written permission.
|
||||
.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
||||
.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
.\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\" Header: traceroute.8,v 1.11 97/04/22 13:45:13 leres Exp
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)traceroute.8 8.1 (Berkeley) 6/6/93
|
||||
.\"
|
||||
.Dd June 6, 1993
|
||||
.Dt TRACEROUTE 8
|
||||
.Os BSD 4.3
|
||||
.Sh NAME
|
||||
.Nm traceroute
|
||||
.Nd print the route packets take to network host
|
||||
.Sh SYNOPSIS
|
||||
.Nm traceroute
|
||||
.Op Fl d
|
||||
.Op Fl D
|
||||
.Op Fl g Ar gateway_addr
|
||||
.Op Fl l
|
||||
.Op Fl m Ar max_ttl
|
||||
.Op Fl n
|
||||
.Op Fl p Ar port
|
||||
.Op Fl q Ar nqueries
|
||||
.Op Fl r
|
||||
.Bk -words
|
||||
.Op Fl s Ar src_addr
|
||||
.Ek
|
||||
.Op Fl t Ar tos
|
||||
.Op Fl w Ar waittime
|
||||
.Ar host
|
||||
.Op Ar packetsize
|
||||
.Sh DESCRIPTION
|
||||
.TH TRACEROUTE 8 "22 April 1997"
|
||||
.UC 6
|
||||
.SH NAME
|
||||
traceroute \- print the route packets take to network host
|
||||
.SH SYNOPSIS
|
||||
.na
|
||||
.B traceroute
|
||||
[
|
||||
.B \-DFIdlnrvx
|
||||
] [
|
||||
.B \-f
|
||||
.I first_ttl
|
||||
] [
|
||||
.B \-g
|
||||
.I gateway
|
||||
] [
|
||||
.B \-i
|
||||
.I iface
|
||||
]
|
||||
.br
|
||||
.ti +8
|
||||
[
|
||||
.B \-m
|
||||
max_ttl
|
||||
] [
|
||||
.B \-p
|
||||
.I port
|
||||
] [
|
||||
.B \-q
|
||||
.I nqueries
|
||||
]
|
||||
.br
|
||||
.ti +8
|
||||
[
|
||||
.B \-s
|
||||
.I src_addr
|
||||
] [
|
||||
.B \-t
|
||||
.I tos
|
||||
] [
|
||||
.B \-w
|
||||
.I waittime
|
||||
]
|
||||
.br
|
||||
.ti +8
|
||||
.I host
|
||||
[
|
||||
.I packetlen
|
||||
]
|
||||
.ad
|
||||
.SH DESCRIPTION
|
||||
The Internet is a large and complex aggregation of
|
||||
network hardware, connected together by gateways.
|
||||
Tracking the route one's packets follow (or finding the miscreant
|
||||
gateway that's discarding your packets) can be difficult.
|
||||
.Nm Traceroute
|
||||
.I Traceroute
|
||||
utilizes the IP protocol `time to live' field and attempts to elicit an
|
||||
.Tn ICMP
|
||||
.Dv TIME_EXCEEDED
|
||||
response from each gateway along the path to some
|
||||
ICMP TIME_EXCEEDED response from each gateway along the path to some
|
||||
host.
|
||||
.Pp
|
||||
.PP
|
||||
The only mandatory parameter is the destination host name or IP number.
|
||||
The default probe datagram length is 38 bytes, but this may be increased
|
||||
by specifying a packet size (in bytes) after the destination host
|
||||
The default probe datagram length is 40 bytes, but this may be increased
|
||||
by specifying a packet length (in bytes) after the destination host
|
||||
name.
|
||||
.Pp
|
||||
.PP
|
||||
Other options are:
|
||||
.Bl -tag -width Ds
|
||||
.It Fl d
|
||||
.TP
|
||||
.B \-d
|
||||
Turn on socket-level debugging.
|
||||
.It Fl D
|
||||
.TP
|
||||
.B \-D
|
||||
Dump the packet data to standard error before transmitting it.
|
||||
.It Fl g Ar gateway_addr
|
||||
Add
|
||||
.Ar gateway_addr
|
||||
to the list of addresses in the IP Loose Source Record Route (LSRR)
|
||||
option. If no gateways are specified, the LSRR option is omitted.
|
||||
.It Fl l
|
||||
.TP
|
||||
.B \-l
|
||||
Display the ttl value of the returned packet. This is useful for
|
||||
checking for assymetric routing.
|
||||
.It Fl m Ar max_ttl
|
||||
.TP
|
||||
.B \-f
|
||||
Set the initial time-to-live used in the first outgoing probe packet.
|
||||
.TP
|
||||
.B \-F
|
||||
Set the "don't fragment" bit.
|
||||
.TP
|
||||
.B \-d
|
||||
Enable socket level debugging.
|
||||
.TP
|
||||
.B \-g
|
||||
Specify a loose source route gateway (8 maximum).
|
||||
.TP
|
||||
.B \-i
|
||||
Specify a network interface to obtain the source IP address for
|
||||
outgoing probe packets. This is normally only useful on a multi-homed
|
||||
host. (See the
|
||||
.B \-s
|
||||
flag for another way to do this.)
|
||||
.TP
|
||||
.B \-I
|
||||
Use ICMP ECHO instead of UDP datagrams.
|
||||
.TP
|
||||
.B \-m
|
||||
Set the max time-to-live (max number of hops) used in outgoing probe
|
||||
packets. The default is 30 hops (the same default used for
|
||||
.Tn TCP
|
||||
packets. The default is 30 hops (the same default used for TCP
|
||||
connections).
|
||||
.It Fl n
|
||||
.TP
|
||||
.B \-n
|
||||
Print hop addresses numerically rather than symbolically and numerically
|
||||
(saves a nameserver address-to-name lookup for each gateway found on the
|
||||
path).
|
||||
.It Fl p Ar port
|
||||
Set the base
|
||||
.Tn UDP
|
||||
.Ar port
|
||||
number used in probes (default is 33434).
|
||||
.Nm Traceroute
|
||||
hopes that nothing is listening on
|
||||
.Tn UDP
|
||||
ports
|
||||
.Em base
|
||||
.TP
|
||||
.B \-p
|
||||
Set the base UDP port number used in probes (default is 33434).
|
||||
Traceroute hopes that nothing is listening on UDP ports
|
||||
.I base
|
||||
to
|
||||
.Em base+nhops-1
|
||||
at the destination host (so an
|
||||
.Tn ICMP
|
||||
.Dv PORT_UNREACHABLE
|
||||
message will
|
||||
.I base + nhops - 1
|
||||
at the destination host (so an ICMP PORT_UNREACHABLE message will
|
||||
be returned to terminate the route tracing). If something is
|
||||
listening on a port in the default range, this option can be used
|
||||
to pick an unused port range.
|
||||
.It Fl q Ar nqueries
|
||||
Set the number of probes per ``ttl'' to
|
||||
.Ar nqueries
|
||||
(default is three probes).
|
||||
.It Fl r
|
||||
.TP
|
||||
.B \-r
|
||||
Bypass the normal routing tables and send directly to a host on an attached
|
||||
network.
|
||||
If the host is not on a directly-attached network,
|
||||
an error is returned.
|
||||
This option can be used to ping a local host through an interface
|
||||
that has no route through it (e.g., after the interface was dropped by
|
||||
.Xr routed 8 ) .
|
||||
.It Fl s Ar src_addr
|
||||
Use the following IP address
|
||||
(which must be given as an IP number, not
|
||||
.IR routed (8C)).
|
||||
.TP
|
||||
.B \-s
|
||||
Use the following IP address (which usually is given as an IP number, not
|
||||
a hostname) as the source address in outgoing probe packets. On
|
||||
hosts with more than one IP address, this option can be used to
|
||||
multi-homed hosts (those with more than one IP
|
||||
address), this option can be used to
|
||||
force the source address to be something other than the IP address
|
||||
of the interface the probe packet is sent on. If the IP address
|
||||
is not one of this machine's interface addresses, an error is
|
||||
returned and nothing is sent.
|
||||
.It Fl t Ar tos
|
||||
returned and nothing is sent. (See the
|
||||
.B \-i
|
||||
flag for another way to do this.)
|
||||
.TP
|
||||
.B \-t
|
||||
Set the
|
||||
.Em type-of-service
|
||||
.I type-of-service
|
||||
in probe packets to the following value (default zero). The value must be
|
||||
a decimal integer in the range 0 to 255. This option can be used to
|
||||
see if different types-of-service result in different paths. (If you
|
||||
are not running a
|
||||
.Bx 4.3 tahoe
|
||||
or later system, this may be academic since the normal network
|
||||
services like telnet and ftp don't let you control the
|
||||
.Dv TOS ) .
|
||||
Not all values of
|
||||
.Dv TOS
|
||||
are legal or
|
||||
are not running 4.4bsd, this may be academic since the normal network
|
||||
services like telnet and ftp don't let you control the TOS).
|
||||
Not all values of TOS are legal or
|
||||
meaningful \- see the IP spec for definitions. Useful values are
|
||||
probably
|
||||
.Ql \-t 16
|
||||
.RB ` -t
|
||||
.IR 16 '
|
||||
(low delay) and
|
||||
.Ql \-t 8
|
||||
.RB ` -t
|
||||
.IR 8 '
|
||||
(high throughput).
|
||||
.It Fl v
|
||||
Verbose output. Received
|
||||
.Tn ICMP
|
||||
packets other than
|
||||
.Dv TIME_EXCEEDED
|
||||
and
|
||||
.Dv UNREACHABLE Ns s
|
||||
are listed.
|
||||
.It Fl w
|
||||
Set the time (in seconds) to wait for a response to a probe (default 3
|
||||
.TP
|
||||
.B \-v
|
||||
Verbose output. Received ICMP packets other than TIME_EXCEEDED and
|
||||
UNREACHABLEs are listed.
|
||||
.TP
|
||||
.B \-w
|
||||
Set the time (in seconds) to wait for a response to a probe (default 5
|
||||
sec.).
|
||||
.El
|
||||
.Pp
|
||||
.TP
|
||||
.B \-x
|
||||
Toggle checksums. Normally, this prevents traceroute from calculating
|
||||
checksums. In some cases, the operating system can overwrite parts of
|
||||
the outgoing packet but not recalculate the checksum (so in some cases
|
||||
the default is to not calculate checksums and using
|
||||
.B \-x
|
||||
causes them to be calcualted). Note that checksums are usually required
|
||||
for the last hop when using ICMP ECHO probes
|
||||
.RB ( \-I ).
|
||||
.PP
|
||||
This program attempts to trace the route an IP packet would follow to some
|
||||
internet host by launching
|
||||
.Tn UDP
|
||||
probe
|
||||
internet host by launching UDP probe
|
||||
packets with a small ttl (time to live) then listening for an
|
||||
.Tn ICMP
|
||||
"time exceeded" reply from a gateway. We start our probes
|
||||
with a ttl of one and increase by one until we get an
|
||||
.Tn ICMP
|
||||
"port unreachable"
|
||||
(which means we got to "host") or hit a max (which
|
||||
ICMP "time exceeded" reply from a gateway. We start our probes
|
||||
with a ttl of one and increase by one until we get an ICMP "port
|
||||
unreachable" (which means we got to "host") or hit a max (which
|
||||
defaults to 30 hops & can be changed with the
|
||||
.Fl m
|
||||
.B \-m
|
||||
flag). Three
|
||||
probes (changed with
|
||||
.Fl q
|
||||
probes (change with
|
||||
.B \-q
|
||||
flag) are sent at each ttl setting and a
|
||||
line is printed showing the ttl, address of the gateway and
|
||||
round trip time of each probe. If the probe answers come from
|
||||
different gateways, the address of each responding system will
|
||||
be printed. If there is no response within a 5 sec. timeout
|
||||
interval (changed with the
|
||||
.Fl w
|
||||
.B \-w
|
||||
flag), a "*" is printed for that
|
||||
probe.
|
||||
.Pp
|
||||
.PP
|
||||
We don't want the destination
|
||||
host to process the
|
||||
.Tn UDP
|
||||
probe packets so the destination port is set to an
|
||||
host to process the UDP probe packets so the destination port is set to an
|
||||
unlikely value (if some clod on the destination is using that
|
||||
value, it can be changed with the
|
||||
.Fl p
|
||||
.B \-p
|
||||
flag).
|
||||
.Pp
|
||||
.PP
|
||||
A sample use and output might be:
|
||||
.Bd -literal
|
||||
|
||||
.RS
|
||||
.nf
|
||||
[yak 71]% traceroute nis.nsf.net.
|
||||
traceroute to nis.nsf.net (35.1.1.48), 30 hops max, 56 byte packet
|
||||
1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms
|
||||
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
|
||||
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
|
||||
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms
|
||||
5 ccn-nerif22.Berkeley.EDU (128.32.168.22) 39 ms 39 ms 39 ms
|
||||
6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms
|
||||
7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms
|
||||
8 129.140.70.13 (129.140.70.13) 99 ms 99 ms 80 ms
|
||||
9 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms
|
||||
traceroute to nis.nsf.net (35.1.1.48), 30 hops max, 38 byte packet
|
||||
1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms
|
||||
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
|
||||
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
|
||||
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms
|
||||
5 ccn-nerif22.Berkeley.EDU (128.32.168.22) 39 ms 39 ms 39 ms
|
||||
6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms
|
||||
7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms
|
||||
8 129.140.70.13 (129.140.70.13) 99 ms 99 ms 80 ms
|
||||
9 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms
|
||||
10 129.140.81.7 (129.140.81.7) 220 ms 199 ms 199 ms
|
||||
11 nic.merit.edu (35.1.1.48) 239 ms 239 ms 239 ms
|
||||
.fi
|
||||
.RE
|
||||
|
||||
.Ed
|
||||
Note that lines 2 & 3 are the same. This is due to a buggy
|
||||
kernel on the 2nd hop system \- lbl-csam.arpa \- that forwards
|
||||
packets with a zero ttl (a bug in the distributed version
|
||||
of 4.3
|
||||
.Tn BSD ) .
|
||||
Note that you have to guess what path
|
||||
the packets are taking cross-country since the
|
||||
.Tn NSFNet
|
||||
(129.140)
|
||||
doesn't supply address-to-name translations for its
|
||||
.Tn NSS Ns es .
|
||||
.Pp
|
||||
of 4.3BSD). Note that you have to guess what path
|
||||
the packets are taking cross-country since the NSFNet (129.140)
|
||||
doesn't supply address-to-name translations for its NSSes.
|
||||
.PP
|
||||
A more interesting example is:
|
||||
.Bd -literal
|
||||
|
||||
.RS
|
||||
.nf
|
||||
[yak 72]% traceroute allspice.lcs.mit.edu.
|
||||
traceroute to allspice.lcs.mit.edu (18.26.0.115), 30 hops max
|
||||
1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
|
||||
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms
|
||||
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 19 ms
|
||||
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms
|
||||
5 ccn-nerif22.Berkeley.EDU (128.32.168.22) 20 ms 39 ms 39 ms
|
||||
6 128.32.197.4 (128.32.197.4) 59 ms 119 ms 39 ms
|
||||
7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms
|
||||
8 129.140.70.13 (129.140.70.13) 80 ms 79 ms 99 ms
|
||||
9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms
|
||||
1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
|
||||
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms
|
||||
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 19 ms
|
||||
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms
|
||||
5 ccn-nerif22.Berkeley.EDU (128.32.168.22) 20 ms 39 ms 39 ms
|
||||
6 128.32.197.4 (128.32.197.4) 59 ms 119 ms 39 ms
|
||||
7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms
|
||||
8 129.140.70.13 (129.140.70.13) 80 ms 79 ms 99 ms
|
||||
9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms
|
||||
10 129.140.81.7 (129.140.81.7) 199 ms 180 ms 300 ms
|
||||
11 129.140.72.17 (129.140.72.17) 300 ms 239 ms 239 ms
|
||||
12 * * *
|
||||
@ -259,108 +273,108 @@ traceroute to allspice.lcs.mit.edu (18.26.0.115), 30 hops max
|
||||
16 * * *
|
||||
17 * * *
|
||||
18 ALLSPICE.LCS.MIT.EDU (18.26.0.115) 339 ms 279 ms 279 ms
|
||||
.fi
|
||||
.RE
|
||||
|
||||
.Ed
|
||||
Note that the gateways 12, 14, 15, 16 & 17 hops away
|
||||
either don't send
|
||||
.Tn ICMP
|
||||
"time exceeded" messages or send them
|
||||
either don't send ICMP "time exceeded" messages or send them
|
||||
with a ttl too small to reach us. 14 \- 17 are running the
|
||||
.Tn MIT
|
||||
C Gateway code that doesn't send "time exceeded"s. God
|
||||
MIT C Gateway code that doesn't send "time exceeded"s. God
|
||||
only knows what's going on with 12.
|
||||
.Pp
|
||||
.PP
|
||||
The silent gateway 12 in the above may be the result of a bug in
|
||||
the 4.[23]
|
||||
.Tn BSD
|
||||
network code (and its derivatives): 4.x (x <= 3)
|
||||
the 4.[23]BSD network code (and its derivatives): 4.x (x <= 3)
|
||||
sends an unreachable message using whatever ttl remains in the
|
||||
original datagram. Since, for gateways, the remaining ttl is
|
||||
zero, the
|
||||
.Tn ICMP
|
||||
"time exceeded" is guaranteed to not make it back
|
||||
zero, the ICMP "time exceeded" is guaranteed to not make it back
|
||||
to us. The behavior of this bug is slightly more interesting
|
||||
when it appears on the destination system:
|
||||
.Bd -literal
|
||||
1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
|
||||
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms
|
||||
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 39 ms 19 ms
|
||||
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 19 ms
|
||||
5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms
|
||||
6 csgw.Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms
|
||||
7 * * *
|
||||
8 * * *
|
||||
9 * * *
|
||||
|
||||
.RS
|
||||
.nf
|
||||
1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
|
||||
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms
|
||||
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 39 ms 19 ms
|
||||
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 19 ms
|
||||
5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms
|
||||
6 csgw.Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms
|
||||
7 * * *
|
||||
8 * * *
|
||||
9 * * *
|
||||
10 * * *
|
||||
11 * * *
|
||||
12 * * *
|
||||
13 rip.Berkeley.EDU (128.32.131.22) 59 ms ! 39 ms ! 39 ms !
|
||||
.fi
|
||||
.RE
|
||||
|
||||
.Ed
|
||||
Notice that there are 12 "gateways" (13 is the final
|
||||
destination) and exactly the last half of them are "missing".
|
||||
What's really happening is that rip (a Sun-3 running Sun OS3.5)
|
||||
is using the ttl from our arriving datagram as the ttl in its
|
||||
.Tn ICMP
|
||||
reply. So, the reply will time out on the return path
|
||||
(with no notice sent to anyone since
|
||||
.Tn ICMP's
|
||||
aren't sent for
|
||||
.Tn ICMP's )
|
||||
until we probe with a ttl that's at least twice the path
|
||||
ICMP reply. So, the reply will time out on the return path
|
||||
(with no notice sent to anyone since ICMP's aren't sent for
|
||||
ICMP's) until we probe with a ttl that's at least twice the path
|
||||
length. I.e., rip is really only 7 hops away. A reply that
|
||||
returns with a ttl of 1 is a clue this problem exists.
|
||||
.Nm Traceroute
|
||||
prints a "!" after the time if the ttl is <= 1.
|
||||
Since vendors ship a lot of obsolete
|
||||
.Pf ( Tn DEC Ns \'s
|
||||
Ultrix, Sun 3.x) or
|
||||
non-standard
|
||||
.Pq Tn HPUX
|
||||
software, expect to see this problem
|
||||
Traceroute prints a "!" after the time if the ttl is <= 1.
|
||||
Since vendors ship a lot of obsolete (DEC's Ultrix, Sun 3.x) or
|
||||
non-standard (HPUX) software, expect to see this problem
|
||||
frequently and/or take care picking the target host of your
|
||||
probes.
|
||||
|
||||
Other possible annotations after the time are
|
||||
.Sy !H ,
|
||||
.Sy !N ,
|
||||
.Sy !P
|
||||
(got a host, network or protocol unreachable, respectively),
|
||||
.Sy !S
|
||||
.BR !H ,
|
||||
.BR !N ,
|
||||
or
|
||||
.Sy !F
|
||||
.B !P
|
||||
(got a host, network or protocol unreachable, respectively),
|
||||
.B !S
|
||||
or
|
||||
.B !F
|
||||
(source route failed or fragmentation needed \- neither of these should
|
||||
ever occur and the associated gateway is busted if you see one). If
|
||||
almost all the probes result in some kind of unreachable,
|
||||
.Nm traceroute
|
||||
ever occur and the associated gateway is busted if you see one),
|
||||
.B !X
|
||||
(communication administratively prohibited), or
|
||||
.B !<N>
|
||||
(ICMP unreachable code N).
|
||||
If almost all the probes result in some kind of unreachable, traceroute
|
||||
will give up and exit.
|
||||
.Pp
|
||||
.Bd -literal
|
||||
|
||||
.RS
|
||||
.nf
|
||||
traceroute \-g 10.3.0.5 128.182.0.0
|
||||
.fi
|
||||
.RE
|
||||
|
||||
.Ed
|
||||
will show the path from the Cambridge Mailbridge to PSC, while
|
||||
.Bd -literal
|
||||
traceroute \-g 192.5.146.4 \-g 10.3.0.5 35.0.0.0
|
||||
|
||||
.Ed
|
||||
.RS
|
||||
.nf
|
||||
traceroute \-g 192.5.146.4 \-g 10.3.0.5 35.0.0.0
|
||||
.fi
|
||||
.RE
|
||||
|
||||
will show the path from the Cambridge Mailbridge to Merit, using PSC to
|
||||
reach the Mailbridge.
|
||||
.Pp
|
||||
.PP
|
||||
This program is intended for use in network testing, measurement
|
||||
and management.
|
||||
It should be used primarily for manual fault isolation.
|
||||
Because of the load it could impose on the network, it is unwise to use
|
||||
.Nm traceroute
|
||||
.I traceroute
|
||||
during normal operations or from automated scripts.
|
||||
.Sh AUTHOR
|
||||
.SH SEE ALSO
|
||||
netstat(1), ping(8)
|
||||
.SH AUTHOR
|
||||
Implemented by Van Jacobson from a suggestion by Steve Deering. Debugged
|
||||
by a cast of thousands with particularly cogent suggestions or fixes from
|
||||
C. Philip Wood, Tim Seaver and Ken Adelman.
|
||||
.Sh SEE ALSO
|
||||
.Xr netstat 1 ,
|
||||
.Xr ping 8
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
command
|
||||
.Bt
|
||||
.LP
|
||||
The current version is available via anonymous ftp:
|
||||
.LP
|
||||
.RS
|
||||
.I ftp://ftp.ee.lbl.gov/traceroute.tar.Z
|
||||
.RE
|
||||
.SH BUGS
|
||||
Please send bug reports to traceroute@ee.lbl.gov.
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user