mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-31 05:55:28 +00:00
97 lines
3.6 KiB
JSON
97 lines
3.6 KiB
JSON
// This is an example configuration file for the DHCPv4 server in Kea.
|
|
// The purpose of this example is to showcase how configure
|
|
// Vendor Specific Information (code 43) RFC 2132 section 8.4
|
|
{
|
|
"Dhcp4": {
|
|
"option-def": [
|
|
{
|
|
// Two options that we are planning to include in option 43 as suboptions
|
|
// should be defined on global level
|
|
"array": false,
|
|
"code": 2,
|
|
"name": "vlanid",
|
|
// suboptions should have space configured and it can't start with 'vendor-'
|
|
// otherwise those will be included in 125 option not 43
|
|
"space": "339",
|
|
"type": "uint32"
|
|
},
|
|
{
|
|
"array": false,
|
|
"code": 3,
|
|
"name": "dls",
|
|
"space": "339",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"client-classes": [
|
|
{
|
|
|
|
// Kea needs classification based on option 60, you can either use name:
|
|
// VENDOR_CLASS_ + option 60 content (test parameter is not required than)
|
|
// or use any name and add "test" parameter accordingly e.g.
|
|
// "test": "substring(option[60].hex,0,9) == 'partial-content-of-option-60'"
|
|
"name": "VENDOR_CLASS_339",
|
|
"option-def": [
|
|
{
|
|
// Vendor-specific option has to be defined on the class level, if we're planning
|
|
// to send a single value, then define its type accordingly. If this option
|
|
// should encapsulate other suboptions, the "space" parameter should be the same
|
|
// as included suboptions and "type" set to empty
|
|
"code": 43,
|
|
// Using the "encapsulate" direction, Kea is told to include options from
|
|
// the "339" namespace. We have defined several such options earlier.
|
|
// This way, the sub-options are "glued" to this option 43.
|
|
"encapsulate": "339",
|
|
"name": "vendor-encapsulated-options",
|
|
"type": "empty"
|
|
}
|
|
],
|
|
"option-data": [
|
|
{
|
|
// vendor-encapsulated-options and defined option on global level should
|
|
// be also configured with proper "data" parameters in "option-data" list.
|
|
// Because Kea will send only option that client ask for, and there is no way
|
|
// to ask for suboptions, parameter "always-send" with value set
|
|
// to true has also be included in all custom suboptions
|
|
"name": "vendor-encapsulated-options"
|
|
},
|
|
{
|
|
"always-send": true,
|
|
"data": "123",
|
|
"name": "vlanid",
|
|
"space": "339"
|
|
},
|
|
{
|
|
"always-send": true,
|
|
"data": "sdlp://192.0.2.11:18443",
|
|
"name": "dls",
|
|
"space": "339"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
// Kea is told to listen on eth0 interface only.
|
|
"interfaces-config": {
|
|
"interfaces": ["eth0"]
|
|
},
|
|
// We need to specify the database used to store leases.
|
|
"lease-database": {
|
|
"type": "memfile"
|
|
},
|
|
// The following list defines subnets. We have only one subnet
|
|
// here. We tell Kea that it is directly available over local interface.
|
|
"subnet4": [
|
|
{
|
|
"interface": "eth0",
|
|
"pools": [
|
|
{
|
|
"pool": "192.0.2.50-192.0.2.50"
|
|
}
|
|
],
|
|
"subnet": "192.0.2.0/24",
|
|
"id": 1
|
|
}
|
|
]
|
|
}
|
|
}
|