ISC DHCP - Topological Declarations

The following statement types are considered declaration statements within the ISC DHCP server for topological elements or scopes. Other than the include declaration they define elements of the network topology.


  • include - the include statement enables a specified filename to be read into the configuration file at the location where the include statement exists as if the contents of the file were pasted into that location.
include "filename"

where filename is the name of the file.


  • shared-network - in cases where two or more IP subnets have been assigned to the same physical network segment the shared-network declaration enables this association within the configuration file. This enables the DHCP server to utilize address pools across the set of shared networks for a given source network (identified by the GIAddr field). Declarations and parameters may optionally be configured within the shared-network declaration statement to define attributes germane to this shared network.
shared-network name {
[ parameters ]
[ declarations ]
};

where name is the name of the shared network and parameters and declarations within with shared-network declaration block (curly brackets) apply to this shared network and are optional (square brackets indicate optional).


  • subnet - the subnet declaration defines each IPv4 subnet for which the DHCP server may receive DHCP address requests. A subnet declaration is also required for the subnets to which the DHCP server is connected even if these subnets contain no DHCP address pools. Subnet specific parameters and declarations may optionally be defined.
subnet subnet-address netmask network-mask {
[ parameters ]
[ declarations ]
};

where subnet-address is the IP network address and network-mask is the network mask defined in dotted decimal notation. Thus subnet 10.0.203.0/23 would be expressed as subnet 10.0.203.0 subnet-mask 255.255.255.254 { }.


  • subnet6 - the subnet6 declaration defines each IPv6 subnet for which the DHCP server may receive DHCPv6 requests. A subnet6 declaration is also required for the IPv6 subnets to which the DHCP server is connected even if these subnets contain no DHCP address pools. Subnet specific parameters and declarations may optionally be defined.
subnet6 subnet6-address {
[ parameters ]
[ declarations ]
};

where subnet6-address is the IPv6 network address in CIDR notation. Thus IPv6 subnet 2001:DB8:A800::/64 would be expressed as subnet6 2001:db8:a800::/64 { }.


  • pool - pool declarations enable association of parameters and declarations independent from those of another pool possibly on the same subnet. For example a given subnet may contain two address pools one configured with a given set of parameters and the other configured with a different set of parameters or values such as a known client pool and an unknown client pool.
pool {
[ parameters ]
[ declarations ]
};

  • range - this declaration defines the range of IPv4 addresses within a subnet or pool for which addresses can be assigned by the DHCP server. As such it is configured as a declaration within a subnet declaration. When the dynamic-bootp optional parameter is declared the DHCP server can serve both DHCP and BOOTP clients from the address range.
range [ dynamic-bootp ] low-address [ high-address ];

where low-address is the first address in the range and high-address is the last address in the range. When omitted the high-address is equal to low-address i.e. the range consists of one IP address.


  • range6 - this declaration defines the range of IPv6 addresses within a subnet or pool for which addresses can be assigned by the DHCP server. Just as the range declaration is enclosed within the subnet statement the range6 declaration is defined within a subnet6 declaration.
range6 low-address high-address ; OR range6 cidr-address [temporary];

where low-address is the first address in the range and high-address is the last address in the range. The alternative notation uses a \cidr-address parameter an IPv6 network with a specified prefix length. The temporary keyword indicates that this range is available as a prefix.


  • prefix6 - this declaration defines the range of IPv6 addresses within a subnet or pool for which prefixes can be assigned by the DHCP server; i.e. for prefix delegation of an entire subnet.
prefix6 low-address high-address /bits;

where low-address is the first address in the prefix and high-address is the last address in the prefix and bits is the prefix length.


  • host - this declaration defines a specific client and enables assignment of a specific fixed address to the client.
host name {
[ parameters ]
[ declarations ]
};

where name is the hostname; however this declaration does not provide matching of a given host to the corresponding host-name option within the DHCP packet only to a declared hardware address dhcp-client-identifier option or host-identifier DHCPv6 option one of which must be specified within the host declaration parameter set. Other parameters and declarations within the host declaration apply to the corresponding host.


  • group - this declaration enables the association of a common set of parameters and/or declarations to a group of hosts shared networks subnets and even other groups. Within the group block members of the group would be declared along with their common attributes.
group {
[ parameters ]
[ declarations ]
};