{
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# option definitions common to all supported networks...
/// This configuration declares some subnets but has no interfaces-config
/// Reference Kea #245
"Dhcp4": {
"option-data": [
{
"space": "dhcp4",
"name": "domain-name",
"code": 15,
"data": "example.org"
},
#option domain-name-servers ns1.example.org, ns2.example.org;
{
"space": "dhcp4",
"name": "domain-name-servers",
"code": 6,
"data": "10.35.0.1, 10.35.0.2"
}
],
"valid-lifetime": 600,
"max-valid-lifetime": 7200,
// "config": [
// /// log-facility is not supported
// /// Please use the KEA_LOGGER_DESTINATION environment variable instead
// {
// "name": "log-facility",
// "code": 44,
// "value": "local7"
// }
// ],
"subnet4": [
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
{
"id": 1,
"subnet": "10.152.187.0/24"
},
# This is a very basic subnet declaration.
{
"id": 2,
"subnet": "10.254.239.0/27",
"pools": [
{
"pool": "10.254.239.10 - 10.254.239.20"
}
],
"option-data": [
# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
{
"space": "dhcp4",
"name": "routers",
"code": 3,
"data": "10.254.239.1, 10.254.239.2"
}
]
},
# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.
{
"id": 3,
"subnet": "10.254.239.32/27",
"pools": [
{
"pool": "10.254.239.40 - 10.254.239.60"
}
],
"option-data": [
{
"space": "dhcp4",
"name": "broadcast-address",
"code": 28,
"data": "10.254.239.31"
},
# option routers rtr-239-32-1.example.org;
{
"space": "dhcp4",
"name": "routers",
"code": 3,
"data": "10.254.239.33"
}
]
},
# A slightly different configuration for an internal subnet.
{
"id": 4,
"subnet": "10.5.5.0/27",
"pools": [
{
"pool": "10.5.5.26 - 10.5.5.30"
}
],
"option-data": [
# option domain-name-servers ns1.internal.example.org;
{
"space": "dhcp4",
"name": "domain-name-servers",
"code": 6,
"data": "10.35.1.1"
},
{
"space": "dhcp4",
"name": "domain-name",
"code": 15,
"data": "internal.example.org"
},
{
"space": "dhcp4",
"name": "routers",
"code": 3,
"data": "10.5.5.1"
},
{
"space": "dhcp4",
"name": "broadcast-address",
"code": 28,
"data": "10.5.5.31"
}
],
"valid-lifetime": 600,
"max-valid-lifetime": 7200,
/// Host reservations without fixed addresses were put in the last declared subnet
/// Reference Kea #231
"reservations": [
# Hosts which require special configuration options can be listed in
# host statements. If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.
{
"hostname": "passacaglia",
"hw-address": "00:00:c0:5d:bd:95",
"boot-file-name": "vmunix.passacaglia",
"server-hostname": "toccata.example.com"
},
# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
{
"hostname": "fantasia",
"hw-address": "08:00:07:26:c0:a5",
"ip-address": "10.5.5.20"
}
]
}
],
"host-reservation-identifiers": [
"hw-address"
],
"client-classes": [
# You can declare a class of clients and then do address allocation
# based on that. The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.
{
"name": "foo",
/// from: match if (substring(option dhcp.vendor-class-identifier, 0, 4)) = 'SUNW'
"test": "substring(option[60].hex,0,4) == 'SUNW'"
},
{
"name": "gen#_AND_#!foo#",
"test": "not member('foo')"
}
],
/// Kea shared-networks are different, cf Kea #236
"shared-networks": [
{
"name": "224-29",
"subnet4": [
{
"id": 5,
"subnet": "10.17.224.0/24",
"option-data": [
# option routers rtr-224.example.org;
{
"space": "dhcp4",
"name": "routers",
"code": 3,
"data": "10.17.224.1"
}
],
"pools": [
{
"pool": "10.17.224.10 - 10.17.224.250",
/// From:
/// allow foo
"client-class": "foo"
}
]
},
{
"id": 6,
"subnet": "10.0.29.0/24",
"option-data": [
# option routers rtr-29.example.org;
{
"space": "dhcp4",
"name": "routers",
"code": 3,
"data": "10.0.29.1"
}
],
"pools": [
{
"pool": "10.0.29.10 - 10.0.29.230",
/// From:
/// deny foo
"client-class": "gen#_AND_#!foo#"
}
]
}
]
}
]
}
}