Commit Graph

32 Commits

Author SHA1 Message Date
dwmalone
57c8475ce7 Make it so that the synopsis and usage message almost agree.
MFC after:	3 weeks
2006-10-15 17:44:49 +00:00
dwmalone
72234e1fdc Add a -D option to traceroute that prints the differences between
the probe packet we sent and the packet quoted by the ICMP response.
Can be useful for spotting hops that change the packet in-flight
or have problems generating correct ICMP responses.

MFC after:	3 weeks
2006-10-15 17:34:51 +00:00
dwmalone
929e55d609 Make traceroute decode all the ICMP unreachable messages defined
in http://www.iana.org/assignments/icmp-parameters. Thankfully
IANA's list aggrees with <netinet/ip_icmp.h>.

I've tried to do this in a way which is mostly consistent with
tcptraceroute and Debian's version of traceroute. However, sometimes
a letter is used twice by these versions, so I've gone with:

                                LBL     tcptr   Debian          (chosen)
ICMP_UNREACH_NET                !N      !N      !N              !N
ICMP_UNREACH_HOST               !H      !H      !H              !H
ICMP_UNREACH_PROTOCOL           !P      !P      !P              !P
ICMP_UNREACH_PORT               !       !p      !               !
ICMP_UNREACH_NEEDFRAG           !F-%d   !F      !F-<%d>         !F-<%d>
ICMP_UNREACH_SRCFAIL            !S      !S      !S              !S
ICMP_UNREACH_NET_UNKNOWN        !<%d>   !U      !<%d>           !U
ICMP_UNREACH_HOST_UNKNOWN       !<%d>   !U      !<%d>           !W
ICMP_UNREACH_ISOLATED           !<%d>   !I      !I              !I
ICMP_UNREACH_NET_PROHIB         !<%d>   !A      !A              !A
ICMP_UNREACH_HOST_PROHIB        !<%d>   !C      !C              !Z
ICMP_UNREACH_TOSNET             !<%d>   !T      !T              !Q
ICMP_UNREACH_TOSHOST            !<%d>   !T      !T              !T
ICMP_UNREACH_FILTER_PROHIB      !X      !A      !A              !X
ICMP_UNREACH_HOST_PRECEDENCE    !V      !<%d>   !V              !V
ICMP_UNREACH_PRECEDENCE_CUTOFF  !C      !<%d>   !C              !C

Graham Wilson is planning to use the same codes in Debian's version.

MFC after:	3 weeks
2006-06-13 14:59:07 +00:00
cjc
297aabd6d9 Option for setting a fixed destination port. This is useful for tracing
to a host behind a firewall where only specific services are allowed.
For example, to trace the hops to an HTTP server behind a firewall,

  $ traceroute -e -P tcp -p 80 www-firewalled.example.com

MFC after:	1 week
2006-05-11 06:30:18 +00:00
pav
fd030aecaa - Update pretty print of multipath routes to better handle timeout of first
probe

  Before:
   5  *
    freebsd (195.250.137.134)  19.086 ms  24.694 ms

  After:
   5  * freebsd (195.250.137.134)  19.086 ms  24.694 ms

Fixes:		bin/90098
Reported by:	Jeremy Chadwick <freebsd@jdc.parodius.com>
Approved by:	andre
MFC after:	1 day
2006-01-10 16:48:52 +00:00
andre
dda5a2d10a Pretty print multipath routes.
Before (backslash in c syntax meaning):
 6  p16-2-0-0.r21.sttlwa01.us.bb.verio.net (129.250.2.180)  71.027 ms \
p16-1-1-3.r20.sttlwa01.us.bb.verio.net (129.250.2.6)  66.730 ms  66.535 ms
 7  xe-0-2-0.r20.sttlwa01.us.bb.verio.net (129.250.4.16)  71.092 ms \
xe-3-1.r00.sttlwa01.us.bb.verio.net (129.250.2.205)  66.598 ms \
xe-0-2-0.r20.sttlwa01.us.bb.verio.net (129.250.4.16)  71.024 ms

After:
 6  p16-2-0-0.r21.sttlwa01.us.bb.verio.net (129.250.2.180)  71.027 ms
    p16-1-1-3.r20.sttlwa01.us.bb.verio.net (129.250.2.6)  66.730 ms  66.535 ms
 7  xe-0-2-0.r20.sttlwa01.us.bb.verio.net (129.250.4.16)  71.092 ms
    xe-3-1.r00.sttlwa01.us.bb.verio.net (129.250.2.205)  66.598 ms
    xe-0-2-0.r20.sttlwa01.us.bb.verio.net (129.250.4.16)  71.024 ms

Submitted by:	Richard A Steenbergen <ras at e-gerbil.net>
MFC after:	3 days
2005-08-26 18:08:24 +00:00
pb
0333af10cb Check -s option source address for validity.
PR:		bin/29026
MFC after:	1 week
2004-04-17 18:44:23 +00:00
cperciva
47f77ea3ba Fix traceroute where [number of hops] * [number of packets per hop] > 255.
PR:		misc/61336
Submitted by:	Mike Hibler <mike@cs.utah.edu>
Approved by:	rwatson (mentor)
2004-01-23 06:55:15 +00:00
fenner
b61bd3d174 Calculate checksums correctly when LSRR is in effect by passing the
IP header and protocol header seperately.
Also calculate TCP checksums.

