Knowledge Base ISC Main Website Ask a Question/Contact ISC
Migration Tips For Upgrading From DHCP 3 to DHCP 4
Author: Michael McNally Reference Number: AA-00611 Views: 6894 Created: 2012-01-26 19:54 Last Updated: 2012-03-27 17:26 0 Rating/ Voters

ISC is ending support for DHCP 3.1-ESV, the last supported version of the DHCP 3 family of software releases.  

Customers who wish to use a supported version of the software are advised to consult the DHCP versions page and select a "Current" or "Extended Support Version" of DHCP 4.  DHCP 4 offers several advantages over version 3, including:

  • IPv6 support
  • performance improvements for busy servers
  • improved failover protocol
  • support for more host operating systems
  • code updated for compliance with modern compilers
  • many security fixes, bug fixes, and feature improvements

Perhaps most critically, ISC will provide fixes for future security issues that are discovered in DHCP 4, while DHCP 3 will not receive any further development.

To aid with your migration, ISC has some tips on planning and managing your transition to a current version.

  • Begin by selecting the version to which you will upgrade.
  • Make sure you know where the current version of dhcpd expects to find its configuration file (dhcpd.conf) and leases database (dhcpd.leases.)  Prior to building the new version we recommend that you back up all DHCP binaries, configuration files, and run-time data storage (e.g. the leases database.)
  • Download the version you have chosen as your upgrade target from ISC's DHCP repository.  Unpack the compressed tar file in a build directory, then configure and compile the software but do not yet run "make install" to install it.  Optional arguments to the ./configure script in the package root allow you to customize the location used for the configuration file and leases database if those are not stored in default locations on your system.  "./configure --help" provides a usage message with a list of available options.
  • Although ISC DHCP 4 has been designed to be as compatible as possible with the configuration syntax used by ISC DHCP 3, and although DHCP 4 is able to read the leases file format used by DHCP3, it is still a good idea to ensure that the dhcpd.conf file and dhcpd.leases files are syntactically correct by checking them with the new dhcpd binary.  Invoke the new dhcpd from its location in the build directory with the -t option (for the config file) and -T (for leases), for example:

# Execute from the top level of the unpacked source tar or change path to dhcpd executable

# tests compatibility of dhcpd.conf file syntax
./server/dhcpd -t -cf /path/to/dhcpd.conf -lf /path/to/dhcpd.leases

# tests compatibility of dhcpd.leases file syntax
./server/dhcpd -T -cf /path/to/dhcpd.conf -lf /path/to/dhcpd.leases

  • Address any issues flagged by the previous step.
  • Stop your server, or both servers if you are running a failover pair.
  • Start the new binaries, taking care to run under the appropriate uid for your system so the server will have the right privileges to bind to ports, read the config file, and read and write the leases database.
  • Confirm (by checking the log files) that the new server binaries are running properly, logging messages, and that the server is handing out leases to clients.
  • Use "make install" to install the new binaries and supporting files in their permanent locations once you are convinced that the upgraded service is running properly.

I am running with failover.  Can I upgrade one server and restart on the new version before upgrading the second server?

While this is potentially possible, there have been changes in the failover protocol and this approach is not recommended without carefully checking the compatibility of the old and new versions.

In general ISC does not recommend running differing versions on a production failover pair.




© 2001-2015 Internet Systems Consortium

Please help us to improve the content of our knowledge base by letting us know below how we can improve this article.

If you have a technical question or problem on which you'd like help, please don't submit it here as article feedback.

For assistance with problems and questions for which you have not been able to find an answer in our Knowledge Base, we recommend searching our community mailing list archives and/or posting your question there (you will need to register there first for your posts to be accepted). The bind-users and the dhcp-users lists particularly have a long-standing and active membership.

ISC relies on the financial support of the community to fund the development of its open source software products. If you would like to support future product evolution and maintenance as well having peace of mind knowing that our team of experts are poised to provide you with individual technical assistance whenever you call upon them, then please consider our Professional Subscription Support services - details can be found on our main website.

Feedback 2
  • #
    [ lmgo5991]: importing new lease file 2014-07-24 15:11

    Hi

    i am carrying out a P2V and upgrading to the latest dhcp version 4.

    I have created a virtual test env for my new configureation and all going good.

    My question is because i am moving to completye new servers the last task i have is to import the currently running lease file from my old dhcp version 3 servers to the new dhcp version 4 servers, is there any gotchas i should be aware of or is it a simple case of above example and then envoking dhcp 4 to use the lease file?

    Thank you in advance

  • #
    [Michael McNally]: Re: importing new lease file 2014-09-24 21:09

    Please see the section of the article which deals with using the "-T" flag to test the validity of a leases file. Your leases file from version 3 should be readable by DHCP 4 (but be advised that the converse is not true) but you can be sure whether the new server will handle them by using the validation feature specifically provided for testing lease files.

Info Submit Feedback on this Article
Nickname: Your Email: Subject: Comment:
Enter the code below:
Quick Jump Menu