SkillAgentSearch skills...

Dhcp

ISC DHCP is enterprise grade, open source solution for DHCP servers, relay agents, and clients, supports both IPv4 and IPv6, and is suitable for use in high-volume and high-reliability applications.

Install / Use

/learn @isc-projects/Dhcp
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

      Internet Systems Consortium DHCP Distribution
		     Version 4.4.3-P1
		      5 October 2022

		      README FILE

NOTE: This software is now End-Of-Life. 4.4.3 is the final release planned. We will continue to keep the public issue tracker and user mailing list open.

You should read this file carefully before trying to install or use the ISC DHCP Distribution.

		  TABLE OF CONTENTS

1	WHERE TO FIND DOCUMENTATION
2	RELEASE STATUS
3	BUILDING THE DHCP DISTRIBUTION
 3.1	 UNPACKING IT
 3.2	 CONFIGURING IT
  3.2.1	  DYNAMIC DNS UPDATES
  3.2.2   LOCALLY DEFINED OPTIONS
 3.3	 BUILDING IT
4	INSTALLING THE DHCP DISTRIBUTION
5	USING THE DHCP DISTRIBUTION
 5.1	  FIREWALL RULES
 5.2	 LINUX
  5.2.1	  IF_TR.H NOT FOUND
  5.2.2	  SO_ATTACH_FILTER UNDECLARED
  5.2.3	  PROTOCOL NOT CONFIGURED
  5.2.4	  BROADCAST
  5.2.6	  IP BOOTP AGENT
  5.2.7	  MULTIPLE INTERFACES
 5.3    ATF
6	SUPPORT
 6.1	 HOW TO REPORT BUGS
7	HISTORY

	      WHERE TO FIND DOCUMENTATION

Documentation for this software includes this README file, the RELNOTES file, and the manual pages, which are in the server, common, client and relay subdirectories. The README file (this file) includes late-breaking operational and system-specific information that you should read even if you don't want to read the manual pages, and that you should certainly read if you run into trouble. Internet standards relating to the DHCP protocol are listed in the References document that is available in html, txt and xml formats in doc/ subdirectory. You will have the best luck reading the manual pages if you build this software and then install it, although you can read them directly out of the distribution if you need to.

DHCP server documentation is in the dhcpd man page. Information about the DHCP server lease database is in the dhcpd.leases man page. Server configuration documentation is in the dhcpd.conf man page as well as the dhcp-options man page. A sample DHCP server configuration is in the file server/dhcpd.conf.example. The source for the dhcpd, dhcpd.leases and dhcpd.conf man pages is in the server/ sub- directory in the distribution. The source for the dhcp-options.5 man page is in the common/ subdirectory. The server component is End-of-Life.

DHCP Client documentation is in the dhclient man page. DHCP client configuration documentation is in the dhclient.conf man page and the dhcp-options man page. The DHCP client configuration script is documented in the dhclient-script man page. The format of the DHCP client lease database is documented in the dhclient.leases man page. The source for all these man pages is in the client/ subdirectory in the distribution. In addition, the dhcp-options man page should be referred to for information about DHCP options. The client component is End-of-Life.

DHCP relay agent documentation is in the dhcrelay man page, the source for which is distributed in the relay/ subdirectory. The relay component is End-of-Life.

KEA Migration Assistant documentation, including how to build, install and use it, is included in the keama/ directory.

To read installed manual pages, use the man command. Type "man page" where page is the name of the manual page. This will only work if you have installed the ISC DHCP distribution using the ``make install'' command (described later).

If you want to read manual pages that aren't installed, you can type nroff -man page |more'' where page is the filename of the unformatted manual page. The filename of an unformatted manual page is the name of the manual page, followed by '.', followed by some number - 5 for documentation about files, and 8 for documentation about programs. For example, to read the dhcp-options man page, you would type nroff -man common/dhcp-options.5 |more'', assuming your current working directory is the top level directory of the ISC DHCP Distribution.

