205 lines
7.6 KiB
Plaintext
205 lines
7.6 KiB
Plaintext
|
Internet Software Consortium
|
||
|
Dynamic Host Configuration Protocol Server
|
||
|
Beta Release 5
|
||
|
August 29, 1996
|
||
|
|
||
|
Release Notes
|
||
|
|
||
|
!!!!!!! IMPORTANT !!!!!!!
|
||
|
|
||
|
THE FORMAT OF THE dhcpd.conf AND dhcpd.leases FILES HAS CHANGED!
|
||
|
|
||
|
!!!!!!! IMPORTANT !!!!!!!
|
||
|
|
||
|
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.
|
||
|
|
||
|
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:
|
||
|
|
||
|
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
|
||
|
|
||
|
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.
|
||
|
|
||
|
NEW FEATURES
|
||
|
|
||
|
NEW CONFIG FILE FORMAT
|
||
|
|
||
|
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:
|
||
|
|
||
|
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).
|