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