Please note that the pathnames of files to which our manpages refer will not be correct for your operating system until after you iterate 'make install' (so if you're reading a manpage out of the source directory, it may not have up-to-date information).

			RELEASE STATUS

Version 4.4.3-P1 is a maintenance release of the DHCP client, relay and server. It is the final release for the client and relay components, which have reached end-of-life and will no longer be maintained.

	    BUILDING THE DHCP DISTRIBUTION

		     UNPACKING IT

To build the DHCP Distribution, unpack the compressed tar file using the tar utility and the gzip command - type something like:

gunzip dhcp-4.4.3-P1.tar.gz
tar xvf dhcp-4.4.3-P1.tar

		    CONFIGURING IT

Now, cd to the dhcp-4.4.3-P1 subdirectory that you've just created and configure the source tree by typing:

./configure

If the configure utility can figure out what sort of system you're running on, it will create a custom Makefile for you for that system; otherwise, it will complain. If it can't figure out what system you are using, that system is not supported - you are on your own.

Several options may be enabled or disabled via the configure command. You can get a list of these by typing:

./configure --help

If you want to use dynamic shared libraries automake, autoconf (aka GNU autotools) and libtool must be available. The DHCP distribution provides 3 configure.ac* files: the -lt version has no libtool support and was copied to the configure.ac standard file in the distribution. To enable libtool support you should perform these steps:

cp configure.ac+lt configure.ac
autoreconf -i

after you can use the regenerated configure as usual (with libtool support (--enable-libtool) on by default):

./configure

For compatibility (and people who don't read this documentation) the --enable-libtool configuration file is supported even by the distributed configure (and off by default). The previous steps are performed and the regenerated configure called with almost the same parameters (this "almost" makes the use of this feature not recommended).

Note you can't go back from with libtool support to without libtool support by restoring configure.ac and rerun autoreconf. If you want or need to restore the without libtool support state the required way is to simply restore the whole distribution.

		 DYNAMIC DNS UPDATES

A fully-featured implementation of dynamic DNS updates is included in this release. It uses libraries from BIND and, to avoid issues with different versions, includes the necessary BIND version. The appropriate BIND libraries will be compiled and installed in the bind subdirectory as part of the make step. In order to build the necessary libraries you will need to have "gmake" available on your build system.

There is documentation for the DDNS support in the dhcpd.conf manual page - see the beginning of this document for information on finding manual pages.

	       LOCALLY DEFINED OPTIONS

In previous versions of the DHCP server there was a mechanism whereby options that were not known by the server could be configured using a name made up of the option code number and an identifier: "option-nnn" This is no longer supported, because it is not future- proof. Instead, if you want to use an option that the server doesn't know about, you must explicitly define it using the method described in the dhcp-options man page under the DEFINING NEW OPTIONS heading.

		     BUILDING IT

Once you've run configure, just type ``make'', and after a while you should have a dhcp server. If you get compile errors on one of the supported systems mentioned earlier, please let us know. If you get warnings, it's not likely to be a problem - the DHCP server compiles completely warning-free on as many architectures as we can manage, but there are a few for which this is difficult. If you get errors on a system not mentioned above, you will need to do some programming or debugging on your own to get the DHCP Distribution working.

If you cross compile you have to follow the instructions from the BIND README, in particular you must set the BUILD_CC environment variable.

	   INSTALLING THE DHCP DISTRIBUTION

Once you have successfully gotten the DHCP Distribution to build, you can install it by typing make install''. If you already have an old version of the DHCP Distribution installed, you may want to save it before typing make install''.

	     USING THE DHCP DISTRIBUTION

		    FIREWALL RULES

If you are running the DHCP server or client on a computer that's also acting as a firewall, you must be sure to allow DHCP packets through the firewall. In particular, your firewall rules must allow packets from IP address 0.0.0.0 to IP address 255.255.255.255 from UDP port 68 to UDP port 67 through. They must also allow packets from your local firewall's IP address and UDP port 67 through to any address your DHCP server might serve on UDP port 68. Finally, packets from relay agents on port 67 to the DHCP server on port 67, and vice versa, must be permitted.

We have noticed that on some systems where we are using a packet filter, if you set up a firewall that blocks UDP port 67 and 68 entirely, packets sent through the packet filter will not be blocked. However, unicast packets will be blocked. This can result in strange behaviour, particularly on DHCP clients, where the initial packet exchange is broadcast, but renewals are unicast - the client will appear to be unable to renew until it starts broadcasting its renewals, and then suddenly it'll work. The fix is to fix the firewall rules as described above.

		   PARTIAL SERVERS

If you have a server that is connected to two networks, and you only want to provide DHCP service on one of those networks (e.g., you are using a cable modem and have set up a NAT router), if you don't write any subnet declaration for the network you aren't supporting, the DHCP server will ignore input on that network interface if it can. If it can't, it will refuse to run - some operating

Related Skills

View on GitHub
GitHub Stars202
CategoryCustomer
Updated4d ago
Forks90

Languages

C

Security Score

85/100

Audited on Mar 24, 2026

No findings