5.5. IP Pools

[Note] Note

IP pools can currently only be used with IPv4 DHCP.

Overview

An IP pool is used to offer other subsystems access to a cache of DHCP IP addresses. These addresses are gathered into a pool by internally maintaining a series of DHCP clients (one DHCP client per IP address). More than one DHCP server can be used by a pool and can either be external or be local DHCP servers defined in cOS Core itself. Multiple IP Pools can be set up with different identifying names.

External DHCP servers can be specified in one of two ways:

When using a DHCP server that is defined in cOS Core itself, the following should be noted:

Setup of an IP pool using an internally configured DHCP server is further described in an article in the Clavister Knowledge Base at the following link:

https://kb.clavister.com/354854609

IP Pools with IPsec Config Mode

A primary usage of IP Pools is with IKE Config Mode which is a feature used for allocating IP addresses to roaming clients connecting through IPsec tunnels. For more information on this see Section 10.3.11, Config Mode.

Basic IP Pool Options

The basic options available for an IP Pool are:
DHCP Server behind interface
Indicates that the IP pool should use the DHCP server(s) residing on the specified interface.
Specify DHCP Server Address

Specify DHCP server IP(s) in preferred ascending order to be used. This option is used instead of the behind interface option.

Using the IP loopback address 127.0.0.1 indicates that the DHCP server is cOS Core itself.

Server filter
Optional setting used to specify which servers to use. If unspecified any DHCP server on the interface will be used. The order of the provided address or ranges (if multiple) will be used to indicate the preferred servers.
Client IP filter

This is an optional setting used to specify which offered IPs are acceptable. In most cases this will be set to the default of all-nets so all addresses will be acceptable. Alternatively, a set of acceptable IP ranges can be specified.

This filter option is used in the situation where there may be a DHCP server response with an unacceptable IP address.

Advanced IP Pool Options

Advanced options available for IP Pool configuration are:
Routing Table
The routing table to be used for lookups when resolving the destination interfaces for the configured DHCP servers.
Receive Interface

A "simulated" virtual DHCP server receiving interface. This setting is used to simulate a receiving interface when an IP pool is obtaining IP addresses from internal DHCP servers. This is needed since the filtering criteria of a DHCP server includes a Receive Interface.

An internal DHCP server cannot receive requests from the IP pool subsystem on an interface since both the server and the pool are internal to cOS Core. This setting allows such requests from a pool to appear as though they come from a particular interface so that the relevant DHCP server will respond.

MAC Range
A range of MAC addresses that will be used to create "fake" DHCP clients. Used when the DHCP server(s) map clients by the MAC address. An indication of the need for MAC ranges is when the DHCP server keeps giving out the same IP for each client.
Prefetch leases
Specifies the number of leases to keep prefetched. Prefetching will improve performance since there will not be any wait time when a system requests an IP (while there exists prefetched IPs).
Maximum free
The maximum number of "free" IPs to be kept. Must be equal to or greater than the prefetch parameter. The pool will start releasing (giving back IPs to the DHCP server) when the number of free clients exceeds this value.
Maximum clients
Optional setting used to specify the maximum number of clients (IPs) allowed in the pool.
Sender IP
This is the source IP to use when communicating with the DHCP server.

Memory Allocation for Prefetched Leases

As mentioned in the previous section, the Prefetched Leases option specifies the size of the cache of leases which is maintained by cOS Core. This cache provides fast lease allocation and can improve overall system performance. It should be noted however that the entire prefetched number of leases is requested at system startup and if this number is too large then this can degrade initial performance.

As leases in the prefetch cache are allocated, requests are made to DHCP servers so that the cache is always full. The administrator therefore has to make a judgment as to the optimal initial size of the prefetch cache.

Listing IP Pool Status

The CLI command ippools can be used to look at the current status of an IP pool. The simplest form of the command is:
Device:/> ippool -show
This displays all the configured IP pools along with their status. The status information is divided into four parts:

Other options in the ippool command allow the administrator to change the pool size and to free up IP addresses. The complete list of command options can be found in the CLI Reference Guide.

Example 5.5. Creating an IP Pool

This example shows the creation of an IP Pool object that will use the DHCP server on IP address 28.10.14.1 with 10 prefetched leases. It is assumed that this IP address is already defined in the address book as an IP object called ippool_dhcp

Command-Line Interface

Device:/> add IPPool ip_pool_1
			DHCPServerType=ServerIP
			ServerIP=ippool_dhcp
			PrefetchLeases=10

InControl

Follow similar steps to those used for the Web Interface below.

Web Interface

  1. Go to: Objects > IP Pools > Add > IP Pool
  2. Now enter Name: ip_pool_1
  3. Select Specify DHCP Server Address
  4. Add ippool_dhcp to the Selected list
  5. Select the Advanced tab
  6. Set Prefetched Leases to 10
  7. Click OK