2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-29 21:38:10 +00:00

Update release notes (lose obsolete cruft about old lease database formats)

This commit is contained in:
Ted Lemon 1997-11-22 08:18:16 +00:00
parent d3333a7459
commit 392cddfe1e

231
RELNOTES
View File

@ -1,204 +1,57 @@
Internet Software Consortium
Dynamic Host Configuration Protocol Server
Beta Release 5
August 29, 1996
Dynamic Host Configuration Protocol Distribution
Development Snapshot
November 22, 1997
Release Notes
!!!!!!! IMPORTANT !!!!!!!
This is the final development snapshot before Version 2 of the
Internet Software Consortium DHCP Distribution goes to beta.
Development snapshots after this one will be for Version 3 of the ISC
DHCP Server.
THE FORMAT OF THE dhcpd.conf AND dhcpd.leases FILES HAS CHANGED!
New in this snapshot:
!!!!!!! IMPORTANT !!!!!!!
- more manual pages
- lots of minor and some major bug fixes.
If you are currently using dhcpd Beta 4 Patchlevel 7 or earlier, YOU
MUST CONVERT YOUR LEASE DATABASE AND CONFIGURATION FILES before
running the new version of DHCPD. At best, dhcpd will not work. At
worst, the lease database could be erased.
This snapshot is being released in the hopes that a fair number of
DHCP sites will download it, try it out, and submit bug reports and
critique the new manual pages. Please do not hold back - the plan is
to cut the first Beta release in about two weeks - at the beginning of
December.
To convert your dhcpd.leases and dhcpd.conf files, make a backup copy
of each file and then run the dhcpxlt command with the old config file
as input and the new config file as output. For example:
Version 1 of the ISC DHCP Distribution included just a DHCP Server.
As of this writing, the most recent Version 1 distribution is Beta 5
Patchlevel 16. One more patchlevel is planned before Version 1.0 is
finalized. This is the release that we would expect most sites to run
in production.
mv /etc/dhcpd.conf /etc/dhcpd.conf.old
./dhcpxlt </etc/dhcpd.conf.old >/etc/dhcpd.conf
mv /var/db/dhcpd.leases /var/db/dhcpd.leases.old
./dhcpxlt </var/db/dhcpd.leases.old >/var/db/dhcpd.leases
Version 2 of the ISC DHCP Distribution adds a DHCP Client and a
DHCP/BOOTP Relay Agent to the DHCP Server that was offered in version
1.0. In addition, some new capabilities have been added to the
server:
The dhcpxlt command has been tested and appears to work, but it is
brand new and has only been tested by one person - me - at one site -
mine. Unfortunately, my site is relatively simple, so there's a
decent chance that I've overlooked something. Please proceed with
caution.
- IP addresses are now tested before they are assigned to
clients. This allows the DHCP server to detect rogue
machines that may have hijacked IP addresses before an IP
address conflict can occur.
NEW FEATURES
- The server may be configured so that some DHCP clients can
be excluded from booting.
NEW CONFIG FILE FORMAT
This version is fairly stable at this time, and will soon be
moved to the "stable" track. It has a number of new features, and is
the release that we would expect sites that want some stability but
need the new pinging feature, or need a client or relay agent (but
note that you can run the Version 1 server alongside the Version 2
client and relay agent).
Obviously, the first new feature is that the configuration file
formats have been changed. The old format was a major source of
confusion for new users. The new format uses braces for nesting and
semicolons to end every statement, so what in the old version looked
like:
Version 3 of the ISC DHCP Distribution will add Dynamic DNS Support,
asynchronous DNS query resolution, DHCP Authentication, and possibly
support for a DHCP Interserver Protocol and live querying of the DHCP
database. This release is not expected to be stable in the near
future, and is intended for sites that are in a position to
experiment, or for sites that desperately need the new features.
shared-network FOO
option domain-name "fugue.com"
subnet 204.254.239.0 netmask 255.255.255.224
option routers 204.254.239.1
subnet 205.254.239.32 netmask 255.255.255.224
option routers 204.254.239.33;
Now looks like:
shared-network FOO {
option domain-name "fugue.com";
subnet 204.254.239.0 netmask 255.255.255.224 {
option routers 204.254.239.1;
}
subnet 205.254.239.32 netmask 255.255.255.224 {
option routers 204.254.239.33;
}
}
I'm hoping that this will reduce confusion somewhat.
In addition to changing the file format, I've also documented it
(finally)! The definitive documentation is in dhcpd.conf.5, and gives
a complete and hopefully fairly readable description of the syntax,
along with examples and a reference section.
Also, the parser should now report line numbers correctly. Instead
of reporting the character position at which the offending token
starts, it now prints the line containing the offending token with an
arrow pointing at that token.
Hostnames may now begin with numbers - previously, a hostname like
1Q7.isc.org would not have been allowed.
Dhcpd will now exit if errors are found in the config file - before,
it would try to press on. I added this so that dhcpd would not even
try to read the dhcpd.leases file if the config file was broken.
README FILE UPDATED
Please take a look at the new README file - it's been brought forward
into the 20th century.
QNX SUPPORT
Brian Stecher of Watcom has donated configuration code for the QNX
operating system.
MAKEFILE FUN
Several people donated clean targets for the Makefile. The idea
being that you type ``make clean'', and all the object files are
removed. I added the target I liked best (donated by Mark Sirota).
DYNAMIC BOOTP LEASES
Mark also suggested a change that would set the expiry date on leases
for Dynamic BOOTP clients to something other than infinity. Two
different keywords have been added so that you can set either a cutoff
date or just a shorter lease length.
MEMORY ALLOCATION ZAPPED
A lot of bugs cropped up in Beta 4 having to do with uninitialized
allocated memory. I finally gave up and put code in the allocator to
just zero out every hunk of memory that gets allocated. Ugly, but
probably worthwhile.
NEW GROUP DECLARATION
Several users have asked for the ability to define client groupings
with common boot parameters which don't correspond with subnet
boundaries. This would be useful for a LAN where several departments
are spread out so that each department has some machines on one subnet
and some machines on another. It would also be useful for grouping
particular kinds of hardware together. The syntax looks like this:
group {
option domain-name "accounting.isc.org";
host foo {...}
host bar {...}
host baz {...}
}
NEXT BOOT SERVER SUPPORT
DHCP and BOOTP clients often need to load a kernel using TFTP or NFS
once they've configured their network interface. If your TFTP or NFS
server was the same as your DHCP server, this worked fine, but
otherwise, there was no way to boot. The next-server parameter now
allows you to specify the address of the server from which the boot
file should be loaded.
RESTRICTED DHCP
It is now possible to restrict access to dynamic addresses using the
boot-unknown-clients parameter. If boot-unknown-clients is turned
off on a given network, dhcpd will only provide addresses to clients
for which host entries exist.
DEBUGGING
It is now possible to start dhcpd without having it immediately go
into the background, using the -f option. This is handy for running
under a debugger or for running dhcpd out of /etc/inittab. It is
also possible to get a normally-compiled version of dhcpd to log its
debugging information to standard error as well as to syslogd, using
the -d flag.
HOSTNAMES
Dhcpd now looks up the hostnames for each address in the allocation
pool using gethostbyaddr. If a hostname option was not specified for
a client, the name is taken from the name of the client's host
declaration, if there is one. Otherwise, it's taken from the domain
name associated with the address being assigned to the client. This
only affects clients that want to learn their hostnames from the
server.
DHCPD.PID FILE WRITTEN SOONER
One user complained that the dhcpd.pid file was being written after
the lease database was loaded, and this could take a very significant
amount of time. Dhcpd now reads the pid file before loading the
database, and if no server is running on that pid, dhcpd rewrites the
pid file immediately. There are still race conditions here, but this
should improve things somewhat.
LOOPBACK AND POINT-TO-POINT INTERFACES AUTOMATICALLY ELIMINATED
I have added code which works everywhere I've tested it so far to
determine what kind of network connection each identified interface
provides, and to ignore any interface claiming to be a loopback
interface or a point-to-point interface. I am somewhat concerned
that this code may fail on Linux, but it should work on BSD-derived
TCP stacks, which are present on most Unix systems.
NUMEROUS BUG FIXES
Beta 4 Patchlevel 7 was not a very successful release, mostly because
I had to do it from Montreal over an X terminal, and so I wasn't able
to test it. A bunch of bugs introduced in Beta 4.7 have been fixed,
including:
- NIT no longer consumes excessive resources on SunOS
- NIT no longer fails on SunOS versions prior to 4.1.4.
- Mobile hosts should no longer corrupt the in-memory lease
database (I can't test this here - please let me know)
- DHCPD no longer gets infinite BOOTREQUESTs when booting
BOOTP clients on the other side of a BOOTP gateway.
- DHCPD should dump core less often - a lot of bogus pointer
dereferences have been fixed.
- IP aliases should now be handled correctly on Linux
machines. It would be nice if somebody could test this - I
can't.
- Lease times are now printed using printf and read in using a
hand-coded conversion routine. As a result, dhcpd no
longer puts GMT times on syslog messages.
- The lease database code is more robust (I don't know if this
ever caused any problems).