Skip to content

Resolve "Disable DHCID"

Thomas Markwalder requested to merge 2276-disable-dhcid into master

Closes #2276 (closed)


This merges in a contribution from Infoblox which replaces the boolean ddns-use-conflict-resolution parameter an enumerated parameter ddns-conflict-resolution-mode. Prior to this, one could only enable or disable conflict resolution, and DNS entries always include a DHCID resource record. Now there are four modes of behavior: check-with-dhcid, no-check-with-dhcid, check-exists-with-dhcid, no-check-without-dhcid (see ARM updates for more details).

kea-dhcp-ddns was modified to recognize either parameter. The modifications include new transaction classes that implement the new state models:

  • CheckExistsAdd
  • CheckExistsRemove
  • SimpleAddWithoutDhcid
  • SimpleRemoveWithoutDhcid

along with accompanying new UTs. Arguably, one could have modified the existing classes to use the NCR mode parameter to determine when to include or exclude DHCID related RRs and refactoring could be considered under a new ticket.

Regarding kea-dhcp<4/6> configuration. I modified the JSON config file parsing to translate the old parameter into the new parameter and emit a warning log that the old value is deprecated. The existing parameter was never fully added to CB, but could be stored as a global parameter, so I created schema upgrades that migrate the global values as needed.

I have manually system tested all four modes with kea-dhcp-ddns and BIND9 and they appear to work as expected.

CB and sysrepo support for the new parameter could be done either as a new issue (my preference) or a new MR.

Edited by Thomas Markwalder

Merge request reports