3.115. <AddressAllocator DHCP>

AddressAllocator DHCP works in conjunction with <AuthBy DYNADDRESS> (see Section 3.53. <AuthBy DYNADDRESS>) and a DHCP server to dynamically allocate IP addresses.
AddressAllocator DHCP has been tested with a number of DHCP servers, however it works best with the latest versions of the DHCP server from the Internet Software Consortium (ISC) that support the Subnet Selection Option. For more information, see ISC website Opens in new window.
The RFC 3011 Subnet Selection Option allows server-to-server operation such as that supported by Radiator.
The PoolHint supplied in the AuthBy DYNADDRESS clause must be a subnet definition that is understood by the DHCP server for the purposes of address allocation.
AddressAllocator DHCP makes the following allocation variables available for replies. These names can be used in MapAttribute in AuthBy DYNADDRESS.
An example AddressAllocator DHCP configuration file can be found in the distribution in the file goodies/addressallocatordhcp.cfg.
Because AddressAllocator DHCP binds to the DHCP server address, it is not possible to run the DHCP server on the same host as Radiator.
Because the DHCP address allocator binds to port 67, Radiator must be run as root, or at least with root privileges.

3.115.1. Identifier

This mandatory parameter specifies a symbolic name for this AddressAllocator clause. It must exactly match the Allocator parameter in an AuthBy DYNADDRESS in order for it to be used to allocate addresses.
Identifier        DHCPallocator

3.115.2. Host

The host name or IP address of the DHCP server. The address may be either a single host address or a broadcast address. If a broadcast address is specified, Radiator will allocate an address from the first DHCP host to answer a discover request.

3.115.3. Port

The DHCP port number on the DHCP host. Defaults to port 67.
Port 67

3.115.4. LocalAddress

The local IP address to bind to. Defaults to the main IP address of the Radiator host.

3.115.5. DHCPClientIdentifier

The Client Identifier to be used by the DHCP server to track allocations. Defaults to the user name in the current request.
DHCPClientIdentifier %{User-Name}

3.115.6. DefaultLease

Specifies the default lease period requested. Defaults to one day (86400 seconds).
DefaultLease 86400

3.115.7. TimeoutMinimum

The DHCP RFC specifies timeout and retry behaviour while attempting to contact a DHCP server. The TimeoutMinimum specifies the initial timeout in seconds. Defaults to 2 seconds.
TimeoutMinimum 4

3.115.8. TimeoutMaximum

The TimeoutMaximum specifies how long to keep retrying a request in seconds. Defaults to 16 seconds.
TimeoutMaximum 64

3.115.9. TimeoutFactor

The TimeoutFactor indicates how to recalculate the timeout for each attempt. Defaults to multiplying the timeout by 2 for each attempt.
TimeoutFactor 2

3.115.10. ServerPort

Specifies the local DHCP server port. Defaults to port 67.
ServerPort 67

3.115.11. Synchronous

Normally DHCP requests are processed asynchronously. This optional parameter can be used to make the requests synchronous.

3.115.12. SubnetSelectionOption

This is an optional integer parameter that is used to enable the DHCP "Subnet Selection Option". The official RFC option number is 118 which is used as the default if this parameter does not specify other value. Early versions of the ISC DHCP server used option 211.
If the SubnetSelectionOption parameter is not defined, no Subnet Selection Option is added and any PoolHint value provided is used in the giaddr field in the DHCP request, instead of LocalAddress.
Here are examples of using SubnetSelectionOption:
# This sets the value to 211.
SubnetSelectionOption 211

# If the parameter is set but no value is defined, 118 is used.

# Do not add any Subnet Selection Option.

3.115.13. UserClass

This optional parameter can be used to specify a User Class to be passed to the DHCP server to assist with address allocation. Any text and/or Radiator special characters are permitted. Refer to the DHCP server documentation for further details regarding the use of classes.
UserClass %{Client:Identifier}

3.115.14. ClientHardwareAddress

ClientHardwareAddress is an attribute in the incoming address which contains the hex encoded MAC address of the client. If present, it will be used as CHADDR in the DHCP request. If not present, and fake CHADDR based on the request XID will be used. The DHCP server may use this when allocating an address for the client. The MAC address can contain extraneous characters such as ‘.’ or ‘:’ as long as it contains the 12 hex characters (case insensitive) of the MAC address. Special characters are permitted.
# Use contents of an attribute to tell the DHCP server the
# hardware address of the client
ClientHardwareAddress %{Unisphere-Dhcp-Mac-Addr}

3.115.15. UseClassForAllocationInfo

When this optional parameter is set, information about the allocation is stored in reply attribute Class instead of in memory. Required for server farm where different farm members are likely to handle the allocation and deallocation. Defaults to off.

3.115.16. DHCPHostName

This string sets the value for DHCP option 12 "Host name". This has no default value and no Host Name is sent with DHCP request by default.
Here is an example of using DHCPHostName:
DHCPHostName Radiator-%{Calling-Station-Id}

3.115.17. DHCPVendorClass

This string parameter sets the value that is used for DHCP option 61 "Class Identifier", also known as "Vendor class identifier". This has no default value and no Class Identifier is sent with DHCP request by default.
Here is an example of using DHCPVendorClass:
DHCPVendorClass RadiatorAllocations