Requirements for DHCPv4-over-DHCPv6 (DHCP4o6)


DHCP4o6 is a protocol extension defined in RFC7341. It defines a mechanism for obtaining IPv4 configuration information dynamically in IPv6 networks by carrying DHCPv4 messages over DHCPv6 transport. Two new DHCPv6 messages and two new DHCPv6 options are defined for this purpose. This page describes requirements for an implementation of this protocol extension in Kea. The requirements specify both protocolar and functional requirements that are either desired or required for the implementation to be considered production ready. This document uses capitalized keywords (MAY, SHOULD, MUST) in accordance to RFC2119.

The design that seeks to address those requirements is available here: Dhcp4o6Design


Marcin: I am going to echo some of the Thomas'es comments regarding some previous requirements, which I had to agree with. These are mostly that some of the requirements are not testable and thus are not really requirements and better fit as design goals.

General requirements. The implementation:

  • G1. MUST be able to handle incoming DHCPv4-QUERY messages.
  • G2. MUST be able to respond with DHCPv4-RESPONSE messages.
  • G3. MUST be able to process DHCPv4 packets, i.e. offer functionality of regular DHCPv4 server with its typical capabilities (address assignment, standard options, custom options, host reservation, subnet selection etc.)
  • G4. MUST reuse as much of the existing capability as possible.

Marcin: untestable/unmeasureable

  • G5. MUST support DHCP 4o6 Server Address Option.


  • C1. SHOULD be as simple as possible. Care should be taken to cover large ISP deployments with large networks (100s of subnets).

Marcin: untestable/unmeasureable

  • C2. MUST support deployment where DHCP4o6 is run mostly on its own, with DHCPv6 deployed in minimal scope to only enable DHCP4o6.
  • C3. MUST support deployment where DHCP4o6 co-exists with full DHCPv6.
  • C4. MUST support deployment where DHCP4o6 is run without DHCPv4.
  • C5. MUST support deployment where DHCP4o6 is run along with DHCPv4.
  • C6. MUST have DHCP4o6 functionality disabled by default. Enabling it requires administrative action (e.g. adding configuration parameter).

Logging and statistics

  • L1. SHOULD log the subnet selection process criteria (DHCPv4 component will pick the subnet based on IPv6 relay information).
  • L2. SHOULD provide statistics for number of DHCPv4-QUERY messages received and DHCPv4-RESPONSE messages sent.


  • D1. The solution MUST be documented (both user and developer oriented documentation).
  • D2. The solution MUST have unit-tests.
  • D3. The solution MUST work on all operating systems supported by Kea (currently: Linux, BSD, Apple OS X).
Last modified 4 years ago Last modified on Aug 31, 2015, 1:37:52 PM