mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-30 05:47:45 +00:00
Update release notes (lose obsolete cruft about old lease database formats)
This commit is contained in:
parent
d3333a7459
commit
392cddfe1e
231
RELNOTES
231
RELNOTES
@ -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).
|
||||
|
Loading…
x
Reference in New Issue
Block a user