]> Kea configuration Depending on configuration backend chosen (see ), configuration mechanisms are different. The following sections describe details of specific configuration backends. Note that only one configuration backend can be used and its selection is determined during compilation time.
Bundy configuration backend This legacy configuration backend allows Kea to use former BIND10 framework. That framework and this Kea configuration backend is no longer supported by ISC. It is currently developed as part of Bundy project (see Bundy homepage). See Bundy project documentation regarding configuration.
JSON configuration backend JSON is the default configuration backend and the only one supported as of 0.9 release. It assumes that the servers are started from command line (either directly or using a script, see TODO for details). JSON backend uses certain signals to influence certain behaviors. The configuration file is specified upon startup using -c parameter.
JSON syntax Configuration files for DHCPv4, DHCPv6 and DDNS modules are defined in extended JSON format. The basic JSON is defined in RFC 4627. Kea components use extended JSON, which extends basic format by allowing bash-style comments in the file. Comment lines must have hash (#) in the first column. Configuration file consists of a single object (often colloquially called a map) started with a curly bracket. It consists "Dhcp4", "Dhcp6", "DhcpDdns" and/or "Logging" objects. It is possible to define additional elements, but they will be ignored. That principle was chosen to ease configuration management. For example, it is possible to define Dhcp4, Dhcp6 and Logging elements in one configuration file that can be used to start both DHCPv4 and DHCPv6 components. When starting, DHCPv4 component will use Dhcp4 object to configure itself and Logging to configure logging parameters, while ignoring Dhcp6 object. For example, a very simple configuration for Dhcp6 could look like this: { # DHCPv6 specific configuration starts here. "Dhcp6": { # These are DHCPv6-specific parameters. They will be explained in later sections. "interfaces": [ "eth0" ], "preferred-lifetime": 3000, "valid-lifetime": 4000, "renew-timer": 1000, "rebind-timer": 2000, # The following list defines subnets. Each subnet consists of at # least subnet and pool entries. "subnet6": [{ "pool": [ "2001:db8:1::/80" ], "subnet": "2001:db8:1::/64" }] }, # DHCPv6 specific configuration ends here. # Logger parameters (that could be shared among several components) start here. "Logging": { # These are Logger-specific parameters. They will be explained in later sections. "loggers": [{ "name": "*", "severity": "DEBUG" }] } # Logger parameters end here. } More examples are available in the Kea source code in the doc/examples directory.