PXED server file syntax for db_file database
The PXED server file syntax for the db_file database is described here. Forms, subcontainers, default values, and meanings are identified.
Note:
- Time Units (time_units) shown in the following table are optional and represent a modifier to the actual time. The default time unit is minutes. Valid values are seconds (1), minutes (60), hours (3600), days (86400), weeks (604800), months (2392000), and years (31536000). The number shown in parentheses is a multiplier applied to the specified value n to express the value in seconds.
- Items that are specified in one container can be overridden inside a subcontainer. For example, you could globally define BOOTP clients, but within a certain subnet allow BOOTP clients by specifying the supportBootp keywork in both containers.
- The client, class, and vendor containers allow for regular expression
support. For class and vendor, a quoted string with the first character
after the quote being an exclamation point (!) indicates that the
rest of the string should be treated as a regular expression. The
client container allows for regular expressions on both the hwtype and
the hwaddr fields. A single string is used
to represent both fields with the following format:
If decimal_number is zero, then data is an ASCII string. If any other number, data is hex digits.decimal_number-data
Keyword | Form | Subcontainers? | Default Value | Meaning |
---|---|---|---|---|
subnet | subnet default | Yes | None | Specifies a subnet that does not have any range. The subnet is used by the server only when it is responding to INFORM packet from the client. |
subnet | subnet subnet id netmask | Specifies a subnet and a pool of addresses. All addresses are assumed to be in the pool unless a range is specified on the line or addresses are modified later in the container by a range or exclude statement. The optional range is a pair of IP addresses in dotted quad format separated by a dash. An optional label and priority can be specified. These are used by virtual subnets to identify and order the subnets in the virtual subnet. The label and priority are separated by a colon. These containers are only allowed at the global or database container level. | ||
subnet | subnet subnet id netmask range | Specifies a subnet and a pool of addresses. All addresses are assumed to be in the pool unless a range is specified on the line or addresses are modified later in the container by a range or exclude statement. The optional range is a pair of IP addresses in dotted quad format separated by a dash. An optional label and priority can be specified. These are used by virtual subnets to identify and order the subnets in the virtual subnet. The label and priority are separated by a colon. These containers are only allowed at the global or database container level. | ||
subnet | subnet subnet id netmask label:priority | Specifies a subnet and a pool of addresses. All addresses are assumed to be in the pool unless a range is specified on the line or addresses are modified later in the container by a range or exclude statement. The optional range is a pair of IP addresses in dotted quad format separated by a dash. An optional label and priority can be specified. These are used by virtual subnets to identify and order the subnets in the virtual subnet. The label and priority are separated by a colon. These containers are only allowed at the global or database container level. | ||
subnet | subnet subnet id netmask range label:priority | Specifies a subnet and a pool of addresses. All addresses are assumed to be in the pool unless a range is specified on the line or addresses are modified later in the container by a range or exclude statement. The optional range is a pair of IP addresses in dotted quad format separated by a dash. An optional label and priority can be specified. These are used by virtual subnets to identify and order the subnets in the virtual subnet. The label and priority are separated by a colon. These containers are only allowed at the global or database container level. | ||
subnet | subnet subnet id range | Yes | None | Specifies a subnet that goes within a network container. It
defines a range of addresses that is the whole subnet unless the optional
range part is specified. The netmask associated with the subnet is
taken from the surrounding network container. Note: This method is
deprecated in favor of the other subnet forms.
|
option | option number data ... | No | None | Specifies an option to send to a client or,
in the case of deny, an option to prevent from being sent to the client.
The optional * deny clause means all options not
specified in the current container are not to be returned to the client.
option numberdeny only denies the specified
option. number is an unsigned 8-bit integer. data is
specific to the option (see above) or can be specified as a quoted
string (indicating ASCII text) or 0xhexdigits or
hex"hexdigits" or hex "hexdigits".
If the option is in a vendor container, the option will be encapsulated
with other options in an option 43. |
option | option numberdeny | No | None | Specifies an option to send to a client or,
in the case of deny, an option to prevent from being sent to the client.
The optional * deny clause means all options not
specified in the current container are not to be returned to the client.
option numberdeny only denies the specified
option. number is an unsigned 8-bit integer. data is
specific to the option (see above) or can be specified as a quoted
string (indicating ASCII text) or 0xhexdigits or
hex"hexdigits" or hex "hexdigits".
If the option is in a vendor container, the option will be encapsulated
with other options in an option 43. |
option | option * deny | No | None | Specifies an option to send to a client or,
in the case of deny, an option to prevent from being sent to the client.
The optional * deny clause means all options not
specified in the current container are not to be returned to the client.
option numberdeny only denies the specified
option. number is an unsigned 8-bit integer. data is
specific to the option (see above) or can be specified as a quoted
string (indicating ASCII text) or 0xhexdigits or
hex"hexdigits" or hex "hexdigits".
If the option is in a vendor container, the option will be encapsulated
with other options in an option 43. |
exclude | exclude an IP address | No | None | Modifies the range on the container in which the exclude statement is in. The exclude statement is not valid in the global or database container levels. The exclude statement removes the specified address or range from the current range on the container. The exclude statement allows you to create noncontiguous ranges for subnets or other containers. |
exclude | exclude dotted_quad-dotted_quad | No | None | Modifies the range on the container in which the exclude statement is in. The exclude statement is not valid in the global or database container levels. The exclude statement removes the specified address or range from the current range on the container. The exclude statement allows you to create noncontiguous ranges for subnets or other containers. |
range | range IP_address | No | None | Modifies the range on the container in which the range statement is in. The range statement is not valid in the global or database container levels. If the range is the first in the container that does not specify a range on the container definition line, then the range for the container becomes the range specified by the range statement. Any range statement after the first range or all range statements for a containers that specifies ranges in its definition are added to the current range. With the range statement, a single address or set of addresses can be added to the range. The range must fit inside the subnet container definition. |
range | range dotted_quad-dotted_quad | No | None | Modifies the range on the container in which the range statement is in. The range statement is not valid in the global or database container levels. If the range is the first in the container that does not specify a range on the container definition line, then the range for the container becomes the range specified by the range statement. Any range statement after the first range or all range statements for a containers that specifies ranges in its definition are added to the current range. With the range statement, a single address or set of addresses can be added to the range. The range must fit inside the subnet container definition. |
client | client hwtype hwaddr NONE | Yes | None | Specifies a client container that denies the client specified by the hwaddr and hwtype from getting an address. If hwtype is 0, then hwaddr is an ASCII string. Otherwise, hwtype is the hardware type for the client and hwaddr is the hardware address of the client. If the hwaddr is a string, then quotes are accepted around the string. If the hwaddr is a hexstring, then the address may be specified by 0xhexdigits or hex digits. range allows the client specified by the hwaddr and hwtype to get an address in the range. Must be regular expressions to match multiple clients. |
client | client hwtype hwaddr ANY | Yes | None | Specifies a client container that denies the client specified by the hwaddr and hwtype from getting an address. If hwtype is 0, then hwaddr is an ASCII string. Otherwise, hwtype is the hardware type for the client and hwaddr is the hardware address of the client. If the hwaddr is a string, then quotes are accepted around the string. If the hwaddr is a hexstring, then the address may be specified by 0xhexdigits or hex digits. range allows the client specified by the hwaddr and hwtype to get an address in the range. Must be regular expressions to match multiple clients. |
client | client hwtype hwaddr dotted_quad | Yes | None | Specifies a client container that denies the client specified by the hwaddr and hwtype from getting an address. If hwtype is 0, then hwaddr is an ASCII string. Otherwise, hwtype is the hardware type for the client and hwaddr is the hardware address of the client. If the hwaddr is a string, then quotes are accepted around the string. If the hwaddr is a hexstring, then the address may be specified by 0xhexdigits or hex digits. range allows the client specified by the hwaddr and hwtype to get an address in the range. Must be regular expressions to match multiple clients. |
client | client hwtype hwaddr range | Yes | None | Specifies a client container that denies the client specified by the hwaddr and hwtype from getting an address. If hwtype is 0, then hwaddr is an ASCII string. Otherwise, hwtype is the hardware type for the client and hwaddr is the hardware address of the client. If the hwaddr is a string, then quotes are accepted around the string. If the hwaddr is a hexstring, then the address may be specified by 0xhexdigits or hex digits. range allows the client specified by the hwaddr and hwtype to get an address in the range. Must be regular expressions to match multiple clients. |
class | class string | Yes | None | Specifies a class container with name string. String can be quoted or not. If quoted, the quotes are removed before comparison. Quotes are required for strings with spaces or tabs. This container is valid at any level. A range can be supplied to indicate a set of addresses to hand out to a client with this class. The range is either a single dotted quad IP address or two dotted quad IP addresses separated by a dash. |
class | class string range | Yes | None | Specifies a class container with name string. String can be quoted or not. If quoted, the quotes are removed before comparison. Quotes are required for strings with spaces or tabs. This container is valid at any level. A range can be supplied to indicate a set of addresses to hand out to a client with this class. The range is either a single dotted quad IP address or two dotted quad IP addresses separated by a dash. |
network | network network id netmask | Yes | None | Specifies a network ID using class information
(for example, 9.3.149.0 with a netmask of 255.255.255.0 would be network
9.0.0.0 255.255.255.0). This version of the network container is used
to hold subnets with the same network ID and netmask. When a range
is provided, all the addresses in the range are in the pool. The range
must be in the network ID's network. This uses class full addressing.
This is only valid in the global or database container level. Note: The
network keyword is deprecated in favor of the subnet container.
|
network | network network id | Yes | None | Specifies a network ID using class information
(for example, 9.3.149.0 with a netmask of 255.255.255.0 would be network
9.0.0.0 255.255.255.0). This version of the network container is used
to hold subnets with the same network ID and netmask. When a range
is provided, all the addresses in the range are in the pool. The range
must be in the network ID's network. This uses class full addressing.
This is only valid in the global or database container level. Note: The
network keyword is deprecated in favor of the subnet container.
|
network | network network id range | Yes | None | Specifies a network ID using class information
(for example, 9.3.149.0 with a netmask of 255.255.255.0 would be network
9.0.0.0 255.255.255.0). This version of the network container is used
to hold subnets with the same network ID and netmask. When a range
is provided, all the addresses in the range are in the pool. The range
must be in the network ID's network. This uses class full addressing.
This is only valid in the global or database container level. Note: The
network keyword is deprecated in favor of the subnet container.
|
vendor | vendor vendor_id | Yes | None | Specifies a vendor container. Vendor containers are used to return option 43 to the client. The vendor id may be specified in a quoted string or a binary string in the form 0xhexdigits or hex"digits". An optional range may be placed after the vendor id. The range is specified as two dotted quads separated by a dash. After the optional range, an optional hexstring or ASCII string can be specified as the first part of the option 43. If options are in the container, they are appended to the option 43 data. After all options are processed an End Of Option List Option is appended to the data. To return options outside of an option 43, use a regular expression client that matches all clients to specify normal options to return based on the vendor ID. |
vendor | vendor vendor_id hex"" | Specifies a vendor container. Vendor containers are used to return option 43 to the client. The vendor id may be specified in a quoted string or a binary string in the form 0xhexdigits or hex"digits". An optional range may be placed after the vendor id. The range is specified as two dotted quads separated by a dash. After the optional range, an optional hexstring or ASCII string can be specified as the first part of the option 43. If options are in the container, they are appended to the option 43 data. After all options are processed an End Of Option List Option is appended to the data. To return options outside of an option 43, use a regular expression client that matches all clients to specify normal options to return based on the vendor ID. | ||
vendor | vendor vendor_id hex "" | Specifies a vendor container. Vendor containers are used to return option 43 to the client. The vendor id may be specified in a quoted string or a binary string in the form 0xhexdigits or hex"digits". An optional range may be placed after the vendor id. The range is specified as two dotted quads separated by a dash. After the optional range, an optional hexstring or ASCII string can be specified as the first part of the option 43. If options are in the container, they are appended to the option 43 data. After all options are processed an End Of Option List Option is appended to the data. To return options outside of an option 43, use a regular expression client that matches all clients to specify normal options to return based on the vendor ID. | ||
vendor | vendor vendor_id 0xdata | Specifies a vendor container. Vendor containers are used to return option 43 to the client. The vendor id may be specified in a quoted string or a binary string in the form 0xhexdigits or hex"digits". An optional range may be placed after the vendor id. The range is specified as two dotted quads separated by a dash. After the optional range, an optional hexstring or ASCII string can be specified as the first part of the option 43. If options are in the container, they are appended to the option 43 data. After all options are processed an End Of Option List Option is appended to the data. To return options outside of an option 43, use a regular expression client that matches all clients to specify normal options to return based on the vendor ID. | ||
vendor | vendor vendor_id "" | Specifies a vendor container. Vendor containers are used to return option 43 to the client. The vendor id may be specified in a quoted string or a binary string in the form 0xhexdigits or hex"digits". An optional range may be placed after the vendor id. The range is specified as two dotted quads separated by a dash. After the optional range, an optional hexstring or ASCII string can be specified as the first part of the option 43. If options are in the container, they are appended to the option 43 data. After all options are processed an End Of Option List Option is appended to the data. To return options outside of an option 43, use a regular expression client that matches all clients to specify normal options to return based on the vendor ID. | ||
vendor | vendor vendor_id range | Specifies a vendor container. Vendor containers are used to return option 43 to the client. The vendor id may be specified in a quoted string or a binary string in the form 0xhexdigits or hex"digits". An optional range may be placed after the vendor id. The range is specified as two dotted quads separated by a dash. After the optional range, an optional hexstring or ASCII string can be specified as the first part of the option 43. If options are in the container, they are appended to the option 43 data. After all options are processed an End Of Option List Option is appended to the data. To return options outside of an option 43, use a regular expression client that matches all clients to specify normal options to return based on the vendor ID. | ||
vendor | vendor vendor_id range hex"" | Specifies a vendor container. Vendor containers are used to return option 43 to the client. The vendor id may be specified in a quoted string or a binary string in the form 0xhexdigits or hex"digits". An optional range may be placed after the vendor id. The range is specified as two dotted quads separated by a dash. After the optional range, an optional hexstring or ASCII string can be specified as the first part of the option 43. If options are in the container, they are appended to the option 43 data. After all options are processed an End Of Option List Option is appended to the data. To return options outside of an option 43, use a regular expression client that matches all clients to specify normal options to return based on the vendor ID. | ||
vendor | vendor vendor_id range hex "" | Specifies a vendor container. Vendor containers are used to return option 43 to the client. The vendor id may be specified in a quoted string or a binary string in the form 0xhexdigits or hex"digits". An optional range may be placed after the vendor id. The range is specified as two dotted quads separated by a dash. After the optional range, an optional hexstring or ASCII string can be specified as the first part of the option 43. If options are in the container, they are appended to the option 43 data. After all options are processed an End Of Option List Option is appended to the data. To return options outside of an option 43, use a regular expression client that matches all clients to specify normal options to return based on the vendor ID. | ||
vendor | vendor vendor_id range 0xdata | Specifies a vendor container. Vendor containers are used to return option 43 to the client. The vendor id may be specified in a quoted string or a binary string in the form 0xhexdigits or hex"digits". An optional range may be placed after the vendor id. The range is specified as two dotted quads separated by a dash. After the optional range, an optional hexstring or ASCII string can be specified as the first part of the option 43. If options are in the container, they are appended to the option 43 data. After all options are processed an End Of Option List Option is appended to the data. To return options outside of an option 43, use a regular expression client that matches all clients to specify normal options to return based on the vendor ID. | ||
vendor | vendor vendor_id range "" | Specifies a vendor container. Vendor containers are used to return option 43 to the client. The vendor id may be specified in a quoted string or a binary string in the form 0xhexdigits or hex"digits". An optional range may be placed after the vendor id. The range is specified as two dotted quads separated by a dash. After the optional range, an optional hexstring or ASCII string can be specified as the first part of the option 43. If options are in the container, they are appended to the option 43 data. After all options are processed an End Of Option List Option is appended to the data. To return options outside of an option 43, use a regular expression client that matches all clients to specify normal options to return based on the vendor ID. | ||
inoption | inoption number option_data | Yes | None | Specifies a container to be matched against
any arbitrary incoming option specified by the client. number specifies
the option number. option_data specifies
the key to match for this container to be selected during address
and option selection for the client. option_data is
specified in expected form — quoted string, IP address, integer value
— for well known options, or it can be optionally specified as a hexadecimal
string of bytes if preceded by the characters 0x .
For options that are not well known to the server, a hexadecimal string
of bytes can be specified in the same fashion. Additionally, the option_data can
indicate a regular expression to be compared against the string representation
of the client's option data. Regular expressions are specified in
a quoted string beginning "! (double quote followed
by an exclamation mark). The string form of options not well known
to the server will be a hexadecimal string of bytes NOT preceded with
the characters 0x . |
inoption | inoption number option_data range | Yes | None | Specifies a container to be matched against
any arbitrary incoming option specified by the client. number specifies
the option number. option_data specifies
the key to match for this container to be selected during address
and option selection for the client. option_data is
specified in expected form — quoted string, IP address, integer value
— for well known options, or it can be optionally specified as a hexadecimal
string of bytes if preceded by the characters 0x .
For options that are not well known to the server, a hexadecimal string
of bytes can be specified in the same fashion. Additionally, the option_data can
indicate a regular expression to be compared against the string representation
of the client's option data. Regular expressions are specified in
a quoted string beginning "! (double quote followed
by an exclamation mark). The string form of options not well known
to the server will be a hexadecimal string of bytes NOT preceded with
the characters 0x . |
virtual | virtual fill id id ... | No | None | Specifies a virtual subnet with a policy. fill means
use all addresses in the container before going to the next container. rotate means
select an address from the next pool in the list on each request. sfill and srotate are
the same as fill and rotate , but
a search is done to see if the client matches containers, vendors,
or classes in the subnet. If a match is found that can supply an address,
the address is taken from that container instead of following the
policy. There can be as many IDs as needed. id is
either the subnet ID from the subnet definition or the label from
the subnet definition. The label is required if there are multiple
subnets with the same subnet id. |
virtual | virtual sfill id id ... | No | None | Specifies a virtual subnet with a policy. fill means
use all addresses in the container before going to the next container. rotate means
select an address from the next pool in the list on each request. sfill and srotate are
the same as fill and rotate , but
a search is done to see if the client matches containers, vendors,
or classes in the subnet. If a match is found that can supply an address,
the address is taken from that container instead of following the
policy. There can be as many IDs as needed. id is
either the subnet ID from the subnet definition or the label from
the subnet definition. The label is required if there are multiple
subnets with the same subnet id. |
virtual | virtual rotate id id ... | No | None | Specifies a virtual subnet with a policy. fill means
use all addresses in the container before going to the next container. rotate means
select an address from the next pool in the list on each request. sfill and srotate are
the same as fill and rotate , but
a search is done to see if the client matches containers, vendors,
or classes in the subnet. If a match is found that can supply an address,
the address is taken from that container instead of following the
policy. There can be as many IDs as needed. id is
either the subnet ID from the subnet definition or the label from
the subnet definition. The label is required if there are multiple
subnets with the same subnet id. |
virtual | virtual srotate id id ... | No | None | Specifies a virtual subnet with a policy. fill means
use all addresses in the container before going to the next container. rotate means
select an address from the next pool in the list on each request. sfill and srotate are
the same as fill and rotate , but
a search is done to see if the client matches containers, vendors,
or classes in the subnet. If a match is found that can supply an address,
the address is taken from that container instead of following the
policy. There can be as many IDs as needed. id is
either the subnet ID from the subnet definition or the label from
the subnet definition. The label is required if there are multiple
subnets with the same subnet id. |
inorder: | inorder: id id ... | No | None | Specifies a virtual subnet with a policy of fill, which means use all addresses in the container before going to the next container. There can be as many IDs as needed. id is either the subnet ID from the subnet definition or the label from the subnet definition. The label is required if there are multiple subnets with the same subnet ID. |
balance: | balance: id id ... | No | None | Specifies a virtual subnet with a policy of rotate, which means use the next address in the next container. There can be as many IDs as needed. id is either the subnet ID from the subnet definition or the label from the subnet definition. The label is required if there are multiple subnets with the same subnet ID. |
bootstrapserver | bootstrapserver IP address | No | None | Specifies the server clients should use from which to TFTP files after receiving BOOTP or DHCP packets. This value fills in the siaddr field in the packet. This is valid at any container level. |
giaddrfield | giaddrfield IP address | No | None | Specifies the giaddrfield for response packets. Note: This
specification is illegal in the BOOTP and DHCP protocols,
but some clients require the giaddr field to be the default
gateway for the network. Because of this potential conflict, giaddrfield should
only be used within a client container, although it can work at any
level.
|
bootfile | bootfile path | No | None | Specifies the bootfile to use in the file section of the response packet. This can be specified at any container level. The bootfile policy defines how items specified in the file section of the incoming packet interact with the bootfile and the home directory statements. |
pxebootfile | pxebootfile System Arch MajorVer MinorVer Bootfilename | No | None | Specifies the bootfile to be given to a client. The config file parser generates an error if the number of parameters after the keyword is less than 4 and ignore if more than 4. This keyword can be used only in a container. |
For details about other options, see DHCP server file known options and Preboot execution environment vendor container suboption.