# This is a basic configuration for the Kea DHCPv4 and DHCPv6 servers.
# Subnet declarations are commented out and no interfaces are listed.
# Therefore, the servers will not listen or respond to any queries.
# The basic configuration must be extended to specify interfaces on
# which the servers should listen. Also, subnets and options must be
# declared.
{

# DHCPv4 configuration starts here.
"Dhcp4":
{
# Add names of interfaces to listen on.
  "interfaces-config": {
    "interfaces": [ ]
  },

# Use Memfile lease database backend to store leases in a CSV file.
  "lease-database": {
    "type": "memfile"
  },

# Setup reclamation of the expired leases and leases affinity.
# Expired leases will be reclaimed every 10 seconds. Every 25
# seconds reclaimed leases, which have expired more than 3600
# seconds ago, will be removed. The limits for leases reclamation
# are 100 leases or 250 ms for a single cycle. A warning message
# will be logged if there are still expired leases in the
# database after 5 consecutive reclamation cycles.
  "expired-leases-processing": {
    "reclaim-timer-wait-time": 10,
    "flush-reclaimed-timer-wait-time": 25,
    "hold-reclaimed-time": 3600,
    "max-reclaim-leases": 100,
    "max-reclaim-time": 250,
    "unwarned-reclaim-cycles": 5
  },

# Global (inherited by all subnets) lease lifetime is mandatory parameter.
  "valid-lifetime": 4000,

# Below an example of the simple subnet declaration. Uncomment to
# enable it. This is a list, denoted with [ ], of structure, denoted
# with { }. Each structure describes a single subnet and may have
# several parameters. One of those parameters is "pools" that is
# also a list of structures.
  "subnet4": [
#  {    "subnet": "192.0.2.0/24",
#       "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ] }
  ]
},

# DHCPv6 configuration starts here.
"Dhcp6":
{
# Add names of interfaces to listen on.
  "interfaces-config": {
    "interfaces": [ ]
  },

# Use Memfile lease database backend to store leases in a CSV file.
  "lease-database": {
    "type": "memfile"
  },

# Setup reclamation of the expired leases and leases affinity.
# Expired leases will be reclaimed every 10 seconds. Every 25
# seconds reclaimed leases, which have expired more than 3600
# seconds ago, will be removed. The limits for leases reclamation
# are 100 leases or 250 ms for a single cycle. A warning message
# will be logged if there are still expired leases in the
# database after 5 consecutive reclamation cycles.
  "expired-leases-processing": {
    "reclaim-timer-wait-time": 10,
    "flush-reclaimed-timer-wait-time": 25,
    "hold-reclaimed-time": 3600,
    "max-reclaim-leases": 100,
    "max-reclaim-time": 250,
    "unwarned-reclaim-cycles": 5
  },

# Addresses will be assigned with preferred and valid lifetimes
# being 3000 and 4000, respectively. Client is told to start
# renewing after 1000 seconds. If the server does not respond
# after 2000 seconds since the lease was granted, client is supposed
# to start REBIND procedure (emergency renewal that allows switching
# to a different server).
  "preferred-lifetime": 3000,
  "valid-lifetime": 4000,
  "renew-timer": 1000,
  "rebind-timer": 2000,

# The following list defines subnets. Uncomment to enable them.
  "subnet6": [
#  {    "subnet": "2001:db8:1::/64",
#       "pools": [ { "pool": "2001:db8:1::/80" } ] },
#  {    "subnet": "2001:db8:2::/64",
#       "pools": [ { "pool": "2001:db8:2::/80" } ] },
#  {    "subnet": "2001:db8:3::/64",
#       "pools": [ { "pool": "2001:db8:3::/80" } ] },
#  {    "subnet": "2001:db8:4::/64",
#       "pools": [ { "pool": "2001:db8:4::/80" } ] }
   ]
},

# DHCP DDNS configuration starts here.
"DhcpDdns":
{
  "ip-address": "127.0.0.1",
  "port": 53001,
  "tsig-keys": [],
  "forward-ddns" : {},
  "reverse-ddns" : {}
},

# Logging configuration starts here. It tells Kea servers to store
# all log messages (on severity INFO or more) in a file.
# debuglevel variable is used on DEBUG level only.
"Logging":
{
  "loggers": [
    {
      "name": "kea-dhcp4",
      "output_options": [
          {
            "output": "/var/log/kea-dhcp4.log"
          }
      ],
      "severity": "INFO",
      "debuglevel": 0
    },
    {
      "name": "kea-dhcp6",
      "output_options": [
          {
            "output": "/var/log/kea-dhcp6.log"
          }
      ],
      "severity": "INFO",
      "debuglevel": 0
    },
    {
      "name": "kea-dhcp-ddns",
      "output_options": [
          {
            "output": "/var/log/kea-ddns.log"
          }
      ],
      "severity": "INFO",
      "debuglevel": 0
    }
  ]
}

}
