"Fossies" - the Fresh Open Source Software Archive

Member "kea-1.7.1/doc/examples/kea6/all-keys.json" (29 Oct 2019, 38036 Bytes) of package /linux/misc/kea-1.7.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) JSON source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "all-keys.json": 1.7.0_vs_1.7.1.

    1 // WARNING: This example configuration is not meant for production use.
    2 // The Kea DHCPv6 server will refuse this configuration because it contains
    3 // mutually exclusive configuration parameters.
    4 //
    5 // The primary purpose of the example file is to provide a comprehensive
    6 // list of parameters supported by Kea DHCPv6 server along with the brief
    7 // description of each parameter.
    8 //
    9 // This current version should be up to date, i.e. new keywords should be
   10 // added in this file at the same time than in the syntax.
   11 {
   12     // Kea DHCPv6 server configuration begins here.
   13     "Dhcp6": {
   14         // Ordered list of client classes used by the DHCPv6 server.
   15         "client-classes": [
   16             {
   17                 // Class name.
   18                 "name": "phones_server1",
   19 
   20                 // Class specific DHCPv6 options list.
   21                 "option-data": [],
   22 
   23                 // Class selection expression. The DHCP packet is assigned to this
   24                 // class when the given expression evaluates to true.
   25                 "test": "member('HA_server1')"
   26             },
   27             {
   28                 // Second class name.
   29                 "name": "phones_server2",
   30 
   31                 // Class specific DHCPv6 options list.
   32                 "option-data": [],
   33 
   34                 // Class selection expression. The DHCP packet is assigned to this
   35                 // class when the given expression evaluates to true.
   36                 "test": "member('HA_server2')"
   37             },
   38             {
   39                 // Third class name.
   40                 "name": "late",
   41 
   42                 // Boolean flag indicating that the class expression is only evaluated
   43                 // when the class is required, e.g. selected address pool configuration
   44                 // includes this class name in its "require-client-classes" list. The
   45                 // default value false means that the class test expression must
   46                 // always be evaluated.
   47                 "only-if-required": true,
   48 
   49                 // Class selection expression.
   50                 "test": "member('ALL')"
   51             }
   52         ],
   53 
   54         // Command control socket configuration parameters for Kea DHCPv6 server.
   55         "control-socket": {
   56             // Location of the unix domain socket file the DHCPv6 server uses
   57             // to receive control commands from the Kea Control Agent or the
   58             // local server administrator.
   59             "socket-name": "/tmp/kea6-ctrl-socket",
   60 
   61             // Control socket type used by the Kea DHCPv6 server. The 'unix'
   62             // socket is currently the only supported type.
   63             "socket-type": "unix"
   64         },
   65 
   66         // Specifies a prefix to be prepended to the generated Client FQDN.
   67         // It may be specified at the global, shared-network and subnet levels.
   68         "ddns-generated-prefix": "myhost",
   69 
   70         // Boolean flag indicating that server should ignore DHCP client
   71         // wishes to update DNS on its own. With that flag set to true
   72         // the server will send DNS updates for both forward and
   73         // reverse DNS data. The default value is false, which indicates
   74         // that the server will delegate DNS update to the client when
   75         // requested.  It may be specified at the global, shared-network
   76         // and subnet levels.
   77         "ddns-override-client-update": false,
   78 
   79         // Boolean flag indicating that the server should override DHCP
   80         // client's wish to not update the DNS. With this parameter
   81         // set to true the server will send DNS update even when
   82         // the client requested no update.  It may be specified at the
   83         // global, shared-network and subnet levels.
   84         "ddns-override-no-update": false,
   85 
   86         // Suffix appended to the partial name sent to the DNS. The
   87         // default value is an empty string which indicates that no
   88         // suffix is appended.  It may be specified at the global,
   89         // shared-network and subnet levels.
   90         "ddns-qualifying-suffix": "",
   91 
   92         // Enumeration specifying whether the server should honor
   93         // hostname or Client FQDN sent by the client or replace
   94         // this name. The acceptable values are: "never" (use the
   95         // name the client sent), "always" (replace the name the
   96         // client sent), "when-present" (replace the name the client
   97         // sent, but do not generate one when the client didn't sent
   98         // the name), "when-not-present" (generate the name when
   99         // client didn't send one, otherwise leave the name the
  100         // client sent). The default value is "never".  It may be
  101         // specified at the global, shared-network and subnet levels.
  102         "ddns-replace-client-name": "never",
  103 
  104         // Boolean flag which enables or disables the DDNS updating. It
  105         // defaults to true.  It may be specified at the global, shared-
  106         // network and subnet levels. It works in conjunction with
  107         // dhcp-ddns:enable-updates which must be true to enable connectivity
  108         // to kea-dhcp-ddns.
  109         "ddns-send-updates": true,
  110 
  111         // Time in seconds specifying how long a declined lease should be
  112         // excluded from DHCP assignments. The default value is 24 hours.
  113         "decline-probation-period": 86400,
  114 
  115         // Name Change Requests forwarding configuration for Kea DHCPv6 server.
  116         // NCRs are sent to Kea D2 module to update DNS upon allocation of the
  117         // DHCP leases.
  118         "dhcp-ddns": {
  119             // Boolean flag indicating if Kea DHCPv6 server should connect to
  120             // kea-dhcp-ddns.  This must be true for NCRs to be created and
  121             // sent to kea-dhcp-ddns. By default NCRs are not generated.
  122             "enable-updates": false,
  123 
  124             // Specifies maximum number of NCRs to queue waiting to be sent
  125             // to Kea D2 server.
  126             "max-queue-size": 1024,
  127 
  128             // Packet format to use when sending NCRs to Kea D2 server.
  129             // Currently, only JSON format is supported.
  130             "ncr-format": "JSON",
  131 
  132             // Socket protocol to use when sending NCRs to D2. Currently,
  133             // only UDP is supported.
  134             "ncr-protocol": "UDP",
  135 
  136             // IP address that Kea DHCPv6 server should use to send
  137             // NCRs to D2. Default value of zero indicates that Kea
  138             // should pick suitable address.
  139             "sender-ip": "::1",
  140 
  141             // Port number that Kea DHCPv6 server should use to send
  142             // NCRs to D2. Default value of zero indicates that Kea
  143             // should pick suitable port.
  144             "sender-port": 0,
  145 
  146             // IP address on which D2 listens for NCRs.
  147             "server-ip": "::1",
  148 
  149             // Port number on which D2 listens for NCRs.
  150             "server-port": 53001,
  151 
  152             // The follow parameters are DEPRECATED.  They have been
  153             // replaced with parameters that may be set at the global,
  154             // shared-network, and subnet6 scopes.  They are listed here
  155             // as configuration parsing still accepts them.  Eventually
  156             // support for them will be removed.
  157             "generated-prefix": "myhost",
  158             "hostname-char-replacement": "x",
  159             "hostname-char-set": "[^A-Za-z0-9.-]",
  160             "override-client-update": false,
  161             "override-no-update": false,
  162             "qualifying-suffix": "",
  163             "replace-client-name": "never"
  164         },
  165 
  166         // Specifies the first of the two consecutive ports of the UDP
  167         // sockets used for communication between DHCPv6 and DHCPv4
  168         // servers. See RFC 7341.
  169         "dhcp4o6-port": 0,
  170 
  171         // Collection of Kea DHCPv6 server parameters configuring how
  172         // the server should process expired DHCP leases.
  173         "expired-leases-processing": {
  174             // Specifies the number of seconds since last removal of
  175             // the expired leases when next removal should occur.
  176             "flush-reclaimed-timer-wait-time": 25,
  177 
  178             // Specifies the time period in seconds to keep expired
  179             // leases in the lease database (lease affinity).
  180             "hold-reclaimed-time": 3600,
  181 
  182             // Specifies the maximum number of expired leases that can be
  183             // processed in a single attempt to clean up the lease
  184             // database from the expired leases. If there are more
  185             // expired leases, they will be processed during the next
  186             // cleanup attempt.
  187             "max-reclaim-leases": 100,
  188 
  189             // Specifies the maximum time in milliseconds that the single
  190             // attempt to cleanup the lease database from the expired
  191             // leases may take.
  192             "max-reclaim-time": 250,
  193 
  194             // Specifies the time period in seconds since last attempt
  195             // to process expired leases to initiate the next attempt.
  196             "reclaim-timer-wait-time": 10,
  197 
  198             // Specifies the maximum number of expired leases processing
  199             // cycles which didn't result in full cleanup of the lease
  200             // database from the expired leases, after which a
  201             // warning message is issued.
  202             "unwarned-reclaim-cycles": 5
  203         },
  204 
  205         // List of hooks libraries and their specific configuration parameters
  206         // to be loaded by Kea DHCPv4 server.
  207         "hooks-libraries": [
  208             {
  209                 // Location of the hooks library to be loaded.
  210                 "library": "/opt/lib/kea/hooks/libdhcp_lease_cmds.so",
  211 
  212                 // Hook library specific configuration parameters.
  213                 "parameters": { }
  214             }
  215         ],
  216 
  217         // List of access credentials to external sources of IPv6 reservations,
  218         "hosts-databases": [
  219             {
  220                 // Name of the database to connect to.
  221                 "name": "kea",
  222 
  223                 // Host on which the database resides.
  224                 "host": "localhost",
  225 
  226                 // Database password.
  227                 "password": "kea",
  228 
  229                 // Port on which the database is available.
  230                 "port": 3306,
  231 
  232                 // Type of the database, e.g. "mysql", "postgresql", "cql".
  233                 "type": "mysql",
  234 
  235                 // User name to be used to access the database.
  236                 "user": "kea"
  237             },
  238             {
  239                 // Name of the database to connect to.
  240                 "name": "kea",
  241 
  242                 // Host on which the database resides.
  243                 "host": "localhost",
  244 
  245                 // Database password.
  246                 "password": "kea",
  247 
  248                 // Port on which the database is available.
  249                 "port": 5432,
  250 
  251                 // Type of the database, e.g. "mysql", "postgresql", "cql".
  252                 "type": "postgresql",
  253 
  254                 // User name to be used to access the database.
  255                 "user": "kea"
  256             },
  257             {
  258                 // Name of the database to connect to.
  259                 "keyspace": "kea",
  260 
  261                 // Host on which the database resides.
  262                 "contact-points": "127.0.0.1",
  263 
  264                 // Database password.
  265                 "password": "kea",
  266 
  267                 // Port on which the database is available.
  268                 "port": 9042,
  269 
  270                 // Type of the database, e.g. "mysql", "postgresql", "cql".
  271                 "type": "cql",
  272 
  273                 // User name to be used to access the database.
  274                 "user": "kea",
  275 
  276                 // Consistency level for all queries.
  277                 // Supported values: any, one, two, three, quorum, all,
  278                 // local-quorum, each-quorum, serial, local-serial, local-one.
  279                 "consistency": "quorum",
  280 
  281                 // Serial consistency level for all queries.
  282                 // Supported values: any, one, two, three, quorum, all,
  283                 // local-quorum, each-quorum, serial, local-serial, local-one.
  284                 "serial-consistency": "serial",
  285 
  286                 // Connection reconnect wait time.
  287                 "reconnect-wait-time": 100,
  288 
  289                 // Connection connect timeout.
  290                 "connect-timeout": 100,
  291 
  292                 // Connection request timeout.
  293                 "request-timeout": 100,
  294 
  295                 // Connection tcp keepalive.
  296                 "tcp-keepalive": 100,
  297 
  298                 // Connection tcp nodelay.
  299                 "tcp-nodelay": true
  300             }
  301         ],
  302 
  303         // List of host reservation identifier types to be used by the
  304         // Kea DHCPv6 server to fetch static reservations for the
  305         // DHCP clients. All identifiers are used by default, which
  306         // means that the server will issue multiple queries to the
  307         // database to find if there is a reservation for the particular
  308         // client. If the particular deployment uses only subset, e.g.
  309         // one, identifier type, this identifier should be only listed
  310         // here to prevent unnecessary queries to the database.
  311         "host-reservation-identifiers": [
  312             "hw-address",
  313             "duid",
  314             "flex-id"
  315         ],
  316 
  317         // Specifies configuration of interfaces on which the Kea DHCPv6
  318         // server is listening to the DHCP queries.
  319         "interfaces-config": {
  320             // Specifies a list of interfaces on which the Kea DHCPv6
  321             // server should listen to the DHCP requests.
  322             "interfaces": [
  323                 "ethX"
  324             ],
  325 
  326             // Boolean flag indicating if the available interfaces should
  327             // be re-detected upon server reconfiguration. The default value
  328             // is true which means that the interfaces are always
  329             // re-detected.
  330             "re-detect": true
  331         },
  332 
  333         // Specifies credentials to access lease database.
  334         "lease-database": {
  335             // memfile backend specific parameter specifying the interval
  336             // in seconds at which lease file should be cleaned up (outdated
  337             // lease entries are removed to prevent lease file from growing
  338             // infinitely).
  339             "lfc-interval": 3600,
  340 
  341             // Maximum number of lease file read errors allowed before
  342             // loading the file is abandoned.  Defaults to 0 (no limit).
  343             "max-row-errors": 100,
  344 
  345             // Name of the lease file. In case of database it specifies the
  346             // database name.
  347             "name": "/tmp/kea-dhcp6.csv",
  348 
  349             // memfile specific parameter indicating whether leases should
  350             // be saved on persistent storage (disk) or not. The true value
  351             // is the default and it indicates that leases are stored in the
  352             // persistent storage. This setting must be used in production.
  353             // The false value should only be used for testing purposes
  354             // because non stored leases will be lost upon Kea server restart.
  355             "persist": true,
  356 
  357             // Lease database backend type, i.e. "memfile", "mysql",
  358             // "postgresql" or "cql".
  359             "type": "memfile"
  360         },
  361 
  362         // List of parameters indicating how the client's MAC address can be
  363         // inferred from the DHCP query. Supported values are listed in the
  364         // Kea Administrator Reference Manual.
  365         "mac-sources": [ "duid" ],
  366 
  367         // List of global DHCP options that Kea DHCPv6 server assigns to the
  368         // clients.
  369         "option-data": [
  370             {
  371                 // Boolean flag indicating if the given option is always
  372                 // send in response or only when requested. The default
  373                 // value of false indicates that it is only sent when
  374                 // requested.
  375                 "always-send": false,
  376 
  377                 // Option code. It is not required if the option name is
  378                 // provided.
  379                 "code": 23,
  380 
  381                 // Boolean value indicating whether the option data specified
  382                 // in the "data" field is specified as a string of hexadecimal
  383                 // digits or in human readable CSV format.
  384                 "csv-format": true,
  385 
  386                 // Option data to be stored in the option payload.
  387                 "data": "2001:db8:2::45, 2001:db8:2::100",
  388 
  389                 // Option name. It is not required of the option code is
  390                 // provided.
  391                 "name": "dns-servers",
  392 
  393                 // Option space. The default is the "dhcp6" option space which
  394                 // groups top level DHCPv6 options.
  395                 "space": "dhcp6"
  396             }
  397         ],
  398 
  399         // List of global option definitions, i.e. option formats, that the
  400         // Kea DHCPv6 server is using.
  401         "option-def": [
  402             {
  403                 // Boolean flag indicating if the option definition comprises
  404                 // an array of values of some type, e.g. array of IPv6 addresses.
  405                 // The default value of false means that the option does not
  406                 // comprise an array of values.
  407                 "array": false,
  408 
  409                 // Option code.
  410                 "code": 6,
  411 
  412                 // Holds a name of the option space encapsulated by this option.
  413                 // All options that belong to this option space will be sent
  414                 // as sub-options of this option. Empty string means that this
  415                 // option doesn't encapsulate any option.
  416                 "encapsulate": "",
  417 
  418                 // Option name.
  419                 "name": "my-option",
  420 
  421                 // Specifies the types of fields within the option if the option
  422                 // is said to be a "record" (see "type"). in this particular example
  423                 // this option comprises two fields, 1 byte and 2 bytes long.
  424                 "record-types": "uint8, uint16",
  425 
  426                 // Name of the option space to which this option belongs.
  427                 "space": "my-space",
  428 
  429                 // Option type. All possible types are listed in the Kea
  430                 // Administrator Reference Manual.
  431                 "type": "record"
  432             }
  433         ],
  434 
  435         // Global (default) value of the preferred lifetime.
  436         "preferred-lifetime": 50,
  437 
  438         // Global min value of the preferred lifetime.
  439         "min-preferred-lifetime": 40,
  440 
  441         // Global max value of the preferred lifetime.
  442         "max-preferred-lifetime": 60,
  443 
  444         // Global value for the rebind timer, i.e. the time after which the
  445         // DHCP client enters rebind state if it fails to renew the lease.
  446         "rebind-timer": 40,
  447 
  448         // List of relay supplied option codes. See RFC 6422.
  449         "relay-supplied-options": [ "110", "120", "130" ],
  450 
  451         // Global value for the renew timer, i.e. the timer after which the
  452         // DHCP client renews the lease.
  453         "renew-timer": 30,
  454 
  455         // Governs how the Kea DHCPv6 server should deal with the invalid
  456         // data received from the client.
  457         "sanity-checks": {
  458             // Specifies how the Kea DHCPv6 server should behave when invalid
  459             // data is read for a lease from the lease file. The following
  460             // values are supported "none" (don't attempt to correct the
  461             // lease information), "warn" (print a warning for subnet-id
  462             // related inconsistencies), "fix" (correct the subnet id by
  463             // trying to find the suitable subnet), "fix-del" (similar
  464             // to "fix" but delete the lease if no suitable subnet found),
  465             // "del" (delete the lease if the lease has invalid subnet
  466             // identifier value).
  467             "lease-checks": "warn"
  468         },
  469 
  470         // Custom DUID used by the DHCPv6 server.
  471         "server-id": {
  472             // Type of the DUID. Possible values are "LLT", "EN", and "LL".
  473             "type": "EN",
  474 
  475             // Enterprise id used for "EN" duid.
  476             "enterprise-id": 2495,
  477 
  478             // Identifier part of the DUID.
  479             "identifier": "0123456789",
  480 
  481             // Boolean flag indicating if the DUID should be persisted on
  482             // disk.
  483             "persist": false
  484         },
  485 
  486         // List of shared networks used by Kea DHCPv6 server. The shared
  487         // networks group subnets together.
  488         "shared-networks": [
  489             {
  490                 // Restricts this shared network to allow only clients
  491                 // that belong to the particular client class. If an
  492                 // empty string is provided, no restriction is applied.
  493                 "client-class": "",
  494 
  495                 // Shared network level value. See description at the global level.
  496                 "ddns-generated-prefix": "myhost",
  497 
  498                 // Shared network level value. See description at the global level.
  499                 "ddns-override-client-update": false,
  500 
  501                 // Shared network level value. See description at the global level.
  502                 "ddns-override-no-update": false,
  503 
  504                 // Shared network level value. See description at the global level.
  505                 "ddns-qualifying-suffix": "",
  506 
  507                 // Shared network level value. See description at the global level.
  508                 "ddns-replace-client-name": "never",
  509 
  510                 // Shared network level value. See description at the global level.
  511                 "ddns-send-updates": true,
  512 
  513                 // Shared network level value. See description at the global level.
  514                 "hostname-char-replacement": "x",
  515 
  516                 // Shared network level value. See description at the global level.
  517                 "hostname-char-set": "[^A-Za-z0-9.-]",
  518 
  519                 // Specifies that this shared network is selected for the
  520                 // requests received on the particular interface.
  521                 "interface": "ethX",
  522 
  523                 // Specifies the content of the interface-id option used
  524                 // by relays to identify the interface on the relay to
  525                 // which the response is sent.
  526                 "interface-id": "",
  527 
  528                 // Shared network name.
  529                 "name": "my-secret-network",
  530 
  531                 // List of shared network specific DHCP options.
  532                 "option-data": [],
  533 
  534                 // Shared network specific (default) preferred lifetime.
  535                 "preferred-lifetime": 2000,
  536 
  537                 // Shared network specific min preferred lifetime.
  538                 "min-preferred-lifetime": 1500,
  539 
  540                 // Shared network specific ma xpreferred lifetime.
  541                 "max-preferred-lifetime": 2500,
  542 
  543                 // Boolen flag indicating if the server can respond to
  544                 // a Solicit message including a Rapid Commit option with
  545                 // the Reply message (See DHCPv6 rapid commit).
  546                 "rapid-commit": false,
  547 
  548                 // List of IPv6 relay addresses for which this shared
  549                 // network is selected.
  550                 "relay": {
  551                     "ip-addresses": []
  552                 },
  553 
  554                 // Shared network level rebind timer.
  555                 "rebind-timer": 41,
  556 
  557                 // Shared network level renew timer.
  558                 "renew-timer": 31,
  559 
  560                 // Shared network level compute T1 and T2 timers.
  561                 "calculate-tee-times": true,
  562 
  563                 // T1 = valid lifetime * .5.
  564                 "t1-percent": .5,
  565 
  566                 // T2 = valid lifetime * .75.
  567                 "t2-percent": .75,
  568 
  569                 // Enumeration specifying server's mode of operation when it
  570                 // fetches host reservations.
  571                 "reservation-mode": "all",
  572 
  573                 // List of client classes which must be evaluated when this shared
  574                 // network is selected for client assignments.
  575                 "require-client-classes": [ "late" ],
  576 
  577                 // List of IPv6 subnets belonging to this shared network.
  578                 "subnet6": [
  579                     {
  580                         // Restricts this subnet to allow only clients that belong
  581                         // to the particular client class. If an empty string is
  582                         // provided, no restriction is applied.
  583                         "client-class": "",
  584 
  585                         // Subnet level value. See description at the global level.
  586                         "ddns-generated-prefix": "myhost",
  587 
  588                         // Subnet level value. See description at the global level.
  589                         "ddns-override-client-update": false,
  590 
  591                         // Subnet level value. See description at the global level.
  592                         "ddns-override-no-update": false,
  593 
  594                         // Subnet level value. See description at the global level.
  595                         "ddns-qualifying-suffix": "",
  596 
  597                         // Subnet level value. See description at the global level.
  598                         "ddns-replace-client-name": "never",
  599 
  600                         // Subnet level value. See description at the global level.
  601                         "ddns-send-updates": true,
  602 
  603                         // Subnet level value. See description at the global level.
  604                         "hostname-char-replacement": "x",
  605 
  606                         // Subnet level value. See description at the global level.
  607                         "hostname-char-set": "[^A-Za-z0-9.-]",
  608 
  609                         // Subnet unique identifier.
  610                         "id": 1,
  611 
  612                         // Specifies that this subnet is selected for the requests
  613                         // received on the particular interface.
  614                         "interface": "ethX",
  615 
  616                         // Specifies the content of the interface-id option used
  617                         // by relays to identify the interface on the relay to
  618                         // which the response is sent.
  619                         "interface-id": "",
  620 
  621                         // Subnet level list of DHCP options.
  622                         "option-data": [
  623                             {
  624                                 // Boolean flag indicating if the particular option
  625                                 // should be always sent or sent only when requested.
  626                                 "always-send": false,
  627 
  628                                 // Option code.
  629                                 "code": 7,
  630 
  631                                 // Boolean flag indicating if the option value specified
  632                                 // in "data" is a string of hexadecimal values or human
  633                                 // readable CSV value.
  634                                 "csv-format": false,
  635 
  636                                 // Option data to be included in the option payload.
  637                                 "data": "0xf0",
  638 
  639                                 // Option name.
  640                                 "name": "preference",
  641 
  642                                 // Option space. The default value "dhcp6" designates the
  643                                 // top level option space.
  644                                 "space": "dhcp6"
  645                             }
  646                         ],
  647 
  648                         // List of pools from which delegated prefixes are assigned to the
  649                         // clients.
  650                         "pd-pools": [
  651                             {
  652                                 // Restricts this prefix pool to be used only for the client
  653                                 // requests belonging to a particular client class.
  654                                 "client-class": "phones_server1",
  655 
  656                                 // Length of prefixes delegated to clients.
  657                                 "delegated-len": 64,
  658 
  659                                 // Excluded prefix (address) from client assignments.
  660                                 "excluded-prefix": "2001:db8::",
  661 
  662                                 // Excluded prefix (length) from client assignments.
  663                                 "excluded-prefix-len": 48,
  664 
  665                                 // Prefix pool level list of DHCP options.
  666                                 "option-data": [],
  667 
  668                                 // Prefix range (address) used for client assignments.
  669                                 "prefix": "2001:db8::",
  670 
  671                                 // Prefix range (length) used for client assignments.
  672                                 "prefix-len": 40,
  673 
  674                                 // List of client classes which must be evaluated
  675                                 // when this prefix pool is selected for client assignments.
  676                                 "require-client-classes": []
  677                             }
  678                         ],
  679 
  680                         "pools": [
  681                             {
  682                                 // Restricts this pool to be only used for the client
  683                                 // requests belonging to a particular client class.
  684                                 "client-class": "phones_server1",
  685 
  686                                 // Pool level list of DHCP options.
  687                                 "option-data": [],
  688 
  689                                 // Address range used for client assignments.
  690                                 "pool": "2001:db8:0:1::/64",
  691 
  692                                 // List of client classes which must be evaluated when this pool
  693                                 // is selected for client assignments.
  694                                 "require-client-classes": [ "late" ]
  695                             },
  696                             {
  697                                 // Restricts this pool to be only used for the client
  698                                 // requests belonging to a particular client class.
  699                                 "client-class": "phones_server2",
  700 
  701                                 // Pool level list of DHCP options.
  702                                 "option-data": [],
  703 
  704                                 // Address range used for client assignments.
  705                                 "pool": "2001:db8:0:3::/64",
  706 
  707                                 // List of client classes which must be evaluated when this pool
  708                                 // is selected for client assignments.
  709                                 "require-client-classes": []
  710                             }
  711                         ],
  712 
  713                         // Subnet specific (default) preferred lifetime.
  714                         "preferred-lifetime": 2000,
  715 
  716                         // Subnet specific min preferred lifetime.
  717                         "min-preferred-lifetime": 1500,
  718 
  719                         // Subnet specific max referred lifetime.
  720                         "max-preferred-lifetime": 2500,
  721 
  722                         // Boolen flag indicating if the server can respond to
  723                         // a Solicit message including a Rapid Commit option with
  724                         // the Reply message (See DHCPv6 rapid commit).
  725                         "rapid-commit": false,
  726 
  727                         // Subnet level rebind timer.
  728                         "rebind-timer": 40,
  729 
  730                         // List of IPv4 relay addresses for which this subnet
  731                         // is selected.
  732                         "relay": {
  733                             "ip-addresses": [
  734                                 "2001:db8:0:f::1"
  735                             ]
  736                         },
  737 
  738                         // Subnet level renew timer.
  739                         "renew-timer": 30,
  740 
  741                         // Enumeration specifying server's mode of operation when it
  742                         // fetches host reservations.
  743                         "reservation-mode": "all",
  744 
  745                         // Subnet level compute T1 and T2 timers.
  746                         "calculate-tee-times": true,
  747 
  748                         // T1 = valid lifetime * .5.
  749                         "t1-percent": .5,
  750 
  751                         // T2 = valid lifetime * .75.
  752                         "t2-percent": .75,
  753 
  754                         // List of static IPv6 reservations assigned to the clients belonging
  755                         // to this subnet. For detailed example see reservations.json.
  756                         "reservations": [
  757                             {
  758                                 // Identifier used for client matching. Supported values are
  759                                 // "duid", "hw-address" and "flex-id".
  760                                 "duid": "01:02:03:04:05:06:07:08:09:0A",
  761 
  762                                 // List of reserved IPv6 addresses.
  763                                 "ip-addresses": [ "2001:db8:1:cafe::1" ],
  764 
  765                                 // List of reserved IPv6 prefixes.
  766                                 "prefixes": [ "2001:db8:2:abcd::/64" ],
  767 
  768                                 // Reserved hostname.
  769                                 "hostname": "foo.example.com",
  770 
  771                                 // Reservation specific option data.
  772                                 "option-data": [
  773                                     {
  774                                         // Option name.
  775                                         "name": "vendor-opts",
  776 
  777                                         // Option value.
  778                                         "data": "4491"
  779                                     }
  780                                 ]
  781                             }
  782                         ],
  783 
  784                         // List of client classes which must be evaluated when this subnet
  785                         // is selected for client assignments.
  786                         "require-client-classes": [ "late" ],
  787 
  788                         // Subnet prefix.
  789                         "subnet": "2001:db8::/32",
  790 
  791                         // Subnet level (default) valid lifetime.
  792                         "valid-lifetime": 6000,
  793 
  794                         // Subnet level min valid lifetime.
  795                         "min-valid-lifetime": 4000,
  796 
  797                         // Subnet level max valid lifetime.
  798                         "max-valid-lifetime": 8000
  799                     }
  800                 ],
  801 
  802                 // Shared network level (default) valid lifetime.
  803                 "valid-lifetime": 6001,
  804 
  805                 // Shared network level min valid lifetime.
  806                 "min-valid-lifetime": 4001,
  807 
  808                 // Shared network level max valid lifetime.
  809                 "max-valid-lifetime": 8001
  810             }
  811         ],
  812 
  813         // List of IPv6 subnets which don't belong to any shared network.
  814         "subnet6": [],
  815 
  816         // Global (default) valid lifetime value.
  817         "valid-lifetime": 6000,
  818 
  819         // Global min valid lifetime value.
  820         "min-valid-lifetime": 4000,
  821 
  822         // Global max valid lifetime value.
  823         "max-valid-lifetime": 8000,
  824 
  825         // Reservations (examples are in other files).
  826         "reservations": [],
  827 
  828         // Configuration control (currently not used, i.e. this syntax
  829         // is already defined but corresponding feature is not implemented).
  830         "config-control":
  831         {
  832             // Only configuration databases entry is defined.
  833             "config-databases": [
  834                 {
  835                     // Name of the database to connect to.
  836                     "name": "config",
  837 
  838                     // Type of the database, e.g. "mysql", "postgresql", "cql".
  839                     "type": "mysql"
  840                 }
  841             ],
  842             // Intervals between attempts to fetch configuration updates
  843             // via the configuration backends used.
  844             "config-fetch-wait-time": 30
  845         },
  846 
  847         // Server tag.
  848         "server-tag": "my DHCPv6 server",
  849 
  850         // DHCP queue control parameters.
  851         "dhcp-queue-control":
  852         {
  853             // Enable queue is mandatory.
  854             "enable-queue": true,
  855 
  856             // Queue type was mandatory.
  857             "queue-type": "kea-ring6"
  858         },
  859 
  860         // Fetches host reservations.
  861         "reservation-mode": "all",
  862 
  863         // Data directory.
  864         "data-directory": "/tmp",
  865 
  866         // Global compute T1 and T2 timers.
  867         "calculate-tee-times": true,
  868 
  869         // T1 = valid lifetime * .5.
  870         "t1-percent": .5,
  871 
  872         // T2 = valid lifetime * .75.
  873         "t2-percent": .75,
  874 
  875         // String of zero or more characters with which to replace each
  876         // invalid character in the Client FQDN. The default
  877         // value is an empty string which will cause invalid characters
  878         // to be omitted rather than replaced.
  879         "hostname-char-replacement": "x",
  880 
  881         // Regular expression describing the invalid character set in
  882         // the Client FQDN.
  883         "hostname-char-set": "[^A-Za-z0-9.-]",
  884 
  885         // List of loggers used by the servers using this configuration file.
  886         "loggers": [
  887             {
  888                 // Debug level, a value between 0..99. The greater the value
  889                 // the more detailed debug log.
  890                 "debuglevel": 99,
  891 
  892                 // Name of the logger.
  893                 "name": "kea-dhcp6",
  894 
  895                 // Configures how the log should be output.
  896                 "output_options": [
  897                     {
  898                         // Determines whether the log should flushed to a file.
  899                         "flush": true,
  900 
  901                         // Specifies maximum filesize before the file is being rotated.
  902                         "maxsize": 10240000,
  903 
  904                         // Specifies the maximum number of rotated files being kept.
  905                         "maxver": 1,
  906 
  907                         // Specifies logging destination.
  908                         "output": "stdout",
  909 
  910                         // Specifies log entry content
  911                         "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p [%c/%i] %m\n"
  912                     }
  913                 ],
  914 
  915                 // Specifies logging severity, i.e. "ERROR", "WARN", "INFO", "DEBUG".
  916                 "severity": "INFO"
  917             }
  918         ]
  919     }
  920 }