Declarations about network topology include the declaration is required for each subnet even if no addresses will be dynamically allocated on that subnet.
Some installations have physical networks on which more than one IP subnet operates.
For example, if there is a site-wide requirement that 8-bit subnet masks be used, but a department with a single physi- cal ethernet network expands to the point where it has more than 254 nodes, it may be necessary to run two 8-bit subnets on the same ether- net until such time as a new physical network can be added. Some sites may have departments which have clients on more than one subnet, but it may be desirable to offer those clients a uniform set of parameters which are different than what would be offered to clients from other departments on the same subnet.
For clients whose addresses will be dynam- ically assigned, class declarations and conditional declarations may be used to group parameter assignments based on information the client sends.
When a client is to be booted, its boot parameters are determined by consulting that client's declarations for the IP address assigned to the client.
Each of these declarations itself appears within a lexical scope, and all declarations at less specific lexical scopes are also consulted for client option declarations.
The file may contain extra tabs and newlines for formatting purposes. Comments may be placed anywhere within the file (except within quotes).
It is parsed by the recursive-descent parser built into dhcpd.
Comments begin with the # character and end at the end of the line.
The file essentially consists of a list of statements.
Statements fall into two broad categories - parameters and declarations.
Parameter statements either say how to do something (e.g., how long a lease to offer), whether to do something (e.g., should dhcpd provide addresses to unknown clients), or what parameters to provide to the client (e.g., use gateway 18.104.22.168).
Declarations are used to describe the topology of the network, to describe clients on the network, to provide addresses that can be assigned to clients, or to apply a group of parameters to a group of declarations.
In any group of parameters and declarations, all param- eters must be specified before any declarations which depend on those parameters may be specified.