<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">{</p>
<p class="MsoNormal"> # Server configuration file example for DHCPv6</p>
<p class="MsoNormal"> # From the file used for TAHI tests - addresses chosen</p>
<p class="MsoNormal"> # to match TAHI rather than example block.</p>
<p class="MsoNormal"> # IPv6 address valid lifetime</p>
<p class="MsoNormal"> # (at the end the address is no longer usable by the client)</p>
<p class="MsoNormal"> # (set to 30 days, the usual IPv6 default)</p>
<p class="MsoNormal"> /// This configuration declares some subnets but has no interfaces-config</p>
<p class="MsoNormal"> /// Reference Kea #245</p>
<p class="MsoNormal"> "Dhcp6": {</p>
<p class="MsoNormal">// Add names of your network interfaces to listen on.</p>
<p class="MsoNormal"> "interfaces-config": {</p>
<p class="MsoNormal"> // You typically want to put specific interface names here, e.g. eth0</p>
<p class="MsoNormal"> // but you can also specify unicast addresses (e.g. eth0/2001:db8::1) if</p>
<p class="MsoNormal"> // you want your server to handle unicast traffic in addition to</p>
<p class="MsoNormal"> // multicast. (DHCPv6 is a multicast based protocol).</p>
<p class="MsoNormal"> "interfaces": ["enp0s25/fd00::2"],</p>
<p class="MsoNormal"> "re-detect": false</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> // Kea supports control channel, which is a way to receive management commands</p>
<p class="MsoNormal"> // while the server is running. This is a Unix domain socket that receives</p>
<p class="MsoNormal"> // commands formatted in JSON, e.g. config-set (which sets new configuration),</p>
<p class="MsoNormal"> // config-reload (which tells Kea to reload its configuration from file),</p>
<p class="MsoNormal"> // statistic-get (to retrieve statistics) and many more. For detailed</p>
<p class="MsoNormal"> // description, see Sections 9.12, 16 and 15.</p>
<p class="MsoNormal"> "control-socket": {</p>
<p class="MsoNormal"> "socket-type": "unix",</p>
<p class="MsoNormal"> "socket-name": "/tmp/kea6-ctrl-socket"</p>
<p class="MsoNormal"> // "socket-type": "udp"</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> "dhcp-ddns": {</p>
<p class="MsoNormal"> // Connectivity parameters</p>
<p class="MsoNormal"> "enable-updates": true,</p>
<p class="MsoNormal"> "server-ip": "127.0.0.1",</p>
<p class="MsoNormal"> "server-port":53001,</p>
<p class="MsoNormal"> "sender-ip": "",</p>
<p class="MsoNormal"> "sender-port":0,</p>
<p class="MsoNormal"> "max-queue-size":1024,</p>
<p class="MsoNormal"> "ncr-protocol":"UDP",</p>
<p class="MsoNormal"> "ncr-format":"JSON"</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> // Behavioral parameters (global)</p>
<p class="MsoNormal"> "ddns-send-updates": true,</p>
<p class="MsoNormal"> "ddns-override-no-update": false,</p>
<p class="MsoNormal"> "ddns-override-client-update": true,</p>
<p class="MsoNormal"> "ddns-replace-client-name": "never",</p>
<p class="MsoNormal"> "ddns-generated-prefix": "myhost",</p>
<p class="MsoNormal"> "ddns-qualifying-suffix": "",</p>
<p class="MsoNormal"> "ddns-update-on-renew": false,</p>
<p class="MsoNormal"> "ddns-use-conflict-resolution": true,</p>
<p class="MsoNormal"> "hostname-char-set": "",</p>
<p class="MsoNormal"> "hostname-char-replacement": "",</p>
<p class="MsoNormal"> "dhcp4o6-port": 6767,</p>
<p class="MsoNormal">// "hosts-database": {</p>
<p class="MsoNormal">// "type": "mysql",</p>
<p class="MsoNormal">// "name": "kea",</p>
<p class="MsoNormal">// "user": "kea",</p>
<p class="MsoNormal">// "password": "kea",</p>
<p class="MsoNormal">// "host": "localhost",</p>
<p class="MsoNormal">// "port": 3306</p>
<p class="MsoNormal">// },</p>
<p class="MsoNormal">// Use Memfile lease database backend to store leases in a CSV file.</p>
<p class="MsoNormal"> // Depending on how Kea was compiled, it may also support SQL databases</p>
<p class="MsoNormal"> // (MySQL and/or PostgreSQL) and even Cassandra. Those database backends</p>
<p class="MsoNormal"> // require more parameters, like name, host and possibly user and password.</p>
<p class="MsoNormal"> // There are dedicated examples for each backend. See Section 8.2.2 "Lease</p>
<p class="MsoNormal"> // Storage" for details.</p>
<p class="MsoNormal"> "lease-database": {</p>
<p class="MsoNormal"> // Memfile is the simplest and easiest backend to use. It's an in-memory</p>
<p class="MsoNormal"> // C++ database that stores its state in CSV file.</p>
<p class="MsoNormal"> "type": "memfile",</p>
<p class="MsoNormal"> "persist": true,</p>
<p class="MsoNormal"> "lfc-interval": 1800,</p>
<p class="MsoNormal"> "name": "/var/lib/kea/dhcp6.leases",</p>
<p class="MsoNormal"> "max-row-errors": 100</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">// "server-id": {</p>
<p class="MsoNormal">// "type": "LLT",</p>
<p class="MsoNormal">// "htype": 0,</p>
<p class="MsoNormal">// "identifier": "",</p>
<p class="MsoNormal">// "time": 2518920166</p>
<p class="MsoNormal">// },</p>
<p class="MsoNormal"></p>
<p class="MsoNormal"> "valid-lifetime": 4000,</p>
<p class="MsoNormal"> "renew-timer": 1000,</p>
<p class="MsoNormal"> "rebind-timer": 2000,</p>
<p class="MsoNormal"> "preferred-lifetime": 3000,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> "dhcp-queue-control": {</p>
<p class="MsoNormal"> "enable-queue": true,</p>
<p class="MsoNormal"> "queue-type": "kea-ring6",</p>
<p class="MsoNormal"> "capacity" : 300</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> "option-data": [</p>
<p class="MsoNormal"> # T1, the delay before Renew</p>
<p class="MsoNormal"> # (default is 1/2 preferred lifetime)</p>
<p class="MsoNormal"> # (set to 1 hour)</p>
<p class="MsoNormal"> # T2, the delay before Rebind (if Renews failed)</p>
<p class="MsoNormal"> # (default is 3/4 preferred lifetime)</p>
<p class="MsoNormal"> # (set to 2 hours)</p>
<p class="MsoNormal"> # Global definitions for name server address(es) and domain search list</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "space": "dhcp6",</p>
<p class="MsoNormal"> "name": "dns-servers",</p>
<p class="MsoNormal"> "code": 23,</p>
<p class="MsoNormal">// "original-data": "fd00:0000:0000:0000::2, fd00:0000:0000:0000::ef",</p>
<p class="MsoNormal"> "data": "fd00::2, fd00::ef"</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "space": "dhcp6",</p>
<p class="MsoNormal"> "name": "domain-search",</p>
<p class="MsoNormal"> "code": 24,</p>
<p class="MsoNormal">// "original-data": "\"ajlouni-homeserver.ddnsfree.com\"",</p>
<p class="MsoNormal"> "data": "ajlouni-homeserver.ddnsfree.com"</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"> // but it's a lot of writing, so it's easier to do this instead:</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "name": "dns-servers",</p>
<p class="MsoNormal"> "data": "fd00:0000:0000:0000::2, fd00:0000:0000:0000::ef"</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "code": 17,</p>
<p class="MsoNormal"> "data": "12345"</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "name": "dns-servers",</p>
<p class="MsoNormal"> "data": "fd00::2, fd00::ef",</p>
<p class="MsoNormal"> "always-send": true</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "name": "unicast",</p>
<p class="MsoNormal"> "data": "fd00::2"</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "name": "new-posix-timezone",</p>
<p class="MsoNormal"> "data": "EST3EDT2\\,M3.2.0/02:00\\,M11.1.0/02:00"</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "name": "subscriber-id",</p>
<p class="MsoNormal"> "code": 38,</p>
<p class="MsoNormal"> "space": "dhcp6",</p>
<p class="MsoNormal"> "csv-format": false,</p>
<p class="MsoNormal"> "data": "'convert this text to binary'"</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"> // Typically people prefer to refer to options by their names, so they</p>
<p class="MsoNormal"> // don't need to remember the code names. However, some people like</p>
<p class="MsoNormal"> // to use numerical values. For example, DHCPv6 can optionally use</p>
<p class="MsoNormal"> // server unicast communication, if extra option is present. Option</p>
<p class="MsoNormal"> // "unicast" uses option code 12, so you can reference to it either</p>
<p class="MsoNormal"> // by "name": "unicast" or "code": 12. If you enable this option,</p>
<p class="MsoNormal"> // you really should also tell the server to listen on that address</p>
<p class="MsoNormal"> // (see interfaces-config/interfaces list above).</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "code": 12,</p>
<p class="MsoNormal"> "data": "fd00::2"</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"> # Set preference to 255 (maximum) in order to avoid waiting for</p>
<p class="MsoNormal"> # additional servers when there is only one</p>
<p class="MsoNormal"> #option dhcp6.preference 255;</p>
<p class="MsoNormal"> # Server side command to enable rapid-commit (2 packet exchange)</p>
<p class="MsoNormal"> #option dhcp6.rapid-commit;</p>
<p class="MsoNormal"> # The delay before information-request refresh</p>
<p class="MsoNormal"> # (minimum is 10 minutes, maximum one day, default is to not refresh)</p>
<p class="MsoNormal"> # (set to 6 hours)</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "space": "dhcp6",</p>
<p class="MsoNormal"> "name": "information-refresh-time",</p>
<p class="MsoNormal"> "code": 32,</p>
<p class="MsoNormal"> "data": "21600"</p>
<p class="MsoNormal"> }</p>
<p class="MsoNormal"> ],</p>
<p class="MsoNormal">// # Enable RFC 5007 support (same than for DHCPv4)</p>
<p class="MsoNormal">// "statement": {</p>
<p class="MsoNormal">// "config": {</p>
<p class="MsoNormal">// "value": "allow",</p>
<p class="MsoNormal">// "name": "leasequery",</p>
<p class="MsoNormal">// "code": 49</p>
<p class="MsoNormal">// }</p>
<p class="MsoNormal">// },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> "subnet6": [</p>
<p class="MsoNormal"> # Static definition (must be global)</p>
<p class="MsoNormal"> #host myclient {</p>
<p class="MsoNormal"> # # The entry is looked up by this</p>
<p class="MsoNormal"> # host-identifier option</p>
<p class="MsoNormal"> # dhcp6.client-id 00:01:00:01:00:04:93:e0:00:00:00:00:a2:a2;</p>
<p class="MsoNormal"> #</p>
<p class="MsoNormal"> # # A fixed address</p>
<p class="MsoNormal"> # fixed-address6 3ffe:501:ffff:100::1234;</p>
<p class="MsoNormal"> #</p>
<p class="MsoNormal"> # # A fixed prefix</p>
<p class="MsoNormal"> # fixed-prefix6 3ffe:501:ffff:101::/64;</p>
<p class="MsoNormal"> #</p>
<p class="MsoNormal"> # # Override of the global definitions,</p>
<p class="MsoNormal"> # # works only when a resource (address or prefix) is assigned</p>
<p class="MsoNormal"> # option dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:4f4e;</p>
<p class="MsoNormal"> #</p>
<p class="MsoNormal"> # # For debug (to see when the entry statements are executed)</p>
<p class="MsoNormal"> # # (log "sol" when a matching Solicitation is received)</p>
<p class="MsoNormal"> # ##if packet(0,1) = 1 { log(debug,"sol"); }</p>
<p class="MsoNormal"> #}</p>
<p class="MsoNormal"> #</p>
<p class="MsoNormal"> #host otherclient {</p>
<p class="MsoNormal"> # # This host entry is hopefully matched if the client supplies a DUID-LL</p>
<p class="MsoNormal"> # # or DUID-LLT containing this MAC address.</p>
<p class="MsoNormal"> # hardware ethernet 01:00:80:a2:55:67;</p>
<p class="MsoNormal"> #</p>
<p class="MsoNormal"> # fixed-address6 3ffe:501:ffff:100::4321;</p>
<p class="MsoNormal"> #}</p>
<p class="MsoNormal"> # The subnet where the server is attached</p>
<p class="MsoNormal"> # (i.e., the server has an address in this subnet)</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "id": 1,</p>
<p class="MsoNormal"> "subnet": "fd00:0000:0000:0000::/64",</p>
<p class="MsoNormal"> "interface":"enp0s25",</p>
<p class="MsoNormal"> "rapid-commit": true,</p>
<p class="MsoNormal"> "pools": [</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "pool": "fd00:0000:0000:0000::3-fd00:0000:0000:0000::ffff"</p>
<p class="MsoNormal"> }</p>
<p class="MsoNormal"> ],</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> "option-data": [ {</p>
<p class="MsoNormal"> "name": "dhcp4o6-server-addr",</p>
<p class="MsoNormal"> "code": 88,</p>
<p class="MsoNormal"> "space": "dhcp6",</p>
<p class="MsoNormal"> "csv-format": true,</p>
<p class="MsoNormal"> "data": "fd00:0000:0000:0000::"</p>
<p class="MsoNormal"> } ], </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> "client-class": "VENDOR_CLASS_eRouter1.0",</p>
<p class="MsoNormal"> "relay": {</p>
<p class="MsoNormal"> "ip-addresses": [ "fd00:0000:0000:0000::ef" ]</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> "pd-pools": [</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "prefix": "fd00:0000:0000:1000::",</p>
<p class="MsoNormal"> "prefix-len": 64,</p>
<p class="MsoNormal"> "delegated-len": 64,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> "user-context": {</p>
<p class="MsoNormal"> "threshold-percent": 85,</p>
<p class="MsoNormal"> "v4-network": "192.168.0.0/16",</p>
<p class="MsoNormal"> "v4-overflow": "10.0.0.0/16",</p>
<p class="MsoNormal"> "lw4over6-sharing-ratio": 64,</p>
<p class="MsoNormal"> "lw4over6-v4-pool": "192.168.1./24",</p>
<p class="MsoNormal"> "lw4over6-sysports-exclude": true,</p>
<p class="MsoNormal"> "lw4over6-bind-prefix-len": 64</p>
<p class="MsoNormal"> }</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> // "option-data": [</p>
<p class="MsoNormal"> // {</p>
<p class="MsoNormal"> // "space": "dhcp6",</p>
<p class="MsoNormal"> // "name": "dns-servers",</p>
<p class="MsoNormal"> // "code": 23,</p>
<p class="MsoNormal"> // "original-data": "fd00:0000:0000:0000::2, fd00:0000:0000:0000::ef",</p>
<p class="MsoNormal"> // "data": "fd00::2, fd00::ef"</p>
<p class="MsoNormal"> // },</p>
<p class="MsoNormal"> // {</p>
<p class="MsoNormal"> // "space": "dhcp6",</p>
<p class="MsoNormal"> // "name": "domain-search",</p>
<p class="MsoNormal"> // "code": 24,</p>
<p class="MsoNormal"> // "original-data": "\"ajlouni-homeserver.ddnsfree.com\"",</p>
<p class="MsoNormal"> // "data": "ajlouni-homeserver.ddnsfree.com"</p>
<p class="MsoNormal">} </p>
<p class="MsoNormal">]</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">}]}}</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">
Mail</a> for Windows</p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>