]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/traceroute/INSTALL
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / traceroute / INSTALL
1 @(#) $Id: INSTALL,v 1.13 2000/11/23 20:07:29 leres Exp $ (LBL)
2
3 Traceroute is known to build and run under SunOS 4.1.4 and Solaris 5.4.
4 If you are running a really old kernel, see the instructions under the
5 title "KERNEL MODIFICATIONS" further down.
6
7 To build traceroute, first customize any paths in Makefile.in, then run
8 "./configure" (a shell script). The configure script will determine
9 your system attributes and generate an appropriate Makefile from
10 Makefile.in. Next run "make". If everything goes well you can su to
11 root and run "make install" and "make install-man". Note that traceroute
12 must be installed setuid to root or run as root.
13
14 If configure fails for some reason and decide to submit a bug report to
15 traceroute@ee.lbl.gov, please include a copy of config.log.
16
17 You will need an ANSI C compiler to build libpcap. The configure script
18 will abort if your compiler is not ANSI compliant. If this happens, use
19 the GNU C compiler, available via anonymous ftp:
20
21         ftp://prep.ai.mit.edu/pub/gnu/gcc-*.tar.gz
22
23 If you get the error message:
24
25         traceroute: unknown protocol icmp
26
27 it usually means you're missing the icmp line in /etc/protocols.
28
29 If you are using Solaris 2.5.1 (and possibly higher), traceroute cannot
30 calculate checksums; configure automatically changes the default to
31 reflect this. The kernel updates the ip_id field with some unknown
32 value and the ip_off field with the IP_DF bit. Also, if the the udp
33 uh_sum field is non-zero, it gets updated with the value of the uh_ulen
34 field... This means that the icmp echo option (-I flag) is not as
35 useful.
36
37 KERNEL MODIFICATIONS
38 --------------------
39 If yor have a really old system, it may be necessary to modify your
40 kernel before traceroute will work. If you want to hack on your kernel,
41 a modified version of the routine rip_output (normally found in the
42 file /sys/netinet/raw_ip.c) can be found in rip_output.c. This code may
43 or may not resemble the code in your kernel. It may offer you a place
44 to start but we make no promises. If you do hack your kernel, remember
45 to test everything that uses raw ip sockets (e.g., ping and
46 egpup/gated) & make sure they still work. We wish you the best of luck
47 and you're on your own.
48
49 Some older kernels forward icmp packets that have a ttl of zero. If
50 your system has this bug, you might want to fix it while you're in the
51 kernel.  (This bug appears in all releases of BSD up to but not
52 including 4.3tahoe. If your version of netinet/ip_icmp.c is any earlier
53 than 7.3 (April, '87), it has the bug.)  The fix is just to add the
54 line:
55
56         ip->ip_ttl = MAXTTL;
57
58 after the line:
59
60         ip->ip_src = t;
61
62 (or anywhere before the call to icmp_send) in routine icmp_reflect.
63
64 If you're running this on a pre-4.3bsd system (e.g., SunOS 3) that
65 strips ip headers from icmp messages, add -DARCHAIC to CFLAGS in the
66 Makefile.  Also note that rip_output contains a conditional for a
67 4.2/4.3 change in the location of a raw socket's protocol number.  I've
68 checked this under 4.3 & SunOS 3 but you should double-check your
69 system to make sure the appropriate branch of the #if is taken (check
70 the line that assigned to ip->ip_p in your system's original
71 rip_output).
72
73
74 FILES
75 -----
76 CHANGES         - description of differences between releases
77 FILES           - list of files exported as part of the distribution
78 INSTALL         - this file
79 Makefile.in     - compilation rules (input to the configure script)
80 README          - description of distribution
81 VERSION         - version of this release
82 aclocal.m4      - autoconf macros
83 config.guess    - autoconf support
84 config.sub      - autoconf support
85 configure       - configure script (run this first)
86 configure.in    - configure script source
87 findsaddr-generic.c - generic source address code
88 findsaddr-linux.c - linux source address code
89 findsaddr-socket.c - socket based soruce address code
90 findsaddr.h     - source address prototypes
91 ifaddrlist.c    - inet address routines
92 ifaddrlist.h    - inet address prototypes
93 install-sh      - BSD style install script
94 lbl/gnuc.h      - gcc macros and defines
95 lbl/os-*.h      - os dependent defines and prototypes
96 linux-include/* - network include files missing on Linux
97 mean.awk        - awk script to print out the mean time along a route
98 median.awk      - awk script to print out the median time along a route
99 mkdep           - construct Makefile dependency list
100 rip_output.c    - sample rip_output() from  /sys/netinet/raw_ip.c
101 strerror.c      - emulation routine
102 traceroute.8    - manual entry
103 traceroute.c    - main program
104 traceroute.h    - global prototypes
105 usleep.c        - missing system call emulation