8

I have been looking around for something to replace my (ancient) ISC-DHCPd server.

A DHCP server with a database backend sounds like a great idea to me, as I could then have a nice, friendly web interface to my server. Surprisingly, I can't any major open-source projects that offer this.

Does anyone know of one? I have also read about modifying ISC to use a database backend...can anyone tell me if this solution is stable enough for a busy production server? Or is using a database a Bad Idea™ all together?

PS - https://stackoverflow.com/questions/893887/dchp-with-database-backend looks like SO couldn't answer this old, similar question.

EDIT: I am looking for something on a free OS platform, Linux or BSD. If there is something absolutely great that is Windows-only though, still interested.

5
  • What operating system? I'm guessing it's Linux but we should never have to guess. Aug 12, 2010 at 22:17
  • I can see wanting a database-backed DHCP server. It'd make high availability and load-sharing between multiple DHCP servers fairly easy. In an environment with a large number of clients it'd probably be fairly sweet. One more thing to add to the pile of "stuff I'd work on if I had time"... >sigh< Aug 13, 2010 at 1:48
  • @Evan, even without a database you can already provide high availability by running multiple dhcp servers
    – topdog
    Aug 13, 2010 at 4:42
  • @topdog: If they're not sharing the same lease information, though, I don't consider them "high availability". The old "high availability" trick with Windows DHCP, for example, of running "overlapping" DHCP servers isn't "high availability" in my book because clients can receive spurious NAKs when they "fail over" to the DHCP server that knows nothing about their prior lease. Aug 13, 2010 at 5:34
  • Just curious, did you ever find software to do this? I'm in much the same situation you are.
    – devicenull
    Nov 20, 2012 at 23:45

7 Answers 7

4

ISC DHCP 4.x allows the DHCP service to be backed by an LDAP database (local or remote).

The package on both Fedora 12+ and Ubuntu (version unknown) includes the LDAP schema file.

You start the DHCP server and point it at the LDAP db (via a short config file). If you select dynamic DB, each DHCP query becomes an LDAP query/response.

With LDAP you can update the DHCP contents using any language with an LDAP library from any location routable to your LDAP server. Your LDAP DB can serve an unlimited number of DHCP servers.

I used this to allow engineers to add and remove test boxes to a network without requiring them to log onto the DHCP server, edit a file or use root privs.

4
  • This looks promising... Dec 17, 2010 at 2:54
  • Last I read about this, the LDAP inclusion is a "v1" functionality, in that it was recently introduced into the product, and may still not be terribly stable. @markllama, have you found that some parts of the dhcpd configuration only become effective upon service restart? I've read reports that some configuration items are accessed in real-time, and some only loaded at startup - which makes sense to me, given that dhcpd has traditionally only read the config/host files at service start.
    – aNullValue
    Dec 17, 2010 at 4:18
  • @Stemen: Yeah-- it looks like it's not an accepted patch into the upstream yet. That's less useful for me because I'd really prefer not to run production systems on patched distributions of programs. Dec 17, 2010 at 21:45
  • @Evan Anderson: Same here. You'd also have to take system reliability into account with using an LDAP server for multiple DHCP servers... it simply wouldn't be able to meet many uptime requirements, though it would work for those that are able to accept that DHCP may be down for a period of time if LDAP and/or connectivity is down.
    – aNullValue
    Dec 18, 2010 at 0:18
4

The guys at ISC (authors of BIND and the ISC DHCP server) are working on KEA, a new DHCP server implementation that -- among other nice features -- has SQL support. The source code has had support for SQLite and MySQL for years, and PostgreSQL support was added recently.

There's no proper release yet, and very little activity on their dev/users mailing lists. Hopefully that will change as the code matures, releases are made, distros start packaging it, and it gains traction with users.

1
  • Actually, only partial PostgreSQL support exists as at today - in version 1.0.0 - It does not support hosts information being stored in Postgres yet (they claim its coming soon) - only in MySQL.
    – davidgo
    Aug 13, 2016 at 2:11
3

I had a similar issue.

I ended up writing a few lines of Python code to generate DHCP config files from a database backend. Using diff I regularly check whether the file I generate has changes to the old config and in that case I reload the DHCP server.

Works quite well for me with multiple data centers, dozens of networks and hundreds of IPs.

Also allows you to have the 'web interface' and keep it open source.

3

BlueCat.com has really cool appliances that do ip address management (DNS / DHCP) that would fit the bill EXACTLY, except that they're not opensource / free..

Bluecat lets you delegate roles, for example you could give your clients edit priviledges on the reverse zone for only their /26 or something like that, and everything is handled with high availability databases for DNS and DHCP.

If anyone knows of anything like that in the open source world, I'd love to hear about it.. I wish Microsoft would integrate DHCP into Active Directory like they did with DNS. It would be perfect for me (I know - not open source, but if it's included with the server it would work for me!)

3

I've been researching this myself, which turned up this thread. I've found:

  • Anemon DHCP which appears to be dead/gone (thus the archive.org link). "modules gives anemon the ability to use many database as backend (mysql, postgresql, mssql, sqllite, sybase, etc..) "
  • KEA from ISC "MySQL, Postgres back-end support."
  • staticDHCPd "Databases: Postgres, MySQL, Oracle, SQLite"
2

What advantages are you looking for? How often do you make changes to your DHCP configuration? Apart from adding, deleting or modifying the occasional reservation DHCP should be a set and forget system. If you need to regularly do anything to it you need to reconsider your methodologies.

3
  • 2
    Exactly. Adding, deleting, modifying reservations. This is a pain when I have to split/merge ranges all the time. Also, instead of having to parse a big ugly leases file with a script, it'd be nice to put current leases and lease history in a database.
    – Cory J
    Aug 12, 2010 at 22:24
  • Maybe I should have mentioned in the original post that I am an ISP. DHCP is definitly not "set and forget".
    – Cory J
    Aug 13, 2010 at 0:23
  • 2
    @Cory, that does change things a little. Aug 13, 2010 at 0:42
0

If you are ISP consider using VitalQIP. It is a commercial product, but I can't imagine live without it.

Not the answer you're looking for? Browse other questions tagged .