]>
Commit | Line | Data |
---|---|---|
da411127 | 1 | Internet Software Consortium DHCP Distribution |
140158d3 TL |
2 | Version 3, Beta 2, Patchlevel 23 |
3 | March 22, 2001 | |
72c7bd79 TL |
4 | |
5 | Release Notes | |
6 | ||
74f45f96 TL |
7 | This is a development snapshot of Version 3 of the Internet Software |
8 | Consortium DHCP Distribution. | |
72c7bd79 | 9 | |
da411127 | 10 | NEW FEATURES |
16449d9c | 11 | |
da411127 TL |
12 | Version 3, Beta 2 of the ISC DHCP Distribution includes the following |
13 | features that are new since version 2.0: | |
29d5553a | 14 | |
da411127 TL |
15 | - DHCP Failover Protocol support |
16 | - OMAPI, an API for accessing and modifying the DHCP server and | |
17 | client state. | |
18 | - Conditional behaviour | |
19 | - Storing arbitrary information on leases | |
20 | - Address pools with access control | |
21 | - Client classing | |
22 | - Address allocation restriction by class | |
23 | - Relay agent information option support | |
24 | - Dynamic DNS updates | |
25 | - Many bug fixes, performance enhancements, and minor new DHCP | |
26 | protocol features. | |
72c7bd79 | 27 | |
f67f6c4a TL |
28 | This beta release is quite new, and is running in production at only a |
29 | few sites. We strongly recommend that you exercise caution in | |
30 | installing it. The 3.0 Beta 2 lease file is not backwards compatible | |
31 | with the 3.0 Beta 1 lease file, so if you have to go back, you will | |
32 | have to convert your lease files back to the 3.0 Beta 1 format - if | |
33 | you try to run a 3.0 Beta 1 server on a 3.0 Beta 2 lease file, it will | |
34 | cheerfully delete all your leases. Having said that, of course the | |
35 | way that new releases of open source software become stable is by | |
36 | people using them, finding the bugs, and reporting the bugs. So | |
37 | while we urge you to exercise caution, we would also appreciate any | |
38 | testing or production use you can safely do. | |
4ff4053b | 39 | |
ca4606b5 TL |
40 | For information on how to install, configure and run this software, |
41 | as well as how to find documentation and report bugs, please consult | |
42 | the README file. | |
43 | ||
da411127 TL |
44 | The Dynamic DNS Update support is a descendent of an implementation |
45 | done by Lans Carstensen and Brian Dols at Rose-Hulman Institute of | |
46 | Technology, Jim Watt at Perkin-Elmer, Irina Goble at Integrated | |
47 | Measurement Systems, and Brian Murrell at BC Tel Advanced | |
48 | Communications. I'd like to express my thanks to all of these good | |
49 | people here, both for working on the code and for prodding me into | |
50 | improving it. | |
2aa36519 | 51 | |
140158d3 TL |
52 | Changes since 3.0 Beta 2 Patchlevel 22 |
53 | ||
54 | - Apply some patches suggested by Cyrille Lefevre, who is maintaining | |
55 | the FreeBSD ISC DHCP Distribution port. | |
56 | ||
57 | - Fix a core dump in DHCPRELEASE. | |
58 | ||
3a395e60 TL |
59 | Changes since 3.0 Beta 2 Patchlevel 21 |
60 | ||
61 | - This time for sure: fix the spin described in the changes for pl20. | |
62 | ||
fc74dd0c TL |
63 | Changes since 3.0 Beta 2 Patchlevel 20 |
64 | ||
65 | - Fix a problem with Linux detecting large numbers of interfaces (Ben) | |
66 | ||
67 | - Fix a memory smash in the quotify code, which was introduced in | |
68 | pl19. | |
69 | ||
70 | - Actually fix the spin described in the changes for pl20. The | |
71 | previous fix only partially fixed the problem - enough to get it | |
72 | past the regression test. | |
73 | ||
ed5ee591 TL |
74 | Changes since 3.0 Beta 2 Patchlevel 19 |
75 | ||
76 | - Fix a bug that could cause the server to abort if compiled with | |
77 | POINTER_DEBUG enabled. | |
78 | ||
79 | - Fix a bug that could cause the server to spin when responding to a | |
80 | DHCPREQUEST. | |
81 | ||
82 | - Apply Joost Mulders' suggested patches for DLPI on x86. | |
83 | ||
84 | - Support NUL characters in quoted strings. | |
85 | ||
86 | - Install unformatted man pages on SunOS. | |
87 | ||
b3fad8ac TL |
88 | Changes since 3.0 Beta 2 Patchlevel 18 |
89 | ||
3350f5b7 TL |
90 | - Allow the server to be placed in partner-down state using OMAPI. |
91 | (Damien Neil) | |
92 | ||
93 | - Implement omshell, which can be used to do arbitrary things to the | |
94 | server (in theory). (Damien Neil) | |
95 | ||
96 | - Fix a case where if a client had two different leases the server could | |
97 | actually dereference the second one when it hadn't been referenced, | |
98 | leading to memory corruption and a core dump. (James Brister) | |
99 | ||
100 | - Fix a case where a client could request the address of another client's | |
101 | lease, but find_lease wouldn't detect that the other client had it, and | |
102 | would attempt to allocate it to the client, resulting in a lease conflict | |
103 | message. | |
104 | ||
105 | - Fix a case where a client with more than one client identifier could be | |
106 | given a lease where the hardware address was correct but the client | |
107 | identifier was not, resulting in a lease conflict message. | |
108 | ||
109 | - Fix a problem where the server could write out a colon-seperated | |
110 | hex list as a value for a variable, which would then not parse. | |
111 | The fix is to always write strings as quoted strings, with any | |
112 | non-printable characters quoted as octal escape sequences. So | |
113 | a file written the old way still won't work, but new files written | |
114 | this way will work. | |
115 | ||
b3fad8ac TL |
116 | - Fix documentation for sending non-standard options. |
117 | ||
118 | - Use unparsable names for unknown options. WARNING: this will | |
119 | break any configuration files that use the option-nnn convention. | |
120 | If you want to continue to use this convention for some options, | |
121 | please be sure to write a definition, like this: | |
122 | ||
123 | option option-nnn code nnn = string; | |
124 | ||
125 | You can use a descriptive name instead of option-nnn if you like. | |
126 | ||
127 | - Fix a problem where we would see a DHCPDISCOVER/DHCPOFFER/ | |
128 | DHCPREQUEST/DHCPACK/DHCPREQUEST/DHCPNAK sequence. This was the | |
129 | result of a deceptively silly bug in supersede_lease. | |
130 | ||
131 | - Fix client script exit status check, according to a fix supplied by | |
132 | Hermann Lauer. | |
133 | ||
134 | - Fix an endianness bug in the tracefile support, regarding ICMP | |
135 | messages. | |
136 | ||
3350f5b7 TL |
137 | - Fix a bug in the client where the medium would not work correctly if |
138 | it contained quoted strings. | |
139 | ||
b3fad8ac TL |
140 | ** there was no pl17 ** |
141 | ||
e6d30fd6 TL |
142 | Changes since 3.0 Beta 2 Patchlevel 16 |
143 | ||
6da9db9d TL |
144 | - Add support for transaction tracing. This allows the state of the |
145 | DHCP server on startup, and all the subsequent transactions, to be | |
146 | recorded in a file which can then be played back to reproduce the | |
147 | behaviour of the DHCP server. This can be used to quickly | |
148 | reproduce bugs that cause core dumps or corruption, and also for | |
149 | tracking down memory leaks. | |
150 | ||
151 | - Incorporate some bug fixes provided by Joost Mulders for the DLPI | |
152 | package which should clear up problems people have been seeing on | |
153 | Solaris. | |
154 | ||
155 | - Fix bugs in the handling of options stored as linked lists (agent | |
156 | options, fqdn options and nwip options) that could cause memory | |
157 | corruption and core dumps. | |
158 | ||
159 | - Fix a bug in DHCPREQUEST handling that resulted in DHCPNAK messages | |
160 | not being send in some cases when they were needed. | |
161 | ||
162 | - Make the lease structure somewhat more compact. | |
163 | ||
164 | - Make initial failover startup *much* faster. This was researched | |
165 | and implemented by Damien Neil. | |
166 | ||
167 | - Add a --version flag to all executables, which prints the program | |
168 | name and version to standard output. | |
169 | ||
170 | - Don't rewrite the lease file every thousand leases. | |
171 | ||
e6d30fd6 TL |
172 | - A bug in nit.c for older SunOS machines was fixed by a patch sent in |
173 | by Takeshi Hagiwara. | |
174 | ||
6da9db9d TL |
175 | - Fix a memory corruption bug in the DHCP client. |
176 | ||
177 | - Lots of documentation updates. | |
178 | ||
179 | - Add a feature allowing environment variables to be passed to the | |
180 | DHCP client script on the DHCP client command line. | |
181 | ||
182 | - Fix client medium support, which had been broken for some time. | |
183 | ||
184 | - Fix a bug in the DHCP client initial startup backoff interval, which | |
185 | would cause two DHCPDISCOVERS to be sent back-to-back on startup. | |
186 | ||
187 | ||
af49fdff TL |
188 | Changes since 3.0 Beta 2 Patchlevel 15 |
189 | ||
190 | - Some documentation tweaks. | |
191 | ||
192 | - Maybe fix a problem in the DLPI code. | |
193 | ||
194 | - Fix some error code space inconsistencies in ddns update code. | |
195 | ||
196 | - Support relay agents that intercept unicast DHCP messages to stuff | |
197 | agent options into them. | |
198 | ||
199 | - Fix a small memory leak in the relay agent option support code. | |
200 | ||
c5b569f8 TL |
201 | - Fix a core dump that would occur if a packet was sent with no |
202 | options. | |
203 | ||
754ae3e9 TL |
204 | Changes since 3.0 Beta 2 Patchlevel 14 |
205 | ||
206 | - Finish fixing a long-standing bug in the agent options code. This | |
207 | was causing core dumps and failing to operate correctly - in | |
208 | particular, agent option stashing wasn't working. Agent option | |
209 | stashing should now be working, meaning that agent options can be | |
210 | used in class statements to control address allocation. | |
211 | ||
212 | - Fix up documentation. | |
213 | ||
214 | - Fix a couple of small memory leaks that would have added up | |
215 | significantly in a high-demand situation. | |
216 | ||
217 | - Add a log-facility configuration parameter. | |
218 | ||
219 | - Fix a compile error on some older operating systems. | |
220 | ||
221 | - Add the ability in the client to execute certain statements before | |
222 | transmitting packets to the server. Handy for debugging; not much | |
223 | practical use otherwise. | |
224 | ||
225 | - Don't send faked-out giaddr when renewing or bound - again, useful | |
226 | for debugging. | |
227 | ||
2f2e7960 TL |
228 | Changes since 3.0 Beta 2 Patchlevel 13 |
229 | ||
230 | - Fixed a problem where the fqdn decoder would sometimes try to store | |
231 | an option with an (unsigned) negative length, resulting in a core | |
232 | dump on some systems. | |
233 | ||
234 | - Work around the Win98 DHCP client, which NUL-terminates the FQDN | |
235 | option. | |
236 | ||
237 | - Work around Win98 and Win2k clients that will claim they want to do | |
238 | the update even when they don't have any way to do it. | |
239 | ||
240 | - Fix some log messages that can be printed when failover is operating | |
241 | that were not printing enough information. | |
242 | ||
243 | - It was possible for a DHCPDISCOVER to get an allocation even when | |
244 | the state machine said the server shouldn't be responding. | |
245 | ||
246 | - Don't load balance DHCPREQUESTs from clients in RENEWING and | |
247 | REBINDING, since in RENEWING, if we heard it, it's for us, and in | |
248 | REBINDING, the client wouldn't have got to REBINDING if its primary | |
249 | were answering. | |
250 | ||
251 | - When we get a bogus state lease binding state transition, don't do | |
252 | the transition. | |
253 | ||
254 | ||
66e98927 TL |
255 | Changes since 3.0 Beta 2 Patchlevel 12 |
256 | ||
257 | - Fixed a couple of silly compile errors. | |
258 | ||
a1e2e3d6 TL |
259 | Changes since 3.0 Beta 2 Patchlevel 11 |
260 | ||
261 | - Albert Herranz tracked down and fixed a subtle bug in the base64 | |
262 | decoder that would prevent any key with an 'x' in its base64 | |
263 | representation from working correctly. | |
264 | ||
265 | - Thanks to Chris Cheney and Michael Sanders, we have a fix for the | |
266 | hang that they both spotted in the DHCP server - when | |
267 | one-lease-per-client was set, the code to release the "other" lease | |
268 | could spin. | |
269 | ||
270 | - Fix a problem with alignment of the input buffer in bpf in cases | |
271 | where two packets arrive in the same bpf read. | |
272 | ||
273 | - Fix a problem where the relay agent would crash if you specified an | |
274 | interface name on the command line. | |
275 | ||
276 | - Add the ability to conditionalize client behaviour based on the | |
277 | client state. | |
278 | ||
279 | - Add support for the FQDN option, and added support for a new way of | |
280 | doing ddns updates (ddns update style interim) that allows more than | |
281 | one DHCP server to update the DNS for the same network(s). This | |
282 | was implemented by Damien Neil with some additional functionality | |
283 | added by Ted Lemon. | |
284 | ||
285 | - Damien added a "log" statement, so that the configuration file can | |
286 | be made to log debugging information and other information. | |
287 | ||
288 | - Fixed a bug that caused option buffers not to be terminated with an | |
289 | end option. | |
290 | ||
291 | - Fixed a long-standing bug in the support for option spaces where the | |
292 | options are stored as an ordered list rather than in a hash table, | |
293 | which could theoretically result in memory pool corruption. | |
294 | ||
295 | - Prevent hardware declarations with no actual hardware address from | |
296 | being written as something unparsable, and behave correctly in the | |
297 | face of a null hardware address on input. | |
298 | ||
299 | - Allow key names to be FQDNs, and qualify the algorithm name if it is | |
300 | specified unqualified. | |
301 | ||
302 | - Modify the DDNS update code so that it never prints the "resolver | |
303 | failed" message, but instead says *why* the resolver failed. | |
304 | ||
305 | - Officially support the subnet selection option, which now has an | |
306 | RFC. | |
307 | ||
308 | - Fix a build bug on MacOS X. | |
309 | ||
310 | - Allow administrator to disable ping checking. | |
311 | ||
312 | - Clean up dhcpd.conf documentation and add more information about how | |
313 | it works. | |
314 | ||
6c68ec36 TL |
315 | Changes since 3.0 Beta 2 Patchlevel 10 |
316 | ||
317 | - Fix a bug introduced during debugging (!) and accidentally committed | |
318 | to CVS. | |
319 | ||
9fd337e7 TL |
320 | Changes since 3.0 Beta 2 Patchlevel 9 |
321 | ||
322 | - Fix DHCP client handling of vendor encapsulated options. | |
323 | ||
324 | - Fix a bug in the handling of relay agent information options introduced | |
325 | in patchlevel 9. | |
326 | ||
327 | - Stash agent options on client leases by default, and use the stashed | |
328 | options at renewal time. | |
329 | ||
330 | - Add the ability to test the client's binding state in the client | |
331 | configuration language. | |
332 | ||
333 | - Fix a core dump in the DNS update code. | |
334 | ||
335 | - Fix some expression evaluation bugs that were causing updates to be | |
336 | done when no client hostname was received. | |
337 | ||
338 | - Fix expression evaluation debugging printfs. | |
339 | ||
340 | - Teach pretty_print_option to print options in option spaces other than | |
341 | the DHCP option space. | |
342 | ||
343 | - Add a warning message if the RHS of a not is not boolean. | |
344 | ||
345 | - Never select for more than a day, because some implementations of | |
346 | select will just fail if the timeout is too long (!). | |
347 | ||
348 | - Fix a case where a DHCPDISCOVER from an unknown network would be | |
349 | silently dropped. | |
350 | ||
351 | - Fix a bug where if a client requested an IP address for which a different | |
352 | client had the lease, the DHCP server would reallocate it anyway. | |
353 | ||
354 | - Fix the DNS update code so that if the client changes its name, the DNS | |
355 | will be correctly updated. | |
356 | ||
3922772a TL |
357 | Changes since 3.0 Beta 2 Patchlevel 8 |
358 | ||
359 | - Oops, there was another subtle math error in the header-length | |
360 | bounds-checking. | |
361 | ||
362 | Changes since 3.0 Beta 2 Patchlevel 7 | |
848c2547 TL |
363 | |
364 | - Oops, forgot to byte-swap udp header length before bounds-checking it. | |
365 | ||
3922772a | 366 | Changes since 3.0 Beta 2 Patchlevel 6 |
0f6045f8 | 367 | |
f8572308 TL |
368 | - Fix a possible DoS attack where a client could cause the checksummer |
369 | to dump core. This was a read, not a write, so it shouldn't be | |
370 | possible to exploit it any further than that. | |
371 | ||
372 | - Implement client- and server-side support for using the Client FQDN | |
373 | option. | |
374 | ||
375 | - Support for other option spaces in the client has been added. This | |
376 | means that it is now possible to define a vendor option space on the | |
377 | client, request options in that space from the server (which must | |
378 | define the same option space), and then use those options in the | |
379 | client. This also allows NWIP and Client FQDN options to be used | |
380 | meaningfully. | |
381 | ||
382 | - Add object initializer support. This means that objects can now be | |
383 | initialized to something other than all-zeros when allocated, which | |
384 | makes, e.g., the interface object support code a little more robust. | |
385 | ||
386 | - Fix an off-by-one bug in the host stuffer. This was causing host | |
387 | deletes not the work, and may also have been causing OMAPI | |
388 | connections to get dropped. Thanks to James Brister for tracking | |
389 | this one down! | |
390 | ||
391 | - Fixed a core dump in the interface discovery code that is triggered | |
392 | when there is no subnet declaration for an interface, but the server | |
393 | decides to continue running. Thanks to Shane Kerr for tracking | |
394 | down and fixing this problem. | |
395 | ||
396 | Changes since 3.0 Beta 2 Patchlevel 5 | |
397 | ||
0f6045f8 TL |
398 | - Fix a bug in the recent enhancement to the interface discovery code |
399 | to support arbitrary-length interface lists. | |
400 | ||
401 | - Support NUL-terminated DHCP options when initializing client-script | |
402 | environment. | |
403 | ||
404 | - Fix suffix operator. | |
405 | ||
406 | - Fix NetWare/IP option parsing. | |
407 | ||
408 | - Better error/status checking in dhcpctl initialization and omapi | |
409 | connection code. | |
410 | ||
411 | - Fix a potential memory smash in dhcpctl code. | |
412 | ||
413 | - Fix SunOS4 and (maybe) Ultrix builds. | |
414 | ||
415 | - Fix a bug where a certain sort of incoming packet could cause a core | |
416 | dump on Solaris (and probably elsewhere). | |
417 | ||
418 | - Add some more safety checks in error logging code. | |
419 | ||
420 | - Add support for ISC_R_INCOMPLETE in OMAPI protocol connection code. | |
421 | ||
422 | - Fix relay agent so that if an interface is specified on the command | |
423 | line, the relay agent does not dump core. | |
424 | ||
425 | - Fix class matching so that match if can be combined with match or | |
426 | spawn with. | |
427 | ||
428 | - Do not allow spurious leases in the lease database to introduce | |
429 | potentially bogus leases into the in-memory database. | |
430 | ||
431 | - Fix a byte-order problem in the client hardware address type code | |
432 | for OMAPI. | |
433 | ||
434 | - Be slightly less picky about what sort of hardware addresses OMAPI | |
435 | can install in host declarations. | |
436 | ||
801de092 TL |
437 | Changes since 3.0 Beta 2 Patchlevel 4 |
438 | ||
439 | - Incorporated Peter Marschall's proposed change to array/record | |
440 | parsing, which allows things like the slp-agent option to be encoded | |
441 | correctly. Thanks very much to Peter for taking the initiative to | |
442 | do this, and for doing such a careful job of it (e.g., updating the | |
443 | comments)! | |
444 | ||
445 | - Added an encoding for the slp-agent option. :') | |
446 | ||
6ed7a93d TL |
447 | - Fixed SunOS 4 build. Thanks to Robert Elz for responding to my |
448 | request for help on this with patches! | |
449 | ||
450 | - Incorporated a change that should fix a problem reported by Philippe | |
451 | Jumelle where when the network connection between two servers is | |
452 | lost, they never reconnect. | |
453 | ||
454 | - Fix client script files other than that for NetBSD to actually use | |
455 | make_resolv_conf as documented in the manual page. | |
456 | ||
457 | - Fix a bug in the packet handling code that could result in a core | |
458 | dump. | |
459 | ||
460 | - Fix a bug in the bootp code where responses on the local net would | |
461 | be sent to the wrong MAC address. Thanks to Jerry Schave for | |
462 | catching this one. | |
463 | ||
490eb5e7 TL |
464 | Changes since 3.0 Beta 2 Patchlevel 3 |
465 | ||
466 | - In the DHCP client, execute client statements prior to using the values | |
467 | of options, so that the client configuration can overried, e.g., the | |
468 | lease renewal time. | |
469 | ||
470 | - Fix a reference counting error that would result in very reproducible | |
471 | failures in updates, as well as occasional core dumps, if a zone was | |
472 | declared without a key. | |
473 | ||
474 | - Fix some Linux 2.0 compilation problems. | |
475 | ||
476 | - Fix a bug in scope evaluation during execution of "on" statements that | |
477 | caused values not to be recorded on leases. | |
478 | ||
479 | - If the dhcp-max-message-size option is specified in scope, and the | |
480 | client didn't send this option, use the one specified in scope to | |
481 | determine the maximum size of the response. | |
482 | ||
592d8153 TL |
483 | Changes since 3.0 Beta 2 Patchlevel 2 |
484 | ||
359b023e TL |
485 | - Fix a case where spawning subclasses were being allocated |
486 | incorrectly, resulting in a core dump. | |
487 | ||
592d8153 TL |
488 | - Fix a case where the DHCP server might inappropriately NAK a |
489 | RENEWING client. | |
490 | ||
491 | - Fix a place dhcprequest() where static leases could leak. | |
492 | ||
493 | - Include memory.h in omapip_p.h so that we don't get warnings about | |
494 | using memcmp(). | |
495 | ||
2aa36519 TL |
496 | Changes since 3.0 Beta 2 Patchlevel 1 |
497 | ||
498 | - Notice when SIOCFIGCONF returns more data than fit in the buffer - | |
499 | allocate a larger buffer, and retry. Thanks to Greg Fausak for | |
500 | pointing this out. | |
501 | ||
502 | - In the server, if no interfaces were configured, report an error and | |
503 | exit. | |
504 | ||
505 | - Don't ever record a state of 'startup'. | |
506 | ||
507 | - Don't try to evaluate the local failover binding address if none was | |
508 | specified. Thanks to Joseph Breu for finding this. |