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