]> git.ipfire.org Git - thirdparty/dhcp.git/blame - README
[master] Added missing source files to keama dist list
[thirdparty/dhcp.git] / README
CommitLineData
91da194e 1 Internet Systems Consortium DHCP Distribution
82e0ea57
TM
2 Version 4.4.2b1
3 12 December 2019
4650dc25 4
98311e4b 5 README FILE
4650dc25
TL
6
7You should read this file carefully before trying to install or use
8the ISC DHCP Distribution.
9
10 TABLE OF CONTENTS
11
12 1 WHERE TO FIND DOCUMENTATION
13 2 RELEASE STATUS
14 3 BUILDING THE DHCP DISTRIBUTION
986bf898
TL
15 3.1 UNPACKING IT
16 3.2 CONFIGURING IT
17 3.2.1 DYNAMIC DNS UPDATES
38793a26 18 3.2.2 LOCALLY DEFINED OPTIONS
986bf898 19 3.3 BUILDING IT
4650dc25
TL
20 4 INSTALLING THE DHCP DISTRIBUTION
21 5 USING THE DHCP DISTRIBUTION
da411127
TL
22 5.1 FIREWALL RULES
23 5.2 LINUX
24 5.2.1 IF_TR.H NOT FOUND
25 5.2.2 SO_ATTACH_FILTER UNDECLARED
26 5.2.3 PROTOCOL NOT CONFIGURED
27 5.2.4 BROADCAST
28 5.2.6 IP BOOTP AGENT
29 5.2.7 MULTIPLE INTERFACES
30 5.3 SCO
31 5.4 HP-UX
32 5.5 ULTRIX
33 5.6 FreeBSD
34 5.7 NeXTSTEP
35 5.8 SOLARIS
7cfeb916 36 5.8.1 Solaris 11
b89b8e16
SR
37 5.8.2 Solaris 11 and ATF
38 5.8.3 Other Solaris Items
236d3a99
DH
39 5.9 AIX
40 5.10 MacOS X
6913a589 41 5.11 ATF
4650dc25 42 6 SUPPORT
986bf898 43 6.1 HOW TO REPORT BUGS
fef8c6f0 44 7 HISTORY
4650dc25
TL
45
46 WHERE TO FIND DOCUMENTATION
2d1b06e0
TL
47
48Documentation for this software includes this README file, the
49RELNOTES file, and the manual pages, which are in the server, common,
da411127
TL
50client and relay subdirectories. The README file (this file) includes
51late-breaking operational and system-specific information that you
52should read even if you don't want to read the manual pages, and that
53you should *certainly* read if you run into trouble. Internet
802fdea1
TM
54standards relating to the DHCP protocol are listed in the References
55document that is available in html, txt and xml formats in doc/
da411127
TL
56subdirectory. You will have the best luck reading the manual pages if
57you build this software and then install it, although you can read
58them directly out of the distribution if you need to.
2d1b06e0
TL
59
60DHCP server documentation is in the dhcpd man page. Information about
61the DHCP server lease database is in the dhcpd.leases man page.
62Server configuration documentation is in the dhcpd.conf man page as
63well as the dhcp-options man page. A sample DHCP server
9ff4e0a2
SR
64configuration is in the file server/dhcpd.conf.example. The source for
65the dhcpd, dhcpd.leases and dhcpd.conf man pages is in the server/ sub-
4650dc25
TL
66directory in the distribution. The source for the dhcp-options.5
67man page is in the common/ subdirectory.
2d1b06e0
TL
68
69DHCP Client documentation is in the dhclient man page. DHCP client
70configuration documentation is in the dhclient.conf man page and the
71dhcp-options man page. The DHCP client configuration script is
72documented in the dhclient-script man page. The format of the DHCP
73client lease database is documented in the dhclient.leases man page.
4650dc25
TL
74The source for all these man pages is in the client/ subdirectory in
75the distribution. In addition, the dhcp-options man page should be
76referred to for information about DHCP options.
2d1b06e0 77
4650dc25
TL
78DHCP relay agent documentation is in the dhcrelay man page, the source
79for which is distributed in the relay/ subdirectory.
2d1b06e0 80
2ca63671
TM
81KEA Migration Assistant documentation, including how to build, install
82and use it, is including in the keama directory.
83
2d1b06e0 84To read installed manual pages, use the man command. Type "man page"
4650dc25
TL
85where page is the name of the manual page. This will only work if
86you have installed the ISC DHCP distribution using the ``make install''
87command (described later).
2d1b06e0
TL
88
89If you want to read manual pages that aren't installed, you can type
90``nroff -man page |more'' where page is the filename of the
91unformatted manual page. The filename of an unformatted manual page
92is the name of the manual page, followed by '.', followed by some
93number - 5 for documentation about files, and 8 for documentation
4650dc25
TL
94about programs. For example, to read the dhcp-options man page,
95you would type ``nroff -man common/dhcp-options.5 |more'', assuming
96your current working directory is the top level directory of the ISC
97DHCP Distribution.
2d1b06e0 98
e021c50c
DH
99Please note that the pathnames of files to which our manpages refer
100will not be correct for your operating system until after you iterate
101'make install' (so if you're reading a manpage out of the source
102directory, it may not have up-to-date information).
2d1b06e0 103
26833160
TL
104 BUILDING THE DHCP DISTRIBUTION
105
986bf898
TL
106 UNPACKING IT
107
1409f290
TL
108To build the DHCP Distribution, unpack the compressed tar file using
109the tar utility and the gzip command - type something like:
110
82e0ea57
TM
111 gunzip dhcp-4.4.2b1.tar.gz
112 tar xvf dhcp-4.4.2b1.tar
98bf1607 113
986bf898
TL
114 CONFIGURING IT
115
82e0ea57 116Now, cd to the dhcp-4.4.2b1 subdirectory that you've just created and
6b911c86 117configure the source tree by typing:
1409f290 118
98311e4b 119 ./configure
1409f290
TL
120
121If the configure utility can figure out what sort of system you're
122running on, it will create a custom Makefile for you for that
123system; otherwise, it will complain. If it can't figure out what
124system you are using, that system is not supported - you are on
125your own.
126
dbd65517
SR
127Several options may be enabled or disabled via the configure command.
128You can get a list of these by typing:
129
130 ./configure --help
131
007ba82a
FD
132If you want to use dynamic shared libraries automake, autoconf
133(aka GNU autotools) and libtool must be available. The DHCP
134distribution provides 3 configure.ac* files: the -lt version
135has no libtool support and was copied to the configure.ac
136standard file in the distribution. To enable libtool support
137you should perform these steps:
138
139 cp configure.ac+lt configure.ac
140 autoreconf -i
141
142after you can use the regenerated configure as usual
143(with libtool support (--enable-libtool) on by default):
144
145 ./configure
146
147For compatibility (and people who don't read this documentation)
148the --enable-libtool configuration file is supported even by
149the distributed configure (and off by default). The previous
150steps are performed and the regenerated configure called with
151almost the same parameters (this "almost" makes the use of
152this feature not recommended).
153
838cc5ea
FD
154Note you can't go back from with libtool support to without libtool
155support by restoring configure.ac and rerun autoreconf. If you
156want or need to restore the without libtool support state the
157required way is to simply restore the whole distribution.
158
986bf898
TL
159 DYNAMIC DNS UPDATES
160
da411127 161A fully-featured implementation of dynamic DNS updates is included in
98bf1607 162this release. It uses libraries from BIND and, to avoid issues with
95bba8b6
SR
163different versions, includes the necessary BIND version. The appropriate
164BIND libraries will be compiled and installed in the bind subdirectory
165as part of the make step. In order to build the necessary libraries you
166will need to have "gmake" available on your build system.
167
986bf898 168
6b3d9544
TL
169There is documentation for the DDNS support in the dhcpd.conf manual
170page - see the beginning of this document for information on finding
171manual pages.
986bf898 172
38793a26
TL
173 LOCALLY DEFINED OPTIONS
174
175In previous versions of the DHCP server there was a mechanism whereby
176options that were not known by the server could be configured using
177a name made up of the option code number and an identifier:
178"option-nnn" This is no longer supported, because it is not future-
179proof. Instead, if you want to use an option that the server doesn't
180know about, you must explicitly define it using the method described
181in the dhcp-options man page under the DEFINING NEW OPTIONS heading.
182
986bf898
TL
183 BUILDING IT
184
1409f290
TL
185Once you've run configure, just type ``make'', and after a while
186you should have a dhcp server. If you get compile errors on one
187of the supported systems mentioned earlier, please let us know.
188If you get warnings, it's not likely to be a problem - the DHCP
189server compiles completely warning-free on as many architectures
190as we can manage, but there are a few for which this is difficult.
191If you get errors on a system not mentioned above, you will need
192to do some programming or debugging on your own to get the DHCP
193Distribution working.
26833160 194
b4a10c76
FD
195If you cross compile you have to follow the instructions from
196the BIND README, in particular you must set the BUILD_CC
197environment variable.
198
4650dc25
TL
199 INSTALLING THE DHCP DISTRIBUTION
200
68c039d3
TL
201Once you have successfully gotten the DHCP Distribution to build, you
202can install it by typing ``make install''. If you already have an old
203version of the DHCP Distribution installed, you may want to save it
204before typing ``make install''.
3dcbf508 205
4650dc25
TL
206 USING THE DHCP DISTRIBUTION
207
da411127
TL
208 FIREWALL RULES
209
210If you are running the DHCP server or client on a computer that's also
211acting as a firewall, you must be sure to allow DHCP packets through
212the firewall. In particular, your firewall rules _must_ allow packets
213from IP address 0.0.0.0 to IP address 255.255.255.255 from UDP port 68
214to UDP port 67 through. They must also allow packets from your local
215firewall's IP address and UDP port 67 through to any address your DHCP
216server might serve on UDP port 68. Finally, packets from relay agents
217on port 67 to the DHCP server on port 67, and vice versa, must be
218permitted.
219
220We have noticed that on some systems where we are using a packet
221filter, if you set up a firewall that blocks UDP port 67 and 68
222entirely, packets sent through the packet filter will not be blocked.
223However, unicast packets will be blocked. This can result in strange
224behaviour, particularly on DHCP clients, where the initial packet
225exchange is broadcast, but renewals are unicast - the client will
226appear to be unable to renew until it starts broadcasting its
227renewals, and then suddenly it'll work. The fix is to fix the
228firewall rules as described above.
229
230 PARTIAL SERVERS
231
232If you have a server that is connected to two networks, and you only
233want to provide DHCP service on one of those networks (e.g., you are
234using a cable modem and have set up a NAT router), if you don't write
235any subnet declaration for the network you aren't supporting, the DHCP
236server will ignore input on that network interface if it can. If it
237can't, it will refuse to run - some operating systems do not have the
238capability of supporting DHCP on machines with more than one
239interface, and ironically this is the case even if you don't want to
240provide DHCP service on one of those interfaces.
241
26833160
TL
242 LINUX
243
6da19769
TL
244There are three big LINUX issues: the all-ones broadcast address,
245Linux 2.1 ip_bootp_agent enabling, and operations with more than one
3dcbf508
TL
246network interface. There are also two potential compilation/runtime
247problems for Linux 2.1/2.2: the "SO_ATTACH_FILTER undeclared" problem
248and the "protocol not configured" problem.
249
3dcbf508
TL
250 LINUX: PROTOCOL NOT CONFIGURED
251
e021c50c 252If you get the following message, it's because your kernel doesn't
713a2956 253have the Linux packetfilter or raw packet socket configured:
3dcbf508 254
c87fcde1
TL
255 Make sure CONFIG_PACKET (Packet socket) and CONFIG_FILTER (Socket
256 Filtering) are enabled in your kernel configuration
257
258If this happens, you need to configure your Linux kernel to support
e021c50c
DH
259Socket Filtering and the Packet socket, or to select a kernel provided
260by your Linux distribution that has these enabled (virtually all modern
261ones do by default).
2a1ebeee 262
3dcbf508 263 LINUX: BROADCAST
2a1ebeee 264
da411127
TL
265If you are running a recent version of Linux, this won't be a problem,
266but on older versions of Linux (kernel versions prior to 2.2), there
267is a potential problem with the broadcast address being sent
268incorrectly.
269
26833160
TL
270In order for dhcpd to work correctly with picky DHCP clients (e.g.,
271Windows 95), it must be able to send packets with an IP destination
4650dc25
TL
272address of 255.255.255.255. Unfortunately, Linux changes an IP
273destination of 255.255.255.255 into the local subnet broadcast address
da411127
TL
274(here, that's 192.5.5.223).
275
276This isn't generally a problem on Linux 2.2 and later kernels, since
277we completely bypass the Linux IP stack, but on old versions of Linux
2782.1 and all versions of Linux prior to 2.1, it is a problem - pickier
279DHCP clients connected to the same network as the ISC DHCP server or
280ISC relay agent will not see messages from the DHCP server. It *is*
281possible to run into trouble with this on Linux 2.2 and later if you
80778e94 282are running a version of the DHCP server that was compiled on a Linux
da411127 2832.0 system, though.
7751e60d 284
26833160
TL
285It is possible to work around this problem on some versions of Linux
286by creating a host route from your network interface address to
287255.255.255.255. The command you need to use to do this on Linux
288varies from version to version. The easiest version is:
7751e60d 289
26833160 290 route add -host 255.255.255.255 dev eth0
7751e60d 291
26833160
TL
292On some older Linux systems, you will get an error if you try to do
293this. On those systems, try adding the following entry to your
294/etc/hosts file:
7751e60d 295
26833160 296255.255.255.255 all-ones
7751e60d 297
26833160 298Then, try:
7751e60d 299
26833160 300 route add -host all-ones dev eth0
7751e60d 301
26833160 302Another route that has worked for some users is:
7751e60d 303
26833160 304 route add -net 255.255.255.0 dev eth0
471fe68c 305
26833160
TL
306If you are not using eth0 as your network interface, you should
307specify the network interface you *are* using in your route command.
a8b53b42 308
3dcbf508 309 LINUX: IP BOOTP AGENT
6da19769
TL
310
311Some versions of the Linux 2.1 kernel apparently prevent dhcpd from
312working unless you enable it by doing the following:
313
314 echo 1 >/proc/sys/net/ipv4/ip_bootp_agent
315
316
3dcbf508 317 LINUX: MULTIPLE INTERFACES
2a1ebeee 318
4650dc25
TL
319Very old versions of the Linux kernel do not provide a networking API
320that allows dhcpd to operate correctly if the system has more than one
321broadcast network interface. However, Linux 2.0 kernels with version
322numbers greater than or equal to 2.0.31 add an API feature: the
323SO_BINDTODEVICE socket option. If SO_BINDTODEVICE is present, it is
324possible for dhcpd to operate on Linux with more than one network
cd977bed 325interface. In order to take advantage of this, you must be running a
3dcbf508
TL
3262.0.31 or greater kernel, and you must have 2.0.31 or later system
327headers installed *before* you build the DHCP Distribution.
2a1ebeee 328
cd977bed
TL
329We have heard reports that you must still add routes to 255.255.255.255
330in order for the all-ones broadcast to work, even on 2.0.31 kernels.
331In fact, you now need to add a route for each interface. Hopefully
332the Linux kernel gurus will get this straight eventually.
333
4650dc25
TL
334Linux 2.1 and later kernels do not use SO_BINDTODEVICE or require the
335broadcast address hack, but do support multiple interfaces, using the
336Linux Packet Filter.
337
09c6b1cf
PS
338 LINUX: OpenWrt
339
113e193f
PS
340DHCP 4.1 has been tested on OpenWrt 7.09 and 8.09. In keeping with
341standard practice, client/scripts now includes a dhclient-script file
342for OpenWrt. However, this is not sufficient by itself to run dhcp on
343OpenWrt; a full OpenWrt package for DHCP is available at
344ftp://ftp.isc.org/isc/dhcp/dhcp-4.1.0-openwrt.tar.gz
09c6b1cf 345
88cd8aca
DH
346 LINUX: 802.1q VLAN INTERFACES
347
348If you're using 802.1q vlan interfaces on Linux, it is necessary to
349vconfig the subinterface(s) to rewrite the 802.1q information out of
350packets received by the dhcpd daemon via LPF:
351
352 vconfig set_flag eth1.523 1 1
353
354Note that this may affect the performance of your system, since the
355Linux kernel must rewrite packets received via this interface. For
356more information, consult the vconfig man pages.
357
26833160 358 SCO
a8b53b42 359
41e45067
DH
360ISC DHCP will now work correctly on newer versions of SCO out of the
361box (tested on OpenServer 5.05b, assumed to work on UnixWare 7).
a8b53b42 362
45d545f0 363Older versions of SCO have the same problem as Linux (described earlier).
41e45067
DH
364The thing is, SCO *really* doesn't want to let you add a host route to
365the all-ones broadcast address.
366
367You can try the following:
fcebfc39
TL
368
369 ifconfig net0 xxx.xxx.xxx.xxx netmask 0xNNNNNNNN broadcast 255.255.255.255
370
371If this doesn't work, you can also try the following strange hack:
372
373 ifconfig net0 alias 10.1.1.1 netmask 8.0.0.0
a8b53b42 374
26833160
TL
375Apparently this works because of an interaction between SCO's support
376for network classes and the weird netmask. The 10.* network is just a
377dummy that can generally be assumed to be safe. Don't ask why this
41e45067 378works. Just try it. If it works for you, great.
a8b53b42 379
26833160
TL
380 HP-UX
381
382HP-UX has the same problem with the all-ones broadcast address that
aa857ee0
TL
383SCO and Linux have. One user reported that adding the following to
384/etc/rc.config.d/netconf helped (you may have to modify this to suit
385your local configuration):
386
387INTERFACE_NAME[0]=lan0
388IP_ADDRESS[0]=1.1.1.1
389SUBNET_MASK[0]=255.255.255.0
390BROADCAST_ADDRESS[0]="255.255.255.255"
391LANCONFIG_ARGS[0]="ether"
392DHCP_ENABLE[0]=0
26833160
TL
393
394 ULTRIX
395
396Now that we have Ultrix packet filter support, the DHCP Distribution
397on Ultrix should be pretty trouble-free. However, one thing you do
398need to be aware of is that it now requires that the pfilt device be
399configured into your kernel and present in /dev. If you type ``man
400packetfilter'', you will get some information on how to configure your
401kernel for the packet filter (if it isn't already) and how to make an
402entry for it in /dev.
403
404 FreeBSD
405
406Versions of FreeBSD prior to 2.2 have a bug in BPF support in that the
407ethernet driver swaps the ethertype field in the ethernet header
408downstream from BPF, which corrupts the output packet. If you are
409running a version of FreeBSD prior to 2.2, and you find that dhcpd
410can't communicate with its clients, you should #define BROKEN_FREEBSD_BPF
411in site.h and recompile.
a8b53b42 412
98311e4b
DH
413Modern versions of FreeBSD include the ISC DHCP 3.0 client as part of
414the base system, and the full distribution (for the DHCP server and
415relay agent) is available from the Ports Collection in
416/usr/ports/net/isc-dhcp3, or as a package on FreeBSD installation
417CDROMs.
418
adbef119 419 NeXTSTEP
a8f3586f
TL
420
421The NeXTSTEP support uses the NeXTSTEP Berkeley Packet Filter
cd977bed
TL
422extension, which is not included in the base NextStep system. You
423must install this extension in order to get dhcpd or dhclient to work.
a8f3586f 424
3dcbf508
TL
425 SOLARIS
426
e950a7be
SR
427There are two known issues seen when compiling using the Sun compiler.
428
429The first is that older Sun compilers generate an error on some of
430our uses of the flexible array option. Newer versions only generate
431a warning, which can be safely ignored. If you run into this error
432("type of struct member "buf" can not be derived from structure with
7cfeb916
SR
433flexible array member"), upgrade your tools to Oracle Solaris Studio
434(previously Sun Studio) 12 or something newer.
e950a7be
SR
435
436The second is the interaction between the configure script and the
437makefiles for the Bind libraries. Currently we don't pass all
438environment variables between the DHCP configure and the Bind configure.
439
440If you attempt to specify the compiler you wish to use like this:
441
442 CC=/opt/SUNWspro/bin/cc ./configure
443
444"make" may not build the Bind libraries with that compiler.
445
446In order to use the same compiler for Bind and DHCP we suggest the
447following commands:
448
449 CC=/opt/SUNWspro/bin/cc ./configure
450 CC=/opt/SUNWspro/bin/cc make
451
7cfeb916
SR
452 Solaris 11
453
454We have integrated a patch from Oracle to use sockets instead of
455DLPI on Solaris 11. This functionality was written for use with
456Solaris Studio 12.2 and requires the system/header package.
457
458By default this code is disabled in order to minimize disruptions
459for current users. In order to enable this code you will need to
460enable both USE_SOCKETS and USE_V4_PKTINFO as part of the
461configuration step. The command line would be something like:
462
463 ./configure --enable-use-sockets --enable-ipv4-pktinfo
464
b89b8e16
SR
465 Solaris 11 and ATF
466
467We have reports that ATF 0.15 and 0.16 do not build on Solaris 11. The
468following changes to the ATF source code appear to fix this issue:
469
470diff -ru atf-0.15/atf-c/tp_test.c atf-0.15-patched/atf-c/tp_test.c
471--- atf-0.15/atf-c/tp_test.c 2011-12-06 06:31:11.000000000 +0100
472+++ atf-0.15-patched/atf-c/tp_test.c 2012-06-19 15:54:57.000000000 +0200
473@@ -28,6 +28,7 @@
474*/
475
476#include <string.h>
477+#include <stdio.h>
478#include <unistd.h>
479
480#include <atf-c.h>
481
482diff -ru atf-0.15/atf-run/requirements.cpp atf-0.15-patched/atf-run/requirements.cpp
483--- atf-0.15/atf-run/requirements.cpp 2012-01-13 20:44:25.000000000 +0100
484+++ atf-0.15-patched/atf-run/requirements.cpp 2012-06-19 15:41:51.000000000 +0200
485@@ -29,7 +29,7 @@
486
487extern "C" {
488#include <sys/param.h>
489-#include <sys/sysctl.h>
490+//#include <sys/sysctl.h>
491}
492
493#include <cerrno>
494
7cfeb916
SR
495 Other Solaris Items
496
ce53cc84
TL
497One problem which has been observed and is not fixed in this
498patchlevel has to do with using DLPI on Solaris machines. The symptom
499of this problem is that the DHCP server never receives any requests.
35eb3023
TL
500This has been observed with Solaris 2.6 and Solaris 7 on Intel x86
501systems, although it may occur with other systems as well. If you
502encounter this symptom, and you are running the DHCP server on a
503machine with a single broadcast network interface, you may wish to
504edit the includes/site.h file and uncomment the #define USE_SOCKETS
88cd8aca
DH
505line. Then type ``make clean; make''. As an alternative workaround,
506it has been reported that running 'snoop' will cause the dhcp server
507to start receiving packets. So the practice reported to us is to run
508snoop at dhcpd startup time, with arguments to cause it to receive one
509packet and exit.
510
511 snoop -c 1 udp port 67 > /dev/null &
ce53cc84
TL
512
513The DHCP client on Solaris will only work with DLPI. If you run it
514and it just keeps saying it's sending DHCPREQUEST packets, but never
515gets a response, you may be having DLPI trouble as described above.
88cd8aca
DH
516If so, we have no solution to offer at this time, aside from the above
517workaround which should also work here. Also, because Solaris requires
518you to "plumb" an interface before it can be detected by the DHCP client,
519you must either specify the name(s) of the interface(s) you want to
520configure on the command line, or must plumb the interfaces prior to
521invoking the DHCP client. This can be done with ``ifconfig iface plumb'',
522where iface is the name of the interface (e.g., ``ifconfig hme0 plumb'').
ce53cc84
TL
523
524It should be noted that Solaris versions from 2.6 onward include a
525DHCP client that you can run with ``/sbin/ifconfig iface dhcp start''
786b0930
DH
526rather than using the ISC DHCP client, including DHCPv6. Consequently,
527we don't believe there is a need for the client to run on Solaris, and
528have not engineered the needed DHCPv6 modifications for the dhclient-script.
529If you feel this is in error, or have a need, please contact us.
3dcbf508 530
98311e4b
DH
531 AIX
532
533The AIX support uses the BSD socket API, which cannot differentiate on
534which network interface a broadcast packet was received; thus the DHCP
535server and relay will work only on a single interface. (They do work
536on multi-interface machines if configured to listen on only one of the
537interfaces.)
538
80778e94 539We have reports of Windows XP clients having difficulty retrieving
fc06ee4f
SR
540addresses from a server running on an AIX machine. This issue
541was traced to the client requiring messages be sent to the all ones
542broadcast address (255.255.255.255) while the AIX server was sending
543to 192.168.0.255.
544
545You may be able to solve this by including a relay between the client
546and server with the relay configured to use a broadcast of all-ones.
547
548A second option that worked for AIX 5.1 but doesn't seem to work for
549AIX 5.3 was to:
550 create a host file entry for all-ones (255.255.255.255)
551and then add a route:
552 route add -host all-ones -interface <local-ip-address>
553
98311e4b
DH
554The ISC DHCP distribution does not include a dhclient-script for AIX--
555AIX comes with a DHCP client. Contribution of a working dhclient-script
556for AIX would be welcome.
557
fc06ee4f 558
236d3a99
DH
559 MacOS X
560
561The MacOS X system uses a TCP/IP stack derived from FreeBSD with a
562user-friendly interface named the System Configuration Framework.
563As it includes a builtin DHCPv4 client (you are better just using that),
564this text is only about the DHCPv6 client (``dhclient -6 ...''). The DNS
565configuration (domain search list and name servers' addresses) is managed
566by a System Configuration agent, not by /etc/resolv.conf (which is a link
567to /var/run/resolv.conf, which itself only reflects the internal state;
394c505d 568the System Configuration framework's Dynamic Store).
236d3a99 569
394c505d
SR
570This means that modifying resolv.conf directly doesn't have the
571intended effect, instead the macos script sample creates its own
572resolv.conf.dhclient6 in /var/run, and inserts the contents of this
573file into the Dynamic Store.
574
575When updating the address configuration the System Configuration
576framework expects the prefix and a default router along with the
577configured address. As this extra information is not available via
578the DHCPv6 protocol the System Configuration framework isn't usable
579for address configuration, instead ifconfig is used directly.
236d3a99
DH
580
581Note the Dynamic Store (from which /var/run/resolv.conf is built) is
394c505d
SR
582recomputed from scratch when the current location/set is changed.
583Running the dhclient-script reinstalls the resolv.conf.dhclient6
584configuration.
236d3a99 585
6913a589
FD
586
587 ATF
588
589Please see the file DHCP/doc/devel/atf.dox for a description of building
590and using these tools.
591
592The optional unit tests use ATF (Automated Testing Framework) including
593the atf-run and atf-report tools. ATF deprecated these tools in
594version 0.19 and removed these tools from its sources in version 0.20,
595requiring you to get an older version, use Kyua with an ATF compatibility
596package or use the version included in the Bind sources.
597
f76ebbfd
TL
598 SUPPORT
599
98311e4b
DH
600The Internet Systems Consortium DHCP server is developed and distributed
601by ISC in the public trust, thanks to the generous donations of its
e021c50c 602sponsors. ISC now also offers commercial quality support contracts for
98311e4b
DH
603ISC DHCP, more information about ISC Support Contracts can be found at
604the following URL:
605
2c85ac9b 606 https://www.isc.org/services/support/
98311e4b 607
e021c50c
DH
608Please understand that we may not respond to support inquiries unless
609you have a support contract. ISC will continue its practice of always
610responding to critical items that effect the entire community, and
611responding to all other requests for support upon ISC's mailing lists
612on a best-effort basis.
98311e4b
DH
613
614However, ISC DHCP has attracted a fairly sizable following on the
45d545f0 615Internet, which means that there are a lot of knowledgeable users who
e021c50c
DH
616may be able to help you if you get stuck. These people generally
617read the dhcp-users@isc.org mailing list. Be sure to provide as much
618detail in your query as possible.
0cd69353 619
e021c50c
DH
620If you are going to use ISC DHCP, you should probably subscribe to
621the dhcp-users or dhcp-announce mailing lists.
da411127 622
98311e4b
DH
623WHERE TO SEND FEATURE REQUESTS: We like to hear your feedback. We may
624not respond to it all the time, but we do read it. If ISC DHCP doesn't
625work well for you, or you have an idea that would improve it for your
626use, please send your suggestion to dhcp-suggest@isc.org. This is also
627an excellent place to send patches that add new features.
628
e021ce5c
TL
629WHERE TO REPORT BUGS: If you want the act of sending in a bug report
630to result in you getting help in the form of a fixed piece of
631software, you are asking for help. Your bug report is helpful to us,
632but fundamentally you are making a support request, so please use the
1ad180b1
TL
633addresses described in the previous paragraphs. If you are _sure_ that
634your problem is a bug, and not user error, or if your bug report
e021c50c
DH
635includes a patch, you can send it to our ticketing system at
636dhcp-bugs@isc.org. If you have not received a notice that the ticket
637has been resolved, then we're still working on it.
e021ce5c 638
da411127
TL
639PLEASE DO NOT REPORT BUGS IN OLD SOFTWARE RELEASES! Fetch the latest
640release and see if the bug is still in that version of the software,
802fdea1
TM
641and if it is still present, _then_ report it. ISC release versions
642always have three numbers, for example: 1.2.3. The 'major release' is
6431 here, the 'minor release' is 2, and the 'maintenance release' is 3.
644ISC will accept bug reports against the most recent two major.minor
e021c50c
DH
645releases: for example, 1.0.0 and 0.9.0, but not 0.8.* or prior.
646
647PLEASE take a moment to determine where the ISC DHCP distribution
648that you're using came from. ISC DHCP is sometimes heavily modified
649by integrators in various operating systems - it's not that we
650feel that our software is perfect and incapable of having bugs, but
651rather that it is very frustrating to find out after many days trying
652to help someone that the sources you're looking at aren't what they're
653running. When in doubt, please retrieve the source distribution from
654ISC's web page and install it.
0cd69353 655
e021ce5c 656 HOW TO REPORT BUGS OR REQUEST HELP
4650dc25 657
da411127
TL
658When you report bugs or ask for help, please provide us complete
659information. A list of information we need follows. Please read it
660carefully, and put all the information you can into your initial bug
e021c50c
DH
661report. This will save us a great deal of time and more informative
662bug reports are more likely to get handled more quickly overall.
0cd69353 663
1ad180b1 664 1. The specific operating system name and version of the
adbef119 665 machine on which the DHCP server or client is running.
1ad180b1 666 2. The specific operating system name and version of the
adbef119
DH
667 machine on which the client is running, if you are having
668 trouble getting a client working with the server.
1ad180b1 669 3. If you're running Linux, the version number we care about is
adbef119
DH
670 the kernel version and maybe the library version, not the
671 distribution version - e.g., while we don't mind knowing
672 that you're running Redhat version mumble.foo, we must know
673 what kernel version you're running, and it helps if you can
674 tell us what version of the C library you're running,
675 although if you don't know that off the top of your head it
676 may be hard for you to figure it out, so don't go crazy
677 trying.
1ad180b1 678 4. The specific version of the DHCP distribution you're
adbef119 679 running, as reported by dhcpd -t.
1ad180b1 680 5. Please explain the problem carefully, thinking through what
adbef119
DH
681 you're saying to ensure that you don't assume we know
682 something about your situation that we don't know.
e021c50c
DH
683 6. Include your dhcpd.conf and dhcpd.leases file as MIME attachments
684 if they're not over 100 kilobytes in size each. If they are
713a2956 685 this large, please make them available to us, e.g., via a hidden
e021c50c
DH
686 http:// URL or FTP site. If you're not comfortable releasing
687 this information due to sensitive contents, you may encrypt
688 the file to our release signing key, available on our website.
1ad180b1 689 7. Include a log of your server or client running until it
adbef119
DH
690 encounters the problem - for example, if you are having
691 trouble getting some client to get an address, restart the
692 server with the -d flag and then restart the client, and
693 send us what the server prints. Likewise, with the client,
694 include the output of the client as it fails to get an
695 address or otherwise does the wrong thing. Do not leave
696 out parts of the output that you think aren't interesting.
1ad180b1 697 8. If the client or server is dumping core, please run the
adbef119
DH
698 debugger and get a stack trace, and include that in your
699 bug report. For example, if your debugger is gdb, do the
700 following:
0cd69353
TL
701
702 gdb dhcpd dhcpd.core
703 (gdb) where
704 [...]
705 (gdb) quit
706
707 This assumes that it's the dhcp server you're debugging, and
708 that the core file is in dhcpd.core.
cd977bed 709
684111f9 710Please see https://www.isc.org/dhcp/ for details on how to subscribe
98311e4b 711to the ISC DHCP mailing lists.
da411127 712
fef8c6f0
SR
713 HISTORY
714
715ISC DHCP was originally written by Ted Lemon under a contract with
716Vixie Labs with the goal of being a complete reference implementation
717of the DHCP protocol. Funding for this project was provided by
718Internet Systems Consortium. The first release of the ISC DHCP
719distribution in December 1997 included just the DHCP server.
720Release 2 in June 1999 added a DHCP client and a BOOTP/DHCP relay
721agent. DHCP 3 was released in October 2001 and included DHCP failover
722support, OMAPI, Dynamic DNS, conditional behaviour, client classing,
723and more. Version 3 of the DHCP server was funded by Nominum, Inc.
724The 4.0 release in December 2007 introduced DHCPv6 protocol support
725for the server and client.
726
727This product includes cryptographic software written
728by Eric Young (eay@cryptsoft.com).