mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-03 07:25:18 +00:00
[430-configure-location-of-datadir] Forked all-keys.json files into stable and current versions
This commit is contained in:
@@ -19,7 +19,8 @@ nobase_dist_doc_DATA += examples/https/httpd2/kea-httpd2.conf
|
|||||||
nobase_dist_doc_DATA += examples/https/nginx/kea-nginx.conf
|
nobase_dist_doc_DATA += examples/https/nginx/kea-nginx.conf
|
||||||
nobase_dist_doc_DATA += examples/https/shell/kea-stunnel.conf
|
nobase_dist_doc_DATA += examples/https/shell/kea-stunnel.conf
|
||||||
nobase_dist_doc_DATA += examples/kea4/advanced.json
|
nobase_dist_doc_DATA += examples/kea4/advanced.json
|
||||||
nobase_dist_doc_DATA += examples/kea4/all-keys.json
|
nobase_dist_doc_DATA += examples/kea4/all-keys-current.json
|
||||||
|
nobase_dist_doc_DATA += examples/kea4/all-keys-stable.json
|
||||||
nobase_dist_doc_DATA += examples/kea4/backends.json
|
nobase_dist_doc_DATA += examples/kea4/backends.json
|
||||||
nobase_dist_doc_DATA += examples/kea4/cassandra.json
|
nobase_dist_doc_DATA += examples/kea4/cassandra.json
|
||||||
nobase_dist_doc_DATA += examples/kea4/classify.json
|
nobase_dist_doc_DATA += examples/kea4/classify.json
|
||||||
@@ -40,7 +41,8 @@ nobase_dist_doc_DATA += examples/kea4/shared-network.json
|
|||||||
nobase_dist_doc_DATA += examples/kea4/single-subnet.json
|
nobase_dist_doc_DATA += examples/kea4/single-subnet.json
|
||||||
nobase_dist_doc_DATA += examples/kea4/with-ddns.json
|
nobase_dist_doc_DATA += examples/kea4/with-ddns.json
|
||||||
nobase_dist_doc_DATA += examples/kea6/advanced.json
|
nobase_dist_doc_DATA += examples/kea6/advanced.json
|
||||||
nobase_dist_doc_DATA += examples/kea6/all-keys.json
|
nobase_dist_doc_DATA += examples/kea6/all-keys-current.json
|
||||||
|
nobase_dist_doc_DATA += examples/kea6/all-keys-stable.json
|
||||||
nobase_dist_doc_DATA += examples/kea6/backends.json
|
nobase_dist_doc_DATA += examples/kea6/backends.json
|
||||||
nobase_dist_doc_DATA += examples/kea6/cassandra.json
|
nobase_dist_doc_DATA += examples/kea6/cassandra.json
|
||||||
nobase_dist_doc_DATA += examples/kea6/classify.json
|
nobase_dist_doc_DATA += examples/kea6/classify.json
|
||||||
|
748
doc/examples/kea4/all-keys-current.json
Normal file
748
doc/examples/kea4/all-keys-current.json
Normal file
@@ -0,0 +1,748 @@
|
|||||||
|
// WARNING: This example configuration is not meant for production use.
|
||||||
|
// The Kea DHCPv4 server will refuse this configuration because it contains
|
||||||
|
// mutually exclusive configuration parameters.
|
||||||
|
//
|
||||||
|
// The primary purpose of the example file is to provide a comprehensive
|
||||||
|
// list of parameters supported by Kea DHCPv4 server along with the brief
|
||||||
|
// description of each parameter.
|
||||||
|
//
|
||||||
|
// This current version should be up to date, i.e. new keywords should be
|
||||||
|
// added in this file at the same time than in the syntax.
|
||||||
|
{
|
||||||
|
// Kea DHCPv4 server configuration begins here.
|
||||||
|
"Dhcp4": {
|
||||||
|
// Global bootfile name to be set in the 'file' field.
|
||||||
|
"boot-file-name": "/dev/null",
|
||||||
|
|
||||||
|
// Ordered list of client classes used by the DHCPv4 server.
|
||||||
|
"client-classes": [
|
||||||
|
{
|
||||||
|
// Class specific bootfile name to be set in the 'file' field.
|
||||||
|
"boot-file-name": "/tmp/bootfile.efi",
|
||||||
|
|
||||||
|
// Class name.
|
||||||
|
"name": "phones_server1",
|
||||||
|
|
||||||
|
// Class specific next server address to use in bootstrap, which
|
||||||
|
// is set in 'siaddr' field.
|
||||||
|
"next-server": "10.2.3.4",
|
||||||
|
|
||||||
|
// Class specific DHCPv4 options list.
|
||||||
|
"option-data": [],
|
||||||
|
|
||||||
|
// Class specific DHCPv4 option definitions, i.e. custom formats
|
||||||
|
// specified for non-standard options.
|
||||||
|
"option-def": [],
|
||||||
|
|
||||||
|
// Class specific optional server hostname, which is set in
|
||||||
|
// 'sname' field.
|
||||||
|
"server-hostname": "",
|
||||||
|
|
||||||
|
// Class selection expression. The DHCP packet is assigned to this
|
||||||
|
// class when the given expression evaluates to true.
|
||||||
|
"test": "member('HA_server1')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// Default value of the class specific bootfile name. Empty name
|
||||||
|
// means that the bootfile name is unspecified.
|
||||||
|
"boot-file-name": "",
|
||||||
|
|
||||||
|
// Second class name.
|
||||||
|
"name": "phones_server2",
|
||||||
|
|
||||||
|
// Default value of the class specific next server address. The
|
||||||
|
// zero IPv4 address means that it is unspecified.
|
||||||
|
"next-server": "0.0.0.0",
|
||||||
|
|
||||||
|
// Class specific DHCPv4 options list.
|
||||||
|
"option-data": [],
|
||||||
|
|
||||||
|
// Class specific DHCPv4 option definitions, i.e. custom formats
|
||||||
|
// specified for non-standard options.
|
||||||
|
"option-def": [],
|
||||||
|
|
||||||
|
// Class specific optional server hostname, which is set in
|
||||||
|
// 'sname' field.
|
||||||
|
"server-hostname": "",
|
||||||
|
|
||||||
|
// Class selection expression. The DHCP packet is assigned to this
|
||||||
|
// class when the given expression evaluates to true.
|
||||||
|
"test": "member('HA_server2')"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
// Third class name.
|
||||||
|
"name": "late",
|
||||||
|
|
||||||
|
// Boolean flag indicating that the class expression is only evaluated
|
||||||
|
// when the class is required, e.g. selected address pool configuration
|
||||||
|
// includes this class name in its "require-client-classes" list. The
|
||||||
|
// default value false means that the class test expression must
|
||||||
|
// always be evaluated.
|
||||||
|
"only-if-required": true,
|
||||||
|
|
||||||
|
// Class selection expression.
|
||||||
|
"test": "member('ALL')"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Command control socket configuration parameters for Kea DHCPv4 server.
|
||||||
|
"control-socket": {
|
||||||
|
// Location of the unix domain socket file the DHCPv4 server uses
|
||||||
|
// to receive control commands from the Kea Control Agent or the
|
||||||
|
// local server administrator.
|
||||||
|
"socket-name": "/tmp/kea-dhcp4-ctrl.sock",
|
||||||
|
|
||||||
|
// Control socket type used by the Kea DHCPv4 server. The 'unix'
|
||||||
|
// socket is currently the only supported type.
|
||||||
|
"socket-type": "unix"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Time in seconds specifying how long a declined lease should be
|
||||||
|
// excluded from DHCP assignments. The default value is 24 hours.
|
||||||
|
"decline-probation-period": 86400,
|
||||||
|
|
||||||
|
// Name Change Requests forwarding configuration for Kea DHCPv4 server.
|
||||||
|
// NCRs are sent to Kea D2 module to update DNS upon allocation of the
|
||||||
|
// DHCP leases.
|
||||||
|
"dhcp-ddns": {
|
||||||
|
// Boolean flag indicating if Kea DHCPv4 server must generate NCRs.
|
||||||
|
// By default NCRs are not generated.
|
||||||
|
"enable-updates": false,
|
||||||
|
|
||||||
|
// Specifies a prefix to be prepended to the generated Client FQDN.
|
||||||
|
"generated-prefix": "myhost",
|
||||||
|
|
||||||
|
// String of zero or more characters with which to replace each
|
||||||
|
// invalid character in the hostname or Client FQDN. The default
|
||||||
|
// value is an empty string which will cause invalid characters
|
||||||
|
// to be omitted rather than replaced.
|
||||||
|
"hostname-char-replacement": "x",
|
||||||
|
|
||||||
|
// Regular expression describing the invalid character set in
|
||||||
|
// the hostname or Client FQDN.
|
||||||
|
"hostname-char-set": "[^A-Za-z0-9.-]",
|
||||||
|
|
||||||
|
// Specifies maximum number of NCRs to queue waiting to be sent
|
||||||
|
// to Kea D2 server.
|
||||||
|
"max-queue-size": 1024,
|
||||||
|
|
||||||
|
// Packet format to use when sending NCRs to Kea D2 server.
|
||||||
|
// Currently, only JSON format is supported.
|
||||||
|
"ncr-format": "JSON",
|
||||||
|
|
||||||
|
// Socket protocol to use when sending NCRs to D2. Currently,
|
||||||
|
// only UDP is supported.
|
||||||
|
"ncr-protocol": "UDP",
|
||||||
|
|
||||||
|
// Boolean flag indicating that server should ignore DHCP client
|
||||||
|
// wishes to update DNS on its own. With that flag set to true
|
||||||
|
// the server will send DNS updates for both forward and
|
||||||
|
// reverse DNS data. The default value is false, which indicates
|
||||||
|
// that the server will delegate DNS update to the client when
|
||||||
|
// requested.
|
||||||
|
"override-client-update": false,
|
||||||
|
|
||||||
|
// Boolean flag indicating that the server should override DHCP
|
||||||
|
// client's wish to not update the DNS. With this parameter
|
||||||
|
// set to true the server will send DNS update even when
|
||||||
|
// the client requested no update.
|
||||||
|
"override-no-update": false,
|
||||||
|
|
||||||
|
// Suffix appended to the partial name sent to the DNS. The
|
||||||
|
// default value is an empty string which indicates that no
|
||||||
|
// suffix is appended.
|
||||||
|
"qualifying-suffix": "",
|
||||||
|
|
||||||
|
// Enumeration specifying whether the server should honor
|
||||||
|
// hostname or Client FQDN sent by the client or replace
|
||||||
|
// this name. The acceptable values are: "never" (use the
|
||||||
|
// name the client sent), "always" (replace the name the
|
||||||
|
// client sent), "when-present" (replace the name the client
|
||||||
|
// sent, but do not generate one when the client didn't sent
|
||||||
|
// the name), "when-not-present" (generate the name when
|
||||||
|
// client didn't send one, otherwise leave the name the
|
||||||
|
// client sent). The default value is "never".
|
||||||
|
"replace-client-name": "never",
|
||||||
|
|
||||||
|
// IP address that Kea DHCPv4 server should use to send
|
||||||
|
// NCRs to D2. Default value of zero indicates that Kea
|
||||||
|
// should pick suitable address.
|
||||||
|
"sender-ip": "0.0.0.0",
|
||||||
|
|
||||||
|
// Port number that Kea DHCPv4 server should use to send
|
||||||
|
// NCRs to D2. Default value of zero indicates that Kea
|
||||||
|
// should pick suitable port.
|
||||||
|
"sender-port": 0,
|
||||||
|
|
||||||
|
// IP address on which D2 listens for NCRs.
|
||||||
|
"server-ip": "127.0.0.1",
|
||||||
|
|
||||||
|
// Port number on which D2 listens for NCRs.
|
||||||
|
"server-port": 53001
|
||||||
|
},
|
||||||
|
|
||||||
|
// Specifies the first of the two consecutive ports of the UDP
|
||||||
|
// sockets used for communication between DHCPv6 and DHCPv4
|
||||||
|
// servers. See RFC 7341.
|
||||||
|
"dhcp4o6-port": 6767,
|
||||||
|
|
||||||
|
// Boolean flag indicating whether or not the Kea DHCPv4 server
|
||||||
|
// should send back Client Identifier option in its responses.
|
||||||
|
// The default value is true which indicates that the option
|
||||||
|
// must be sent back if the client included it. The false
|
||||||
|
// value instructs the server to not send this option for
|
||||||
|
// backward compatibility with older DHCP specifications which
|
||||||
|
// stated that Client Identifier must not be sent back.
|
||||||
|
"echo-client-id": true,
|
||||||
|
|
||||||
|
// Collection of Kea DHCPv4 server parameters configuring how
|
||||||
|
// the server should process expired DHCP leases.
|
||||||
|
"expired-leases-processing": {
|
||||||
|
// Specifies the number of seconds since last removal of
|
||||||
|
// the expired leases when next removal should occur.
|
||||||
|
"flush-reclaimed-timer-wait-time": 25,
|
||||||
|
|
||||||
|
// Specifies the time period in seconds to keep expired
|
||||||
|
// leases in the lease database (lease affinity).
|
||||||
|
"hold-reclaimed-time": 3600,
|
||||||
|
|
||||||
|
// Specifies the maximum number of expired leases that can be
|
||||||
|
// processed in a single attempt to clean up the lease
|
||||||
|
// database from the expired leases. If there are more
|
||||||
|
// expired leases, they will be processed during the next
|
||||||
|
// cleanup attempt.
|
||||||
|
"max-reclaim-leases": 100,
|
||||||
|
|
||||||
|
// Specifies the maximum time in milliseconds that the single
|
||||||
|
// attempt to cleanup the lease database from the expired
|
||||||
|
// leases may take.
|
||||||
|
"max-reclaim-time": 250,
|
||||||
|
|
||||||
|
// Specifies the time period in seconds since last attempt
|
||||||
|
// to process expired leases to initiate the next attempt.
|
||||||
|
"reclaim-timer-wait-time": 10,
|
||||||
|
|
||||||
|
// Specifies the maximum number of expired leases processing
|
||||||
|
// cycles which didn't result in full cleanup of the lease
|
||||||
|
// database from the expired leases, after which a
|
||||||
|
// warning message is issued.
|
||||||
|
"unwarned-reclaim-cycles": 5
|
||||||
|
},
|
||||||
|
|
||||||
|
// List of hooks libraries and their specific configuration parameters
|
||||||
|
// to be loaded by Kea DHCPv4 server.
|
||||||
|
"hooks-libraries": [
|
||||||
|
{
|
||||||
|
// Location of the hooks library to be loaded.
|
||||||
|
"library": "/opt/lib/hooks/libdhcp_lease_cmds.so",
|
||||||
|
|
||||||
|
// Hook library specific configuration parameters.
|
||||||
|
"parameters": { }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of access credentials to external sources of IPv4 reservations,
|
||||||
|
"hosts-databases": [
|
||||||
|
{
|
||||||
|
// Name of the database to connect to.
|
||||||
|
"name": "kea",
|
||||||
|
|
||||||
|
// Host on which the database resides.
|
||||||
|
"host": "localhost",
|
||||||
|
|
||||||
|
// Database password.
|
||||||
|
"password": "kea",
|
||||||
|
|
||||||
|
// Port on which the database is available.
|
||||||
|
"port": 3306,
|
||||||
|
|
||||||
|
// Type of the database, e.g. "mysql", "pgsql", "cql".
|
||||||
|
"type": "mysql",
|
||||||
|
|
||||||
|
// User name to be used to access the database.
|
||||||
|
"user": "kea"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of host reservation identifier types to be used by the
|
||||||
|
// Kea DHCPv4 server to fetch static reservations for the
|
||||||
|
// DHCP clients. All identifiers are used by default, which
|
||||||
|
// means that the server will issue multiple queries to the
|
||||||
|
// database to find if there is a reservation for the particular
|
||||||
|
// client. If the particular deployment uses only subset, e.g.
|
||||||
|
// one, identifier type, this identifier should be only listed
|
||||||
|
// here to prevent unnecessary queries to the database.
|
||||||
|
"host-reservation-identifiers": [
|
||||||
|
"hw-address",
|
||||||
|
"duid",
|
||||||
|
"circuit-id",
|
||||||
|
"client-id",
|
||||||
|
"flex-id"
|
||||||
|
],
|
||||||
|
|
||||||
|
// Specifies configuration of interfaces on which the Kea DHCPv4
|
||||||
|
// server is listening to the DHCP queries.
|
||||||
|
"interfaces-config": {
|
||||||
|
// Specifies whether the server should use "udp" socket or
|
||||||
|
// "raw" sockets to listen to the DHCP traffic. The "raw"
|
||||||
|
// sockets are useful when direct DHCP traffic is being
|
||||||
|
// received.
|
||||||
|
"dhcp-socket-type": "udp",
|
||||||
|
|
||||||
|
// Specifies a list of interfaces on which the Kea DHCPv4
|
||||||
|
// server should listen to the DHCP requests.
|
||||||
|
"interfaces": [
|
||||||
|
"ethX"
|
||||||
|
],
|
||||||
|
|
||||||
|
// Enumeration which indicates what interface should be used
|
||||||
|
// to send DHCP response to the client. The default value is
|
||||||
|
// "same-as-inbound" which indicates that the response should
|
||||||
|
// be sent via the interface on which the client's query
|
||||||
|
// was received. The "use-routing" value indicates that the
|
||||||
|
// Kea server should use kernel's routing table to find the
|
||||||
|
// suitable interface.
|
||||||
|
"outbound-interface": "same-as-inbound",
|
||||||
|
|
||||||
|
// Boolean flag indicating if the available interfaces should
|
||||||
|
// be re-detected upon server reconfiguration. The default value
|
||||||
|
// is true which means that the interfaces are always
|
||||||
|
// re-detected.
|
||||||
|
"re-detect": true
|
||||||
|
},
|
||||||
|
|
||||||
|
// Specifies credentials to access lease database.
|
||||||
|
"lease-database": {
|
||||||
|
// memfile backend specific parameter specifying the interval
|
||||||
|
// in seconds at which lease file should be cleaned up (outdated
|
||||||
|
// lease entries are removed to prevent lease file from growing
|
||||||
|
// infinitely).
|
||||||
|
"lfc-interval": 3600,
|
||||||
|
|
||||||
|
// Name of the lease file. In case of database it specifies the
|
||||||
|
// database name.
|
||||||
|
"name": "/tmp/kea-dhcp4.csv",
|
||||||
|
|
||||||
|
// memfile specific parameter indicating whether leases should
|
||||||
|
// be saved on persistent storage (disk) or not. The true value
|
||||||
|
// is the default and it indicates that leases are stored in the
|
||||||
|
// persistent storage. This setting must be used in production.
|
||||||
|
// The false value should only be used for testing purposes
|
||||||
|
// because non stored leases will be lost upon Kea server restart.
|
||||||
|
"persist": true,
|
||||||
|
|
||||||
|
// Lease database backend type, i.e. "memfile", "mysql", "pgsql"
|
||||||
|
// or "cql".
|
||||||
|
"type": "memfile"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Boolean value indicating if the Kea DHCPv4 server should use client
|
||||||
|
// identifier value sent by the client or ignore it. The default value
|
||||||
|
// is true which indicate that the server should use client identifier
|
||||||
|
// and that it takes precedence over client's MAC address. In deployments
|
||||||
|
// where MAC address should take precedence this value can be set to
|
||||||
|
// false, in which case the clients will be identified by MAC address.
|
||||||
|
// This is specifically useful when clients don't generate unique
|
||||||
|
// identifiers or these identifiers are not stable etc.
|
||||||
|
"match-client-id": false,
|
||||||
|
|
||||||
|
// Global value of the next server address set in 'siaddr' field.
|
||||||
|
// The global value may be overriden in lower level configuration
|
||||||
|
// scopes.
|
||||||
|
"next-server": "192.0.2.123",
|
||||||
|
|
||||||
|
// List of global DHCP options that Kea DHCPv4 server assigns to the
|
||||||
|
// clients.
|
||||||
|
"option-data": [
|
||||||
|
{
|
||||||
|
// Boolean flag indicating if the given option is always
|
||||||
|
// send in response or only when requested. The default
|
||||||
|
// value of false indicates that it is only sent when
|
||||||
|
// requested.
|
||||||
|
"always-send": false,
|
||||||
|
|
||||||
|
// Option code. It is not required if the option name is
|
||||||
|
// provided.
|
||||||
|
"code": 6,
|
||||||
|
|
||||||
|
// Boolean value indicating whether the option data specified
|
||||||
|
// in the "data" field is specified as a string of hexadecimal
|
||||||
|
// digits or in human readable CSV format.
|
||||||
|
"csv-format": true,
|
||||||
|
|
||||||
|
// Option data to be stored in the option payload.
|
||||||
|
"data": "192.0.3.1, 192.0.3.2",
|
||||||
|
|
||||||
|
// Option name. It is not required of the option code is
|
||||||
|
// provided.
|
||||||
|
"name": "domain-name-servers",
|
||||||
|
|
||||||
|
// Option space. The default is the "dhcp4" option space which
|
||||||
|
// groups top level DHCPv4 options.
|
||||||
|
"space": "dhcp4"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of global option definitions, i.e. option formats, that the
|
||||||
|
// Kea DHCPv4 server is using.
|
||||||
|
"option-def": [
|
||||||
|
{
|
||||||
|
// Boolean flag indicating if the option definition comprises
|
||||||
|
// an array of values of some type, e.g. array of IPv4 addresses.
|
||||||
|
// The default value of false means that the option does not
|
||||||
|
// comprise an array of values.
|
||||||
|
"array": false,
|
||||||
|
|
||||||
|
// Option code.
|
||||||
|
"code": 6,
|
||||||
|
|
||||||
|
// Holds a name of the option space encapsulated by this option.
|
||||||
|
// All options that belong to this option space will be sent
|
||||||
|
// as sub-options of this option. Empty string means that this
|
||||||
|
// option doesn't encapsulate any option.
|
||||||
|
"encapsulate": "",
|
||||||
|
|
||||||
|
// Option name.
|
||||||
|
"name": "my-option",
|
||||||
|
|
||||||
|
// Specifies the types of fields within the option if the option
|
||||||
|
// is said to be a "record" (see "type"). in this particular example
|
||||||
|
// this option comprises two fields, 1 byte and 2 bytes long.
|
||||||
|
"record-types": "uint8, uint16",
|
||||||
|
|
||||||
|
// Name of the option space to which this option belongs.
|
||||||
|
"space": "my-space",
|
||||||
|
|
||||||
|
// Option type. All possible types are listed in the Kea
|
||||||
|
// Administrator Reference Manual.
|
||||||
|
"type": "record"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Global value for the rebind timer, i.e. the time after which the
|
||||||
|
// DHCP client enters rebind state if it fails to renew the lease.
|
||||||
|
"rebind-timer": 40,
|
||||||
|
|
||||||
|
// Global value for the renew timer, i.e. the timer after which the
|
||||||
|
// DHCP client renews the lease.
|
||||||
|
"renew-timer": 30,
|
||||||
|
|
||||||
|
// Governs how the Kea DHCPv4 server should deal with the invalid
|
||||||
|
// data received from the client.
|
||||||
|
"sanity-checks": {
|
||||||
|
// Specifies how the Kea DHCPv4 server should behave when invalid
|
||||||
|
// data is read for a lease from the lease file. The following
|
||||||
|
// values are supported "none" (don't attempt to correct the
|
||||||
|
// lease information), "warn" (print a warning for subnet-id
|
||||||
|
// related inconsistencies), "fix" (correct the subnet id by
|
||||||
|
// trying to find the suitable subnet), "fix-del" (similar
|
||||||
|
// to "fix" but delete the lease if no suitable subnet found),
|
||||||
|
// "del" (delete the lease if the lease has invalid subnet
|
||||||
|
// identifier value).
|
||||||
|
"lease-checks": "warn"
|
||||||
|
},
|
||||||
|
|
||||||
|
// List of shared networks used by Kea DHCPv4 server. The shared
|
||||||
|
// networks group subnets together.
|
||||||
|
"shared-networks": [
|
||||||
|
{
|
||||||
|
// Shared network level bootfile name.
|
||||||
|
"boot-file-name": "/dev/null",
|
||||||
|
|
||||||
|
// Restricts this shared network to allow only clients
|
||||||
|
// that belong to the particular client class. If an
|
||||||
|
// empty string is provided, no restriction is applied.
|
||||||
|
"client-class": "",
|
||||||
|
|
||||||
|
// Specifies that this shared network is selected for the
|
||||||
|
// requests received on the particular interface.
|
||||||
|
"interface": "ethX",
|
||||||
|
|
||||||
|
// Shared network level flag specifying whether the client
|
||||||
|
// identifier should be used for identifying clients.
|
||||||
|
"match-client-id": true,
|
||||||
|
|
||||||
|
// Shared network name.
|
||||||
|
"name": "my-secret-network",
|
||||||
|
|
||||||
|
// Shared network level specification of the next server
|
||||||
|
// to be sent in 'siaddr'.
|
||||||
|
"next-server": "192.0.2.123",
|
||||||
|
|
||||||
|
// List of shared network specific DHCP options.
|
||||||
|
"option-data": [],
|
||||||
|
|
||||||
|
// List of IPv4 relay addresses for which this shared
|
||||||
|
// network is selected.
|
||||||
|
"relay": {
|
||||||
|
"ip-addresses": []
|
||||||
|
},
|
||||||
|
|
||||||
|
// Shared network level rebind timer.
|
||||||
|
"rebind-timer": 41,
|
||||||
|
|
||||||
|
// Shared network level renew timer.
|
||||||
|
"renew-timer": 31,
|
||||||
|
|
||||||
|
// Enumeration specifying server's mode of operation when it
|
||||||
|
// fetches host reservations.
|
||||||
|
"reservation-mode": "all",
|
||||||
|
|
||||||
|
// List of client classes which must be evaluated when this shared
|
||||||
|
// network is selected for client assignments.
|
||||||
|
"require-client-classes": [ "late" ],
|
||||||
|
|
||||||
|
// Shared network level server hostname set in 'sname' field.
|
||||||
|
"server-hostname": "",
|
||||||
|
|
||||||
|
// List of IPv4 subnets belonging to this shared network.
|
||||||
|
"subnet4": [
|
||||||
|
{
|
||||||
|
// Interface name matched against inbound interface name.
|
||||||
|
// Used in DHCPv4o6. See RFC 7341.
|
||||||
|
"4o6-interface": "",
|
||||||
|
|
||||||
|
// Interface ID option value. See RFC 7341.
|
||||||
|
"4o6-interface-id": "",
|
||||||
|
|
||||||
|
// Prefix matched against source address. See RFC7341.
|
||||||
|
"4o6-subnet": "2001:db8:1:1::/64",
|
||||||
|
|
||||||
|
// Subnet level bootfile name, set in 'file' field.
|
||||||
|
"boot-file-name": "",
|
||||||
|
|
||||||
|
// Restricts this subnet to allow only clients that belong
|
||||||
|
// to the particular client class. If an empty string is
|
||||||
|
// provided, no restriction is applied.
|
||||||
|
"client-class": "",
|
||||||
|
|
||||||
|
// Subnet unique identifier.
|
||||||
|
"id": 1,
|
||||||
|
|
||||||
|
// Specifies that this subnet is selected for the requests
|
||||||
|
// received on the particular interface.
|
||||||
|
"interface": "ethX",
|
||||||
|
|
||||||
|
// Subnet level flag specifying whether the client identifier
|
||||||
|
// should be used for identifying clients.
|
||||||
|
"match-client-id": true,
|
||||||
|
|
||||||
|
// Subnet level specification of the next server to be sent
|
||||||
|
// in 'siaddr'.
|
||||||
|
"next-server": "0.0.0.0",
|
||||||
|
|
||||||
|
// Subnet level list of DHCP options.
|
||||||
|
"option-data": [
|
||||||
|
{
|
||||||
|
// Boolean flag indicating if the particular option
|
||||||
|
// should be always sent or sent only when requested.
|
||||||
|
"always-send": false,
|
||||||
|
|
||||||
|
// Option code.
|
||||||
|
"code": 3,
|
||||||
|
|
||||||
|
// Boolean flag indicating if the option value specified
|
||||||
|
// in "data" is a string of hexadecimal values or human
|
||||||
|
// readable CSV value.
|
||||||
|
"csv-format": true,
|
||||||
|
|
||||||
|
// Option data to be included in the option payload.
|
||||||
|
"data": "192.0.3.1",
|
||||||
|
|
||||||
|
// Option name.
|
||||||
|
"name": "routers",
|
||||||
|
|
||||||
|
// Option space. The default value "dhcp4" designates the
|
||||||
|
// top level option space.
|
||||||
|
"space": "dhcp4"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of IP address pools belonging to the subnet.
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
// Restricts this pool to be only used for the client
|
||||||
|
// requests belonging to a particular client class.
|
||||||
|
"client-class": "phones_server1",
|
||||||
|
|
||||||
|
// Pool level list of DHCP options.
|
||||||
|
"option-data": [],
|
||||||
|
|
||||||
|
// Address range used for client assignments.
|
||||||
|
"pool": "192.1.0.1 - 192.1.0.200",
|
||||||
|
|
||||||
|
// List of client classes which must be evaluated when this pool
|
||||||
|
// is selected for client assignments.
|
||||||
|
"require-client-classes": [ "late" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// Restricts this pool to be only used for the client
|
||||||
|
// requests belonging to a particular client class.
|
||||||
|
"client-class": "phones_server2",
|
||||||
|
|
||||||
|
// Pool level list of DHCP options.
|
||||||
|
"option-data": [],
|
||||||
|
|
||||||
|
// Address range used for client assignments.
|
||||||
|
"pool": "192.3.0.1 - 192.3.0.200",
|
||||||
|
|
||||||
|
// List of client classes which must be evaluated when this pool
|
||||||
|
// is selected for client assignments.
|
||||||
|
"require-client-classes": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Subnet level value of the rebind timer.
|
||||||
|
"rebind-timer": 40,
|
||||||
|
|
||||||
|
// List of IPv4 relay addresses for which this subnet is
|
||||||
|
// selected.
|
||||||
|
"relay": {
|
||||||
|
"ip-addresses": [
|
||||||
|
"192.168.56.1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
// Subnet level value of the renew timer.
|
||||||
|
"renew-timer": 30,
|
||||||
|
|
||||||
|
// Enumeration specifying server's mode of operation when it
|
||||||
|
// fetches host reservations.
|
||||||
|
"reservation-mode": "all",
|
||||||
|
|
||||||
|
// List of static IPv4 reservations assigned to the clients belonging
|
||||||
|
// to this subnet. For detailed example see reservations.json.
|
||||||
|
"reservations": [
|
||||||
|
{
|
||||||
|
// Identifier used for client matching. Supported values are
|
||||||
|
// "hw-address", "client-id", "duid", "circuit-id", "flex-id".
|
||||||
|
"circuit-id": "01:11:22:33:44:55:66",
|
||||||
|
|
||||||
|
// Reserved IP address.
|
||||||
|
"ip-address": "192.0.2.204",
|
||||||
|
|
||||||
|
// Reservation specific option data.
|
||||||
|
"option-data": [
|
||||||
|
{
|
||||||
|
// Option name.
|
||||||
|
"name": "vivso-suboptions",
|
||||||
|
|
||||||
|
// Option data.
|
||||||
|
"data": "4491"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of client classes which must be evaluated when this subnet
|
||||||
|
// is selected for client assignments.
|
||||||
|
"require-client-classes": [ "late" ],
|
||||||
|
|
||||||
|
// Subnet level server hostname set in 'sname' field.
|
||||||
|
"server-hostname": "",
|
||||||
|
|
||||||
|
// Subnet prefix.
|
||||||
|
"subnet": "192.0.0.0/8",
|
||||||
|
|
||||||
|
// Subnet level valid lifetime.
|
||||||
|
"valid-lifetime": 6000
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Shared network level valid lifetime.
|
||||||
|
"valid-lifetime": 6001
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Global server hostname set in the 'sname' field.
|
||||||
|
"server-hostname": "",
|
||||||
|
|
||||||
|
// List of IPv4 subnets which don't belong to any shared network.
|
||||||
|
"subnet4": [],
|
||||||
|
|
||||||
|
// Global valid lifetime value.
|
||||||
|
"valid-lifetime": 6000,
|
||||||
|
|
||||||
|
// Reservations (examples are in other files).
|
||||||
|
"reservations": [],
|
||||||
|
|
||||||
|
// Configuration control (currently not used, i.e. this syntax
|
||||||
|
// is already defined but corresponding feature is not implemented).
|
||||||
|
"config-control":
|
||||||
|
{
|
||||||
|
// Only configuration databases entry is defined.
|
||||||
|
"config-databases": [
|
||||||
|
{
|
||||||
|
// Name of the database to connect to.
|
||||||
|
"name": "config",
|
||||||
|
|
||||||
|
// Type of the database, e.g. "mysql", "pgsql", "cql".
|
||||||
|
"type": "mysql"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
// Server tag.
|
||||||
|
"server-tag": "my DHCPv4 server",
|
||||||
|
|
||||||
|
// DHCP queue control parameters.
|
||||||
|
"dhcp-queue-control":
|
||||||
|
{
|
||||||
|
// Enable queue is mandatory.
|
||||||
|
"enable-queue": true,
|
||||||
|
|
||||||
|
// Queue type was mandatory.
|
||||||
|
"queue-type": "kea-ring4"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Fetches host reservations.
|
||||||
|
"reservation-mode": "all",
|
||||||
|
|
||||||
|
// Compute T1 and T2 timers.
|
||||||
|
"calculate-tee-times": true,
|
||||||
|
|
||||||
|
// T1 = valid lifetime * .5.
|
||||||
|
"t1-percent": .5,
|
||||||
|
|
||||||
|
// T2 = valid lifetime * .75.
|
||||||
|
"t2-percent": .75
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
// Logging configuration begins here.
|
||||||
|
"Logging": {
|
||||||
|
|
||||||
|
// List of loggers used by the servers using this configuration file.
|
||||||
|
"loggers": [
|
||||||
|
{
|
||||||
|
// Debug level, a value between 0..99. The greater the value
|
||||||
|
// the more detailed debug log.
|
||||||
|
"debuglevel": 99,
|
||||||
|
|
||||||
|
// Name of the logger.
|
||||||
|
"name": "kea-dhcp4",
|
||||||
|
|
||||||
|
// Configures how the log should be output.
|
||||||
|
"output_options": [
|
||||||
|
{
|
||||||
|
// Determines whether the log should flushed to a file.
|
||||||
|
"flush": true,
|
||||||
|
|
||||||
|
// Specifies maximum filesize before the file is being rotated.
|
||||||
|
"maxsize": 10240000,
|
||||||
|
|
||||||
|
// Specifies the maximum number of rotated files being kept.
|
||||||
|
"maxver": 1,
|
||||||
|
|
||||||
|
// Specifies logging destination.
|
||||||
|
"output": "stdout"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Specifies logging severity, i.e. "ERROR", "WARN", "INFO", "DEBUG".
|
||||||
|
"severity": "INFO"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@@ -5,6 +5,9 @@
|
|||||||
// The primary purpose of the example file is to provide a comprehensive
|
// The primary purpose of the example file is to provide a comprehensive
|
||||||
// list of parameters supported by Kea DHCPv4 server along with the brief
|
// list of parameters supported by Kea DHCPv4 server along with the brief
|
||||||
// description of each parameter.
|
// description of each parameter.
|
||||||
|
//
|
||||||
|
// This stable version is used for YANG as we do not want to update code
|
||||||
|
// and models each time a keyword is added to the syntax.
|
||||||
{
|
{
|
||||||
// Kea DHCPv4 server configuration begins here.
|
// Kea DHCPv4 server configuration begins here.
|
||||||
"Dhcp4": {
|
"Dhcp4": {
|
697
doc/examples/kea6/all-keys-current.json
Normal file
697
doc/examples/kea6/all-keys-current.json
Normal file
@@ -0,0 +1,697 @@
|
|||||||
|
// WARNING: This example configuration is not meant for production use.
|
||||||
|
// The Kea DHCPv6 server will refuse this configuration because it contains
|
||||||
|
// mutually exclusive configuration parameters.
|
||||||
|
//
|
||||||
|
// The primary purpose of the example file is to provide a comprehensive
|
||||||
|
// list of parameters supported by Kea DHCPv6 server along with the brief
|
||||||
|
// description of each parameter.
|
||||||
|
//
|
||||||
|
// This current version should be up to date, i.e. new keywords should be
|
||||||
|
// added in this file at the same time than in the syntax.
|
||||||
|
{
|
||||||
|
// Kea DHCPv6 server configuration begins here.
|
||||||
|
"Dhcp6": {
|
||||||
|
// Ordered list of client classes used by the DHCPv6 server.
|
||||||
|
"client-classes": [
|
||||||
|
{
|
||||||
|
// Class name.
|
||||||
|
"name": "phones_server1",
|
||||||
|
|
||||||
|
// Class specific DHCPv6 options list.
|
||||||
|
"option-data": [],
|
||||||
|
|
||||||
|
// Class selection expression. The DHCP packet is assigned to this
|
||||||
|
// class when the given expression evaluates to true.
|
||||||
|
"test": "member('HA_server1')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// Second class name.
|
||||||
|
"name": "phones_server2",
|
||||||
|
|
||||||
|
// Class specific DHCPv6 options list.
|
||||||
|
"option-data": [],
|
||||||
|
|
||||||
|
// Class selection expression. The DHCP packet is assigned to this
|
||||||
|
// class when the given expression evaluates to true.
|
||||||
|
"test": "member('HA_server2')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// Third class name.
|
||||||
|
"name": "late",
|
||||||
|
|
||||||
|
// Boolean flag indicating that the class expression is only evaluated
|
||||||
|
// when the class is required, e.g. selected address pool configuration
|
||||||
|
// includes this class name in its "require-client-classes" list. The
|
||||||
|
// default value false means that the class test expression must
|
||||||
|
// always be evaluated.
|
||||||
|
"only-if-required": true,
|
||||||
|
|
||||||
|
// Class selection expression.
|
||||||
|
"test": "member('ALL')"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Command control socket configuration parameters for Kea DHCPv6 server.
|
||||||
|
"control-socket": {
|
||||||
|
// Location of the unix domain socket file the DHCPv6 server uses
|
||||||
|
// to receive control commands from the Kea Control Agent or the
|
||||||
|
// local server administrator.
|
||||||
|
"socket-name": "/tmp/kea-dhcp6-ctrl.sock",
|
||||||
|
|
||||||
|
// Control socket type used by the Kea DHCPv6 server. The 'unix'
|
||||||
|
// socket is currently the only supported type.
|
||||||
|
"socket-type": "unix"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Time in seconds specifying how long a declined lease should be
|
||||||
|
// excluded from DHCP assignments. The default value is 24 hours.
|
||||||
|
"decline-probation-period": 86400,
|
||||||
|
|
||||||
|
// Name Change Requests forwarding configuration for Kea DHCPv6 server.
|
||||||
|
// NCRs are sent to Kea D2 module to update DNS upon allocation of the
|
||||||
|
// DHCP leases.
|
||||||
|
"dhcp-ddns": {
|
||||||
|
// Boolean flag indicating if Kea DHCPv6 server must generate NCRs.
|
||||||
|
// By default NCRs are not generated.
|
||||||
|
"enable-updates": false,
|
||||||
|
|
||||||
|
// Specifies a prefix to be prepended to the generated Client FQDN.
|
||||||
|
"generated-prefix": "myhost",
|
||||||
|
|
||||||
|
// String of zero or more characters with which to replace each
|
||||||
|
// invalid character in the hostname or Client FQDN. The default
|
||||||
|
// value is an empty string which will cause invalid characters
|
||||||
|
// to be omitted rather than replaced.
|
||||||
|
"hostname-char-replacement": "x",
|
||||||
|
|
||||||
|
// Regular expression describing the invalid character set in
|
||||||
|
// the hostname or Client FQDN.
|
||||||
|
"hostname-char-set": "[^A-Za-z0-9.-]",
|
||||||
|
|
||||||
|
// Specifies maximum number of NCRs to queue waiting to be sent
|
||||||
|
// to Kea D2 server.
|
||||||
|
"max-queue-size": 1024,
|
||||||
|
|
||||||
|
// Packet format to use when sending NCRs to Kea D2 server.
|
||||||
|
// Currently, only JSON format is supported.
|
||||||
|
"ncr-format": "JSON",
|
||||||
|
|
||||||
|
// Socket protocol to use when sending NCRs to D2. Currently,
|
||||||
|
// only UDP is supported.
|
||||||
|
"ncr-protocol": "UDP",
|
||||||
|
|
||||||
|
// Boolean flag indicating that server should ignore DHCP client
|
||||||
|
// wishes to update DNS on its own. With that flag set to true
|
||||||
|
// the server will send DNS updates for both forward and
|
||||||
|
// reverse DNS data. The default value is false, which indicates
|
||||||
|
// that the server will delegate DNS update to the client when
|
||||||
|
// requested.
|
||||||
|
"override-client-update": false,
|
||||||
|
|
||||||
|
// Boolean flag indicating that the server should override DHCP
|
||||||
|
// client's wish to not update the DNS. With this parameter
|
||||||
|
// set to true the server will send DNS update even when
|
||||||
|
// the client requested no update.
|
||||||
|
"override-no-update": false,
|
||||||
|
|
||||||
|
// Suffix appended to the partial name sent to the DNS. The
|
||||||
|
// default value is an empty string which indicates that no
|
||||||
|
// suffix is appended.
|
||||||
|
"qualifying-suffix": "",
|
||||||
|
|
||||||
|
// Enumeration specifying whether the server should honor
|
||||||
|
// hostname or Client FQDN sent by the client or replace
|
||||||
|
// this name. The acceptable values are: "never" (use the
|
||||||
|
// name the client sent), "always" (replace the name the
|
||||||
|
// client sent), "when-present" (replace the name the client
|
||||||
|
// sent, but do not generate one when the client didn't sent
|
||||||
|
// the name), "when-not-present" (generate the name when
|
||||||
|
// client didn't send one, otherwise leave the name the
|
||||||
|
// client sent). The default value is "never".
|
||||||
|
"replace-client-name": "never",
|
||||||
|
|
||||||
|
// IP address that Kea DHCPv6 server should use to send
|
||||||
|
// NCRs to D2. Default value of zero indicates that Kea
|
||||||
|
// should pick suitable address.
|
||||||
|
"sender-ip": "::1",
|
||||||
|
|
||||||
|
// Port number that Kea DHCPv6 server should use to send
|
||||||
|
// NCRs to D2. Default value of zero indicates that Kea
|
||||||
|
// should pick suitable port.
|
||||||
|
"sender-port": 0,
|
||||||
|
|
||||||
|
// IP address on which D2 listens for NCRs.
|
||||||
|
"server-ip": "::1",
|
||||||
|
|
||||||
|
// Port number on which D2 listens for NCRs.
|
||||||
|
"server-port": 53001
|
||||||
|
},
|
||||||
|
|
||||||
|
// Specifies the first of the two consecutive ports of the UDP
|
||||||
|
// sockets used for communication between DHCPv6 and DHCPv4
|
||||||
|
// servers. See RFC 7341.
|
||||||
|
"dhcp4o6-port": 0,
|
||||||
|
|
||||||
|
// Collection of Kea DHCPv6 server parameters configuring how
|
||||||
|
// the server should process expired DHCP leases.
|
||||||
|
"expired-leases-processing": {
|
||||||
|
// Specifies the number of seconds since last removal of
|
||||||
|
// the expired leases when next removal should occur.
|
||||||
|
"flush-reclaimed-timer-wait-time": 25,
|
||||||
|
|
||||||
|
// Specifies the time period in seconds to keep expired
|
||||||
|
// leases in the lease database (lease affinity).
|
||||||
|
"hold-reclaimed-time": 3600,
|
||||||
|
|
||||||
|
// Specifies the maximum number of expired leases that can be
|
||||||
|
// processed in a single attempt to clean up the lease
|
||||||
|
// database from the expired leases. If there are more
|
||||||
|
// expired leases, they will be processed during the next
|
||||||
|
// cleanup attempt.
|
||||||
|
"max-reclaim-leases": 100,
|
||||||
|
|
||||||
|
// Specifies the maximum time in milliseconds that the single
|
||||||
|
// attempt to cleanup the lease database from the expired
|
||||||
|
// leases may take.
|
||||||
|
"max-reclaim-time": 250,
|
||||||
|
|
||||||
|
// Specifies the time period in seconds since last attempt
|
||||||
|
// to process expired leases to initiate the next attempt.
|
||||||
|
"reclaim-timer-wait-time": 10,
|
||||||
|
|
||||||
|
// Specifies the maximum number of expired leases processing
|
||||||
|
// cycles which didn't result in full cleanup of the lease
|
||||||
|
// database from the expired leases, after which a
|
||||||
|
// warning message is issued.
|
||||||
|
"unwarned-reclaim-cycles": 5
|
||||||
|
},
|
||||||
|
|
||||||
|
// List of hooks libraries and their specific configuration parameters
|
||||||
|
// to be loaded by Kea DHCPv4 server.
|
||||||
|
"hooks-libraries": [
|
||||||
|
{
|
||||||
|
// Location of the hooks library to be loaded.
|
||||||
|
"library": "/opt/lib/hooks/libdhcp_lease_cmds.so",
|
||||||
|
|
||||||
|
// Hook library specific configuration parameters.
|
||||||
|
"parameters": { }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of access credentials to external sources of IPv6 reservations,
|
||||||
|
"hosts-databases": [
|
||||||
|
{
|
||||||
|
// Name of the database to connect to.
|
||||||
|
"name": "kea",
|
||||||
|
|
||||||
|
// Host on which the database resides.
|
||||||
|
"host": "localhost",
|
||||||
|
|
||||||
|
// Database password.
|
||||||
|
"password": "kea",
|
||||||
|
|
||||||
|
// Port on which the database is available.
|
||||||
|
"port": 3306,
|
||||||
|
|
||||||
|
// Type of the database, e.g. "mysql", "pgsql", "cql".
|
||||||
|
"type": "mysql",
|
||||||
|
|
||||||
|
// User name to be used to access the database.
|
||||||
|
"user": "kea"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of host reservation identifier types to be used by the
|
||||||
|
// Kea DHCPv6 server to fetch static reservations for the
|
||||||
|
// DHCP clients. All identifiers are used by default, which
|
||||||
|
// means that the server will issue multiple queries to the
|
||||||
|
// database to find if there is a reservation for the particular
|
||||||
|
// client. If the particular deployment uses only subset, e.g.
|
||||||
|
// one, identifier type, this identifier should be only listed
|
||||||
|
// here to prevent unnecessary queries to the database.
|
||||||
|
"host-reservation-identifiers": [
|
||||||
|
"hw-address",
|
||||||
|
"duid",
|
||||||
|
"flex-id"
|
||||||
|
],
|
||||||
|
|
||||||
|
// Specifies configuration of interfaces on which the Kea DHCPv6
|
||||||
|
// server is listening to the DHCP queries.
|
||||||
|
"interfaces-config": {
|
||||||
|
// Specifies a list of interfaces on which the Kea DHCPv6
|
||||||
|
// server should listen to the DHCP requests.
|
||||||
|
"interfaces": [
|
||||||
|
"ethX"
|
||||||
|
],
|
||||||
|
|
||||||
|
// Boolean flag indicating if the available interfaces should
|
||||||
|
// be re-detected upon server reconfiguration. The default value
|
||||||
|
// is true which means that the interfaces are always
|
||||||
|
// re-detected.
|
||||||
|
"re-detect": true
|
||||||
|
},
|
||||||
|
|
||||||
|
// Specifies credentials to access lease database.
|
||||||
|
"lease-database": {
|
||||||
|
// memfile backend specific parameter specifying the interval
|
||||||
|
// in seconds at which lease file should be cleaned up (outdated
|
||||||
|
// lease entries are removed to prevent lease file from growing
|
||||||
|
// infinitely).
|
||||||
|
"lfc-interval": 3600,
|
||||||
|
|
||||||
|
// Name of the lease file. In case of database it specifies the
|
||||||
|
// database name.
|
||||||
|
"name": "/tmp/kea-dhcp6.csv",
|
||||||
|
|
||||||
|
// memfile specific parameter indicating whether leases should
|
||||||
|
// be saved on persistent storage (disk) or not. The true value
|
||||||
|
// is the default and it indicates that leases are stored in the
|
||||||
|
// persistent storage. This setting must be used in production.
|
||||||
|
// The false value should only be used for testing purposes
|
||||||
|
// because non stored leases will be lost upon Kea server restart.
|
||||||
|
"persist": true,
|
||||||
|
|
||||||
|
// Lease database backend type, i.e. "memfile", "mysql", "pgsql"
|
||||||
|
// or "cql".
|
||||||
|
"type": "memfile"
|
||||||
|
},
|
||||||
|
|
||||||
|
// List of parameters indicating how the client's MAC address can be
|
||||||
|
// inferred from the DHCP query. Supported values are listed in the
|
||||||
|
// Kea Administrator Reference Manual.
|
||||||
|
"mac-sources": [ "duid" ],
|
||||||
|
|
||||||
|
// List of global DHCP options that Kea DHCPv6 server assigns to the
|
||||||
|
// clients.
|
||||||
|
"option-data": [
|
||||||
|
{
|
||||||
|
// Boolean flag indicating if the given option is always
|
||||||
|
// send in response or only when requested. The default
|
||||||
|
// value of false indicates that it is only sent when
|
||||||
|
// requested.
|
||||||
|
"always-send": false,
|
||||||
|
|
||||||
|
// Option code. It is not required if the option name is
|
||||||
|
// provided.
|
||||||
|
"code": 23,
|
||||||
|
|
||||||
|
// Boolean value indicating whether the option data specified
|
||||||
|
// in the "data" field is specified as a string of hexadecimal
|
||||||
|
// digits or in human readable CSV format.
|
||||||
|
"csv-format": true,
|
||||||
|
|
||||||
|
// Option data to be stored in the option payload.
|
||||||
|
"data": "2001:db8:2::45, 2001:db8:2::100",
|
||||||
|
|
||||||
|
// Option name. It is not required of the option code is
|
||||||
|
// provided.
|
||||||
|
"name": "dns-servers",
|
||||||
|
|
||||||
|
// Option space. The default is the "dhcp6" option space which
|
||||||
|
// groups top level DHCPv6 options.
|
||||||
|
"space": "dhcp6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of global option definitions, i.e. option formats, that the
|
||||||
|
// Kea DHCPv6 server is using.
|
||||||
|
"option-def": [
|
||||||
|
{
|
||||||
|
// Boolean flag indicating if the option definition comprises
|
||||||
|
// an array of values of some type, e.g. array of IPv6 addresses.
|
||||||
|
// The default value of false means that the option does not
|
||||||
|
// comprise an array of values.
|
||||||
|
"array": false,
|
||||||
|
|
||||||
|
// Option code.
|
||||||
|
"code": 6,
|
||||||
|
|
||||||
|
// Holds a name of the option space encapsulated by this option.
|
||||||
|
// All options that belong to this option space will be sent
|
||||||
|
// as sub-options of this option. Empty string means that this
|
||||||
|
// option doesn't encapsulate any option.
|
||||||
|
"encapsulate": "",
|
||||||
|
|
||||||
|
// Option name.
|
||||||
|
"name": "my-option",
|
||||||
|
|
||||||
|
// Specifies the types of fields within the option if the option
|
||||||
|
// is said to be a "record" (see "type"). in this particular example
|
||||||
|
// this option comprises two fields, 1 byte and 2 bytes long.
|
||||||
|
"record-types": "uint8, uint16",
|
||||||
|
|
||||||
|
// Name of the option space to which this option belongs.
|
||||||
|
"space": "my-space",
|
||||||
|
|
||||||
|
// Option type. All possible types are listed in the Kea
|
||||||
|
// Administrator Reference Manual.
|
||||||
|
"type": "record"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Global value of the preferred lifetime.
|
||||||
|
"preferred-lifetime": 50,
|
||||||
|
|
||||||
|
// Global value for the rebind timer, i.e. the time after which the
|
||||||
|
// DHCP client enters rebind state if it fails to renew the lease.
|
||||||
|
"rebind-timer": 40,
|
||||||
|
|
||||||
|
// List of relay supplied option codes. See RFC 6422.
|
||||||
|
"relay-supplied-options": [ "110", "120", "130" ],
|
||||||
|
|
||||||
|
// Global value for the renew timer, i.e. the timer after which the
|
||||||
|
// DHCP client renews the lease.
|
||||||
|
"renew-timer": 30,
|
||||||
|
|
||||||
|
// Governs how the Kea DHCPv6 server should deal with the invalid
|
||||||
|
// data received from the client.
|
||||||
|
"sanity-checks": {
|
||||||
|
// Specifies how the Kea DHCPv6 server should behave when invalid
|
||||||
|
// data is read for a lease from the lease file. The following
|
||||||
|
// values are supported "none" (don't attempt to correct the
|
||||||
|
// lease information), "warn" (print a warning for subnet-id
|
||||||
|
// related inconsistencies), "fix" (correct the subnet id by
|
||||||
|
// trying to find the suitable subnet), "fix-del" (similar
|
||||||
|
// to "fix" but delete the lease if no suitable subnet found),
|
||||||
|
// "del" (delete the lease if the lease has invalid subnet
|
||||||
|
// identifier value).
|
||||||
|
"lease-checks": "warn"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Custom DUID used by the DHCPv6 server.
|
||||||
|
"server-id": {
|
||||||
|
// Type of the DUID. Possible values are "LLT", "EN", and "LL".
|
||||||
|
"type": "EN",
|
||||||
|
|
||||||
|
// Enterprise id used for "EN" duid.
|
||||||
|
"enterprise-id": 2495,
|
||||||
|
|
||||||
|
// Identifier part of the DUID.
|
||||||
|
"identifier": "0123456789",
|
||||||
|
|
||||||
|
// Boolean flag indicating if the DUID should be persisted on
|
||||||
|
// disk.
|
||||||
|
"persist": false
|
||||||
|
},
|
||||||
|
|
||||||
|
// List of shared networks used by Kea DHCPv6 server. The shared
|
||||||
|
// networks group subnets together.
|
||||||
|
"shared-networks": [
|
||||||
|
{
|
||||||
|
// Restricts this shared network to allow only clients
|
||||||
|
// that belong to the particular client class. If an
|
||||||
|
// empty string is provided, no restriction is applied.
|
||||||
|
"client-class": "",
|
||||||
|
|
||||||
|
// Specifies that this shared network is selected for the
|
||||||
|
// requests received on the particular interface.
|
||||||
|
"interface": "ethX",
|
||||||
|
|
||||||
|
// Specifies the content of the interface-id option used
|
||||||
|
// by relays to identify the interface on the relay to
|
||||||
|
// which the response is sent.
|
||||||
|
"interface-id": "",
|
||||||
|
|
||||||
|
// Shared network name.
|
||||||
|
"name": "my-secret-network",
|
||||||
|
|
||||||
|
// List of shared network specific DHCP options.
|
||||||
|
"option-data": [],
|
||||||
|
|
||||||
|
// Shared network specific preferred lifetime.
|
||||||
|
"preferred-lifetime": 2000,
|
||||||
|
|
||||||
|
// Boolen flag indicating if the server can respond to
|
||||||
|
// a Solicit message including a Rapid Commit option with
|
||||||
|
// the Reply message (See DHCPv6 rapid commit).
|
||||||
|
"rapid-commit": false,
|
||||||
|
|
||||||
|
// List of IPv6 relay addresses for which this shared
|
||||||
|
// network is selected.
|
||||||
|
"relay": {
|
||||||
|
"ip-addresses": []
|
||||||
|
},
|
||||||
|
|
||||||
|
// Shared network level rebind timer.
|
||||||
|
"rebind-timer": 41,
|
||||||
|
|
||||||
|
// Shared network level renew timer.
|
||||||
|
"renew-timer": 31,
|
||||||
|
|
||||||
|
// Enumeration specifying server's mode of operation when it
|
||||||
|
// fetches host reservations.
|
||||||
|
"reservation-mode": "all",
|
||||||
|
|
||||||
|
// List of client classes which must be evaluated when this shared
|
||||||
|
// network is selected for client assignments.
|
||||||
|
"require-client-classes": [ "late" ],
|
||||||
|
|
||||||
|
// List of IPv6 subnets belonging to this shared network.
|
||||||
|
"subnet6": [
|
||||||
|
{
|
||||||
|
// Restricts this subnet to allow only clients that belong
|
||||||
|
// to the particular client class. If an empty string is
|
||||||
|
// provided, no restriction is applied.
|
||||||
|
"client-class": "",
|
||||||
|
|
||||||
|
// Subnet unique identifier.
|
||||||
|
"id": 1,
|
||||||
|
|
||||||
|
// Specifies that this subnet is selected for the requests
|
||||||
|
// received on the particular interface.
|
||||||
|
"interface": "ethX",
|
||||||
|
|
||||||
|
// Specifies the content of the interface-id option used
|
||||||
|
// by relays to identify the interface on the relay to
|
||||||
|
// which the response is sent.
|
||||||
|
"interface-id": "",
|
||||||
|
|
||||||
|
// Subnet level list of DHCP options.
|
||||||
|
"option-data": [
|
||||||
|
{
|
||||||
|
// Boolean flag indicating if the particular option
|
||||||
|
// should be always sent or sent only when requested.
|
||||||
|
"always-send": false,
|
||||||
|
|
||||||
|
// Option code.
|
||||||
|
"code": 7,
|
||||||
|
|
||||||
|
// Boolean flag indicating if the option value specified
|
||||||
|
// in "data" is a string of hexadecimal values or human
|
||||||
|
// readable CSV value.
|
||||||
|
"csv-format": false,
|
||||||
|
|
||||||
|
// Option data to be included in the option payload.
|
||||||
|
"data": "0xf0",
|
||||||
|
|
||||||
|
// Option name.
|
||||||
|
"name": "preference",
|
||||||
|
|
||||||
|
// Option space. The default value "dhcp6" designates the
|
||||||
|
// top level option space.
|
||||||
|
"space": "dhcp6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of pools from which delegated prefixes are assigned to the
|
||||||
|
// clients.
|
||||||
|
"pd-pools": [
|
||||||
|
{
|
||||||
|
"client-class": "phones_server1",
|
||||||
|
"delegated-len": 64,
|
||||||
|
"excluded-prefix": "2001:db8::",
|
||||||
|
"excluded-prefix-len": 48,
|
||||||
|
"option-data": [],
|
||||||
|
"prefix": "2001:db8::",
|
||||||
|
"prefix-len": 40,
|
||||||
|
"require-client-classes": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
// Restricts this pool to be only used for the client
|
||||||
|
// requests belonging to a particular client class.
|
||||||
|
"client-class": "phones_server1",
|
||||||
|
|
||||||
|
// Pool level list of DHCP options.
|
||||||
|
"option-data": [],
|
||||||
|
|
||||||
|
// Address range used for client assignments.
|
||||||
|
"pool": "2001:db8:0:1::/64",
|
||||||
|
|
||||||
|
// List of client classes which must be evaluated when this pool
|
||||||
|
// is selected for client assignments.
|
||||||
|
"require-client-classes": [ "late" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// Restricts this pool to be only used for the client
|
||||||
|
// requests belonging to a particular client class.
|
||||||
|
"client-class": "phones_server2",
|
||||||
|
|
||||||
|
// Pool level list of DHCP options.
|
||||||
|
"option-data": [],
|
||||||
|
|
||||||
|
// Address range used for client assignments.
|
||||||
|
"pool": "2001:db8:0:3::/64",
|
||||||
|
|
||||||
|
// List of client classes which must be evaluated when this pool
|
||||||
|
// is selected for client assignments.
|
||||||
|
"require-client-classes": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Subnet specific preferred lifetime.
|
||||||
|
"preferred-lifetime": 2000,
|
||||||
|
|
||||||
|
// Boolen flag indicating if the server can respond to
|
||||||
|
// a Solicit message including a Rapid Commit option with
|
||||||
|
// the Reply message (See DHCPv6 rapid commit).
|
||||||
|
"rapid-commit": false,
|
||||||
|
|
||||||
|
// Subnet level rebind timer.
|
||||||
|
"rebind-timer": 40,
|
||||||
|
|
||||||
|
// List of IPv4 relay addresses for which this subnet
|
||||||
|
// is selected.
|
||||||
|
"relay": {
|
||||||
|
"ip-addresses": [
|
||||||
|
"2001:db8:0:f::1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
// Subnet level renew timer.
|
||||||
|
"renew-timer": 30,
|
||||||
|
|
||||||
|
// Enumeration specifying server's mode of operation when it
|
||||||
|
// fetches host reservations.
|
||||||
|
"reservation-mode": "all",
|
||||||
|
|
||||||
|
// List of static IPv6 reservations assigned to the clients belonging
|
||||||
|
// to this subnet. For detailed example see reservations.json.
|
||||||
|
"reservations": [
|
||||||
|
{
|
||||||
|
// Identifier used for client matching. Supported values are
|
||||||
|
// "duid", "hw-address" and "flex-id".
|
||||||
|
"duid": "01:02:03:04:05:06:07:08:09:0A",
|
||||||
|
|
||||||
|
// List of reserved IPv6 addresses.
|
||||||
|
"ip-addresses": [ "2001:db8:1:cafe::1" ],
|
||||||
|
|
||||||
|
// List of reserved IPv6 prefixes.
|
||||||
|
"prefixes": [ "2001:db8:2:abcd::/64" ],
|
||||||
|
|
||||||
|
// Reserved hostname.
|
||||||
|
"hostname": "foo.example.com",
|
||||||
|
|
||||||
|
// Reservation specific option data.
|
||||||
|
"option-data": [
|
||||||
|
{
|
||||||
|
// Option name.
|
||||||
|
"name": "vendor-opts",
|
||||||
|
|
||||||
|
// Option value.
|
||||||
|
"data": "4491"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of client classes which must be evaluated when this subnet
|
||||||
|
// is selected for client assignments.
|
||||||
|
"require-client-classes": [ "late" ],
|
||||||
|
|
||||||
|
// Subnet prefix.
|
||||||
|
"subnet": "2001:db8::/32",
|
||||||
|
|
||||||
|
// Subnet level valid lifetime.
|
||||||
|
"valid-lifetime": 6000
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Shared network level valid lifetime.
|
||||||
|
"valid-lifetime": 6001
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of IPv6 subnets which don't belong to any shared network.
|
||||||
|
"subnet6": [],
|
||||||
|
|
||||||
|
// Global valid lifetime value.
|
||||||
|
"valid-lifetime": 6000,
|
||||||
|
|
||||||
|
// Reservations (examples are in other files).
|
||||||
|
"reservations": [],
|
||||||
|
|
||||||
|
// Configuration control (currently not used, i.e. this syntax
|
||||||
|
// is already defined but corresponding feature is not implemented).
|
||||||
|
"config-control":
|
||||||
|
{
|
||||||
|
// Only configuration databases entry is defined.
|
||||||
|
"config-databases": [
|
||||||
|
{
|
||||||
|
// Name of the database to connect to.
|
||||||
|
"name": "config",
|
||||||
|
|
||||||
|
// Type of the database, e.g. "mysql", "pgsql", "cql".
|
||||||
|
"type": "mysql"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
// Server tag.
|
||||||
|
"server-tag": "my DHCPv6 server",
|
||||||
|
|
||||||
|
// DHCP queue control parameters.
|
||||||
|
"dhcp-queue-control":
|
||||||
|
{
|
||||||
|
// Enable queue is mandatory.
|
||||||
|
"enable-queue": true,
|
||||||
|
|
||||||
|
// Queue type was mandatory.
|
||||||
|
"queue-type": "kea-ring6"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Fetches host reservations.
|
||||||
|
"reservation-mode": "all",
|
||||||
|
|
||||||
|
// Data directory.
|
||||||
|
"data-directory": "/tmp"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Logging configuration begins here.
|
||||||
|
"Logging": {
|
||||||
|
|
||||||
|
// List of loggers used by the servers using this configuration file.
|
||||||
|
"loggers": [
|
||||||
|
{
|
||||||
|
// Debug level, a value between 0..99. The greater the value
|
||||||
|
// the more detailed debug log.
|
||||||
|
"debuglevel": 99,
|
||||||
|
|
||||||
|
// Name of the logger.
|
||||||
|
"name": "kea-dhcp6",
|
||||||
|
|
||||||
|
// Configures how the log should be output.
|
||||||
|
"output_options": [
|
||||||
|
{
|
||||||
|
// Determines whether the log should flushed to a file.
|
||||||
|
"flush": true,
|
||||||
|
|
||||||
|
// Specifies maximum filesize before the file is being rotated.
|
||||||
|
"maxsize": 10240000,
|
||||||
|
|
||||||
|
// Specifies the maximum number of rotated files being kept.
|
||||||
|
"maxver": 1,
|
||||||
|
|
||||||
|
// Specifies logging destination.
|
||||||
|
"output": "stdout"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// Specifies logging severity, i.e. "ERROR", "WARN", "INFO", "DEBUG".
|
||||||
|
"severity": "INFO"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@@ -5,6 +5,9 @@
|
|||||||
// The primary purpose of the example file is to provide a comprehensive
|
// The primary purpose of the example file is to provide a comprehensive
|
||||||
// list of parameters supported by Kea DHCPv6 server along with the brief
|
// list of parameters supported by Kea DHCPv6 server along with the brief
|
||||||
// description of each parameter.
|
// description of each parameter.
|
||||||
|
//
|
||||||
|
// This stable version is used for YANG as we do not want to update code
|
||||||
|
// and models each time a keyword is added to the syntax.
|
||||||
{
|
{
|
||||||
// Kea DHCPv6 server configuration begins here.
|
// Kea DHCPv6 server configuration begins here.
|
||||||
"Dhcp6": {
|
"Dhcp6": {
|
||||||
@@ -645,7 +648,6 @@
|
|||||||
// Queue type was mandatory.
|
// Queue type was mandatory.
|
||||||
"queue-type": "kea-ring6"
|
"queue-type": "kea-ring6"
|
||||||
}
|
}
|
||||||
// missing data-directory
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Logging configuration begins here.
|
// Logging configuration begins here.
|
@@ -264,7 +264,7 @@ void testFile(const std::string& fname) {
|
|||||||
// the second time with Parser4. Both JSON trees are then compared.
|
// the second time with Parser4. Both JSON trees are then compared.
|
||||||
TEST(ParserTest, file) {
|
TEST(ParserTest, file) {
|
||||||
vector<string> configs = { "advanced.json" ,
|
vector<string> configs = { "advanced.json" ,
|
||||||
"all-keys.json",
|
"all-keys-current.json",
|
||||||
"backends.json",
|
"backends.json",
|
||||||
"cassandra.json",
|
"cassandra.json",
|
||||||
"classify.json",
|
"classify.json",
|
||||||
|
@@ -270,7 +270,7 @@ void testFile(const std::string& fname) {
|
|||||||
TEST(ParserTest, file) {
|
TEST(ParserTest, file) {
|
||||||
vector<string> configs;
|
vector<string> configs;
|
||||||
configs.push_back("advanced.json");
|
configs.push_back("advanced.json");
|
||||||
configs.push_back("all-keys.json");
|
configs.push_back("all-keys-current.json");
|
||||||
configs.push_back("backends.json");
|
configs.push_back("backends.json");
|
||||||
configs.push_back("cassandra.json");
|
configs.push_back("cassandra.json");
|
||||||
configs.push_back("classify.json");
|
configs.push_back("classify.json");
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2018 Internet Systems Consortium, Inc. ("ISC")
|
// Copyright (C) 2018-2019 Internet Systems Consortium, Inc. ("ISC")
|
||||||
//
|
//
|
||||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@@ -62,7 +62,7 @@ void testFile(const std::string& fname, bool v6, ElementPtr& result) {
|
|||||||
|
|
||||||
TEST_F(AdaptorConfigTest, loadExamples4) {
|
TEST_F(AdaptorConfigTest, loadExamples4) {
|
||||||
vector<string> configs = { "advanced.json",
|
vector<string> configs = { "advanced.json",
|
||||||
"all-keys.json",
|
"all-keys-stable.json",
|
||||||
"backends.json",
|
"backends.json",
|
||||||
"cassandra.json",
|
"cassandra.json",
|
||||||
"classify.json",
|
"classify.json",
|
||||||
@@ -92,7 +92,7 @@ TEST_F(AdaptorConfigTest, loadExamples4) {
|
|||||||
|
|
||||||
TEST_F(AdaptorConfigTest, loadExamples6) {
|
TEST_F(AdaptorConfigTest, loadExamples6) {
|
||||||
vector<string> configs = { "advanced.json",
|
vector<string> configs = { "advanced.json",
|
||||||
"all-keys.json",
|
"all-keys-stable.json",
|
||||||
"backends.json",
|
"backends.json",
|
||||||
"cassandra.json",
|
"cassandra.json",
|
||||||
"classify.json",
|
"classify.json",
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2018 Internet Systems Consortium, Inc. ("ISC")
|
// Copyright (C) 2018-2019 Internet Systems Consortium, Inc. ("ISC")
|
||||||
//
|
//
|
||||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@@ -328,7 +328,7 @@ TEST_F(ConfigTest, examples4) {
|
|||||||
|
|
||||||
vector<string> examples = {
|
vector<string> examples = {
|
||||||
"advanced.json",
|
"advanced.json",
|
||||||
"all-keys.json",
|
"all-keys-stable.json",
|
||||||
"backends.json",
|
"backends.json",
|
||||||
"cassandra.json",
|
"cassandra.json",
|
||||||
"classify.json",
|
"classify.json",
|
||||||
@@ -366,7 +366,7 @@ TEST_F(ConfigTest, examples6) {
|
|||||||
|
|
||||||
vector<string> examples = {
|
vector<string> examples = {
|
||||||
"advanced.json",
|
"advanced.json",
|
||||||
"all-keys.json",
|
"all-keys-stable.json",
|
||||||
"backends.json",
|
"backends.json",
|
||||||
"cassandra.json",
|
"cassandra.json",
|
||||||
"classify.json",
|
"classify.json",
|
||||||
|
Reference in New Issue
Block a user