mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-31 14:25:41 +00:00
Update release notes (lose obsolete cruft about old lease database formats)
This commit is contained in:
231
RELNOTES
231
RELNOTES
@@ -1,204 +1,57 @@
|
|||||||
Internet Software Consortium
|
Internet Software Consortium
|
||||||
Dynamic Host Configuration Protocol Server
|
Dynamic Host Configuration Protocol Distribution
|
||||||
Beta Release 5
|
Development Snapshot
|
||||||
August 29, 1996
|
November 22, 1997
|
||||||
|
|
||||||
Release Notes
|
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
|
This snapshot is being released in the hopes that a fair number of
|
||||||
MUST CONVERT YOUR LEASE DATABASE AND CONFIGURATION FILES before
|
DHCP sites will download it, try it out, and submit bug reports and
|
||||||
running the new version of DHCPD. At best, dhcpd will not work. At
|
critique the new manual pages. Please do not hold back - the plan is
|
||||||
worst, the lease database could be erased.
|
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
|
Version 1 of the ISC DHCP Distribution included just a DHCP Server.
|
||||||
of each file and then run the dhcpxlt command with the old config file
|
As of this writing, the most recent Version 1 distribution is Beta 5
|
||||||
as input and the new config file as output. For example:
|
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
|
Version 2 of the ISC DHCP Distribution adds a DHCP Client and a
|
||||||
./dhcpxlt </etc/dhcpd.conf.old >/etc/dhcpd.conf
|
DHCP/BOOTP Relay Agent to the DHCP Server that was offered in version
|
||||||
mv /var/db/dhcpd.leases /var/db/dhcpd.leases.old
|
1.0. In addition, some new capabilities have been added to the
|
||||||
./dhcpxlt </var/db/dhcpd.leases.old >/var/db/dhcpd.leases
|
server:
|
||||||
|
|
||||||
The dhcpxlt command has been tested and appears to work, but it is
|
- IP addresses are now tested before they are assigned to
|
||||||
brand new and has only been tested by one person - me - at one site -
|
clients. This allows the DHCP server to detect rogue
|
||||||
mine. Unfortunately, my site is relatively simple, so there's a
|
machines that may have hijacked IP addresses before an IP
|
||||||
decent chance that I've overlooked something. Please proceed with
|
address conflict can occur.
|
||||||
caution.
|
|
||||||
|
|
||||||
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
|
Version 3 of the ISC DHCP Distribution will add Dynamic DNS Support,
|
||||||
formats have been changed. The old format was a major source of
|
asynchronous DNS query resolution, DHCP Authentication, and possibly
|
||||||
confusion for new users. The new format uses braces for nesting and
|
support for a DHCP Interserver Protocol and live querying of the DHCP
|
||||||
semicolons to end every statement, so what in the old version looked
|
database. This release is not expected to be stable in the near
|
||||||
like:
|
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).
|
|
||||||
|
Reference in New Issue
Block a user