advanced.json 3.95 KB
Newer Older
Tomek Mrugalski's avatar
Tomek Mrugalski committed
1 2 3 4
# This is an example configuration file for DHCPv6 server in Kea.
# It attempts to showcase some of the more advanced features.
# Topology wise, it's a basic scenario with one IPv6 subnet configured.
# It is assumed that one subnet (2001:db8:1::/64) is available directly
Tomek Mrugalski's avatar
Tomek Mrugalski committed
5
# over ethX interface.
6 7 8
#
# The following features are currently showcased here:
# 1. Configuration of MAC/hardware address sources in DHCPv6
Tomek Mrugalski's avatar
Tomek Mrugalski committed
9 10 11 12

{ "Dhcp6":

{
13
# Kea is told to listen on ethX network interface only.
14
  "interfaces-config": {
15 16
    "interfaces": [ "ethX" ]
  },
Tomek Mrugalski's avatar
Tomek Mrugalski committed
17

18 19 20 21
# We need to specify the the database used to store leases. As of
# September 2016, four database backends are supported: MySQL,
# PostgreSQL, Cassandra, and the in-memory database, Memfile.
# We'll use memfile  because it doesn't require any prior set up.
Tomek Mrugalski's avatar
Tomek Mrugalski committed
22 23 24 25 26 27 28 29 30 31 32 33 34 35
  "lease-database": {
    "type": "memfile"
  },

# Kea 0.9.1 introduced MAC/hardware addresses support in DHCPv6. There is
# no single reliable method of getting MAC address information in DHCPv6.
# Kea supports several methods. Depending on your network set up, some
# methods may be more preferable than others, hence the configuration
# parameter. 'mac-sources' is a list of methods. Allowed parameters are:
# any, raw, duid, ipv6-link-local, client-link-addr-option, rfc6939 (which
# is an alias for client-link-addr-option), remote-id, rfc4649 (which is an
# alias for remote-id, subscriber-id, rfc4580 (which is an alias for
# subscriber-id) and docsis.
#
36 37 38 39
# Note that the order matters. Methods are attempted one by one in the order
# specified until hardware address is obtained. If you don't care which method
# is used, using 'any' is marginally faster than enumerating them all.
#
Tomek Mrugalski's avatar
Tomek Mrugalski committed
40 41 42
# If mac-sources are not specified, a default value of 'any' is used.
  "mac-sources": [ "client-link-addr-option", "duid", "ipv6-link-local" ],

43 44 45 46 47 48 49 50
# RFC6422 defines a mechanism called relay-supplied options option. The relay
# agent may insert certain options that the server will echo back to the
# client, if certain criteria are met. One condition is that the option must
# be RSOO-enabled (i.e. allowed to be echoed back). IANA maintains a list
# of those options here:
# http://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#options-relay-supplied
# However, it is possible to allow the server to echo back additional options.
# This entry marks options 110, 120 and 130 as RSOO-enabled.
51
   "relay-supplied-options": [ "110", "120", "130" ],
52

Tomek Mrugalski's avatar
Tomek Mrugalski committed
53 54
# Addresses will be assigned with preferred and valid lifetimes
# being 3000 and 4000, respectively. Client is told to start
55
# renewing after 1000 seconds. If the server does not respond
Tomek Mrugalski's avatar
Tomek Mrugalski committed
56 57 58 59 60 61 62 63 64 65 66 67 68
# 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. Each subnet consists of at
# least subnet and pool entries.
  "subnet6": [
    {
      "pools": [ { "pool": "2001:db8:1::/80" } ],
69

Tomek Mrugalski's avatar
Tomek Mrugalski committed
70 71 72 73
# This defines PD (prefix delegation) pools. In this case
# we have only one pool. That consists of /64 prefixes
# being delegated out of large /48 pool. Each delegated
# prefix will contain an excluded-prefix option.
74 75 76 77 78 79 80 81 82
      "pd-pools": [
      {
          "prefix": "2001:db8:abcd::",
          "prefix-len": 48,
          "delegated-len": 64,
          "excluded-prefix": "2001:db8:abcd:1234::",
          "excluded-prefix-len": 62
      }
      ],
Tomek Mrugalski's avatar
Tomek Mrugalski committed
83
      "subnet": "2001:db8:1::/64",
Tomek Mrugalski's avatar
Tomek Mrugalski committed
84
      "interface": "ethX"
Tomek Mrugalski's avatar
Tomek Mrugalski committed
85 86 87 88
    }
  ]
},

89
# The following configures logging. It assumes that messages with at least
90
# informational level (info, warn, error and fatal) should be logged to stdout.
Tomek Mrugalski's avatar
Tomek Mrugalski committed
91 92 93 94 95 96
"Logging": {
    "loggers": [
        {
            "name": "kea-dhcp6",
            "output_options": [
                {
97
                    "output": "stdout"
Tomek Mrugalski's avatar
Tomek Mrugalski committed
98 99
                }
            ],
100 101
            "debuglevel": 0,
            "severity": "INFO"
Tomek Mrugalski's avatar
Tomek Mrugalski committed
102 103 104 105 106
        }
    ]
}

}