Some additional resources on KEA that Dmitri had asked me in the original thread:
Kea has no management api whatsoever (it's a step backwards compared to dhcpd in this regard), which makes it pretty challenging to interface with it.
As per KEA's engineers, here's the current state of API - http://kea.isc.org/wiki/ControlAPIDesign.
and http://kea.isc.org/wiki/ControlAPIRequirements.
It's something, and in a way better than parsing leases file (oth it's worse -- db schemas change more often, which makes such an interface brittle). I don't remember finding db schema docs though, and personally would be hesitant to jump in before the project publishes this information.
KEA team response:
--------------------
The schemas are stable for a while, but we occasionally add something new. Obviously, our goal is to keep the changes backward compatible, but if that's not possible, we try to make the old schema migration as easy as possible. So far we mostly added new columns and new tables and not changed any of the existing fields. As you may be aware, we do have support for MySQL, PostgreSQL and recently added support for Cassandra, which remains a bit experimental. Regarding our schemas, you may want to read the following:
http://kea.isc.org/docs/kea-guide.html#kea-database-version
Sections 4.1 through 4.3 give you a good overview. As for the actual schemas, they're available in src/share/database/scripts in the Kea sources. Here's the direct link for our github repo:
https://github.com/isc-projects/kea/tree/master/src/share/database/scripts
For example, for MySQL go to mysql/dhcpdb_create.mysql for the latest schema or check the upgrade_A.B_to_C.D files for upgrade scripts for older schemas.
--------------------
Until KEA APIs are released, this page describes interactions with the DB directly (something I think KEA smart-proxy could use now) - http://kea.isc.org/wiki/HostReservationsHowTo