Submitted by:	orion
2002-07-28 02:34:39 +00:00
fenner
ee621bb64a Merge 1.4a12 2002-07-28 02:26:31 +00:00
dcs
6045b837d6 s/ifdef/ifndef/.
Fenner got this inverted through a misunderstanding between us.
2002-07-23 12:25:34 +00:00
fenner
c9f6925854 Add an ICMP protocol handler, partly based on LBL's traceroute 1.4 .
Submitted by:	dcs
2002-07-22 23:01:11 +00:00
fenner
818d4f6499 Actually use gen_prep() and gen_check(), instead of udp_prep() and
udp_check(), for unknown protocols.
2002-07-22 22:07:23 +00:00
robert
594ec288d5 Allocate and clear the correct number of bytes for a
struct fd_set that should be able to hold sock + 1 bits.
Before, it was apparently assumed that an fd_mask has
the same size as type char.

PR:		bin/39617
Reported by:	Peter N Lewis <peter@stairways.com.au>
2002-06-23 21:54:18 +00:00
ru
c4aabf68c9 Fetch the default maximum TTL value from the net.inet.ip.ttl MIB.
PR:		bin/19598
MFC after:	1 week
2001-06-06 16:12:59 +00:00
obrien
d5891b5ed0 Defining usage() "__dead" is just ridiculous. It also won't compile with
a June 2000 GCC 2.96 snapshot.

Reviewed by:	bde
2000-10-27 05:51:59 +00:00
kris
bf6b0f4463 Don't write past the end of our fd_set
Obtained from:	OpenBSD, via KAME
2000-10-08 07:58:32 +00:00
kris
c84667a83f Format string paranoia. 2000-10-08 07:54:43 +00:00
ghelmer
00ce755373 Document the -S flag (added in rev. 1.4) in the usage() function.
PR:		bin/18153
Prompted by:	Nathan Ahlstrom <nrahlstr@winternet.com>
2000-07-07 19:44:36 +00:00
shin
29f3da7a25 Correct FreeBSD id place. Also correct vendor rcsid.
Specified by: bde

Reviewed by: bde
2000-03-30 15:23:44 +00:00
shin
5bc92eac72 Bypass IPsec for traceroute invoked by root.
PR: bin/17606
Submitted by: Louis Mamakos <louie@TransSys.COM
2000-03-30 01:33:39 +00:00
archie
80148aaf33 Fix bug (introduced by me) where UDP port numbers were starting at 1 instead
of 33435 like before.

Reported by:	John Polstra <jdp@polstra.com>
1999-06-25 21:48:40 +00:00
archie
8520baa2ea Add a min TTL flag to go along with the max TTL flag. That is, this flag
allows you to start tracing at a hop number other than 1.

Submitted by:	Stefan `Sec` Zehl <sec@42.org>
1999-05-12 17:28:31 +00:00
archie
78c2183cb6 Add the capability for traceroute(8) to send packets of any IP protocol
instead of just UDP; an alternate protocol is specified by '-P proto'.
This is useful for finding routers that are blocking packets based on
IP protocol.  New handlers can be added fairly easily to do protocol-
specific things.
1999-05-06 03:23:24 +00:00
des
8b1e97ea4e Better fix for the traceroute flood bug.
Submitted by:	bde
1999-02-16 14:19:50 +00:00
des
ec96193302 If the user provided a large enough argument to the -w option, the sum
would overflow and you'd end up doing select() with a negative timeout.
1999-02-15 08:11:44 +00:00
jb
e886c0d520 Fix an alignment problem on alpha by doing a bytewise copy. 1998-06-06 23:33:28 +00:00
sef
5c2cf660b6 Fix a typo. Oops.
Submitted by:	asami
1996-10-08 19:16:24 +00:00
sef
c3ba3806b8 Paul objected to my previous change. This adds the same functionality
(implemented better, admittedly) with a new option, '-S'.  If the
maintainers of traceroute (Van?) add a -S option, we will then be in
conflict.

Also added a too-brief description of the option in the man page.  Someone
with a better command of English than I at the moment should probably look
over it and rephrase it.

Reviewed by:	pst, jkh
1996-10-08 02:44:26 +00:00
sef
92a8c6e3f9 Print out a summary of the loss percentages for each hop. No manual changes
just yet, I know, evil of me.

Reviewed by:	jkh
1996-10-05 01:43:13 +00:00
fenner
44721b732a Add FreeBSD modifications
- Move setuid(getuid()) much earlier
- Add "SANE_PRECISION" time printing code
1996-09-30 19:39:25 +00:00
fenner
a140d208b5 Virgin import of LBL traceroute version 1.3.2.
Obtained from: ftp://ftp.ee.lbl.gov/traceroute.tar.Z on 30-Sep-1996.
1996-09-30 19:09:55 +00:00