Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

How to Configure and Monitor IP PoolBot

How to Configure IP PoolBot to Manage Address Pools

You use the IP PoolBot CLI when you configure IP PoolBot to manage address pools in the network. The IP PoolBot CLI is a simplified, limited, containerized version of Junos OS. You should have some basic knowledge of the Junos OS CLI. Day One: Exploring the Junos CLI provides a good overview of Junos OS CLI basics. The CLI User Guide provides more detailed information.

Before you begin configuring IP PoolBot for a network, make sure that you know the following:

  • The BNGs where IP PoolBot will manage the address pools.

  • The ports that the BNGs use for NETCONF messages and for telemetry.

  • The names of the centralized address pool partitions.

  • The name of the first pool (pool head) in the linked address pool that corresponds to a pool domain, if the address pool already exists. IP PoolBot requires this name in the configuration so that it can follow the links to discover the rest of the pools in the pool domain.

  • The names of routing instances other than default, if any, where the linked address pools are configured.

  • Your detailed strategy for partitioning IP PoolBot’s centralized pool of addresses, including:

    • The size of the prefixes to partition from the address space; for example, are the prefixes /15, /22, /24, and so on.

    • The set of addresses for IP PoolBot to allocate for each BNG.

Note:

IP PoolBot is preconfigured with the following system-level attributes; do not alter this configuration:

  • xpath—Specifies that cMGD uses the XPath method of navigating through XML files.

  • constraints direct-access—Enables cMGD to check CLI leaf configuration values against defined constraints to enforce code requirements. For example, this prevents you from committing auto-reclamation window-start time unless you have also configured auto-reclamation active window.

  • notification configuration-diff-format xml—Enables run-time configuration changes on a managed BNG to be propagated to IP PoolBot. IP PoolBot compares this post-commit configuration with the pre–commit configuration so that it can update the IP PoolBot database tables with any changes.

At a high-level, you can break down the configuration of IP PoolBot into the following operations:

  • You have to configure the profiles that enable communications between IP PoolBot and the managed BNGs for provisioning, and between IP PoolBot and HealthBot for monitoring the status and address availability for each BNG.

  • You have to create partitions that subdivide IP PoolBot’s centralized address pool into sets of root prefixes from which it allocates addresses to the managed BNGs.

  • You have to configure information about each BNG that IP PoolBot manages, including one or more pool domains on each BNG.

  • For each pool domain, you have to configure how IP PoolBot allocates addresses, when it allocates addresses, and which addresses it allocates. You configure a free-address threshold to trigger address provisioning. You configure a used-address threshold to trigger address reclamation.

  • You can optionally configure an extensible provisioning dictionary to create provisioning and deprovisioning statements based on parameterized variables.

  • You can optionally configure automatic address reclamation as an alternative to manual reclamation.

Access Configuration Mode from the IP PoolBot Utility

You have to access the set of CLI commands available for configuring IP PoolBot.

  1. Access the CLI from the utility command prompt.
  2. Enter configuration mode from the basic CLI prompt.

Now you are ready to start configuring IP PoolBot.

How to Configure IP PoolBot System Attributes

Configure system attributes that determine entity manager behavior.

  1. (Optional) Specify how long IP PoolBot waits before it reexamines an active critical alarm for further action.
  2. (Optional) Specify how long IP PoolBot waits for a transaction to complete before it considers the transaction to have timed out.

How to Configure Profiles for IP PoolBot

Profiles define the configuration for the plug-ins that IP PoolBot uses to monitor and provision managed BNGs. Plug-ins are one of the following types:

  • Entity plug-ins establish direct connections with the BNGs managed by IP PoolBot. The jnprNETCONF plug-in is an entity type plug-in. Part of the BNG configuration is to include any port or connection secrets (username/password combinations) in the respective provisioning or monitoring stanzas. These parameters are conveyed to the plug-in at initialization.

  • Manager plug-ins establish communication with an external manager service, which in turn communicates with the managed BNGs. The jnprHealthBot plug-in is a manager type plug-in. This plug-in requires connection secrets to log in to HealthBot’s REST interface.

  1. Create or access the profile.
  2. Specify the name of the plug-in applied by the profile.
    Note:

    other is used only for test plug-ins.

  3. (Optional) Specify the name of a test plug-in. Use this only when you have specified other as the plug-in-name.
  4. Specify the type of plug-in.
  5. (manager type plug-ins only) Specify the address of the manager that communicates with the BNGs.
  6. (manager type plug-ins only) Specify the TCP port on which the BNG is listening for telemetry subscriptions from the manager.
  7. Specify the destination port on the BNG where the BNG listens for NETCONF connections from IP PoolBot and REST API connections from HealthBot.
  8. (entity type plug-ins only) Configure how the plug-in manages connectivity state with the BNG.
    • Configure how long the plug-in waits to reconnect when it detects failed connection to the BNG. If the attempt fails, the wait interval doubles, doubling again for each subsequent failed attempt until the retries are exhausted.

    • Configure how many times the plug-in attempts to reconnect to the BNG. The BNG is declared to be unreachable when all retries have been attempted without success.

  9. Configure the BNG authentication credentials that enable the plug-in to connect to the remote NETCONF/ssh interface on the router (jnprNETCONF) or HealthBot’s REST interface (jnprHealthBot).
    • Specify a username.

    • Specify a password.

How to Configure Address Pool Partitions

Configure the global pool of IPv4 addresses into partitions from which IP PoolBot allocates addresses to individual BNG pools.

  1. Create a partition. In practice, you create and configure as many partitions as you need to implement your address allocation strategy.
  2. (Optional) Configure lower limit and upper limits on the valid prefix length for the root prefixes in the partition.

    The prefix length for root prefixes that you add to the partition must be within the range defined by these limits.

  3. (Optional) Configure the minimum threshold percentage for free (unallocated) prefixes in the partition. When the percentage drops below this value, the Address Manager generates a warning-level log message to warn IP PoolBot that the partition is running low on available addresses. The notification is informative and triggers no other actions.
  4. Configure a root prefix for the partition. IP PoolBot subdivides the root prefix into subnetworks root to provision addresses for a BNG’s pool domains. You typically configure more than one root prefix per partition.
    1. (Optional) Specify the smallest subnetwork that IP PoolBot can subdivide from this root prefix.

      The value represents the number of bits in the prefix length for the root prefix.

      • A higher number specifies a longer prefix, which corresponds to a smaller subnetwork with fewer hosts.

      • A lower number specifies a shorter prefix, which corresponds to a larger subnetwork with more hosts.

    2. (Optional) Reserve one or more subnetworks that cannot be allocated from this partition. You must qualify the reservation by restricting it to a specified BNG or even to a specified pool domain on that BNG.

    3. (Optional) Specify a route tag that is associated with the route when a static discard route is created for the prefix on the BNG.

      Note:

      The tag is set only when the install-routes option is true; this is the default setting. When the install-routes option is true, IP PoolBot provisions a static discard route on the BNG for the pool prefix whenever IP PoolBot adds a new prefix to the BNG’s pool domain.

How to Configure Managed BNGs

Configure attributes that identify a managed BNG and define the pool domains on the BNG.

  1. Configure the primary address of the BNG as its IP address. This is the transport address for the BNG. On a BNG, this address is a primary-only management address.
  2. Assign a name for the BNG.
  3. Configure attributes IP PoolBot uses to provision or monitor pool domains on the BNG.
    1. Specify the profile that IP PoolBot uses to access the BNG’s provisioning interface.

    2. Enable a static discard route to be configured on the BNG for the pool prefix whenever IP PoolBot adds a new prefix to the BNG’s pool domain. You can optionally specify a route-tag for the discard route in the partition configuration.

    3. Specify the profile that determines how IP PoolBot monitors address utilization on the BNG.

  4. Configure a pool domain to define the allocation context for a BNG. The pool domain represents a linked address pool on the BNG. You can configure multiple pool domains per BNG.
    1. Create the pool domain that corresponds to a linked address pool that is configured on the BNG. The name of the domain must be unique within the BNG.

    2. Specify the IPv4 address family for the pool domain.

    3. Configure information that influences how IP PoolBot allocates addresses for the pool domain.

      • Specify the partition from which IP PoolBot must allocate addresses to the pool domain.

      • Specify an address to suggest the prefix that you want to be allocated to the pool domain.

        If IP PoolBot cannot allocate a prefix from a root prefix that includes the address hint, it checks other root prefixes in the partition for a prefix to allocate.

    4. (Optional) Configure the behavior for address allocation and alarm thresholds for address utilization in the pool domain.

      • Specify the size of the prefix that you want IP PoolBot to provision for the pool domain when the number of free addresses drops below the free-addresses threshold.

      • Specify how many address allocations IP PoolBot makes when it receives a critical pool domain threshold alarm without a subsequent nominal pool domain alarm.

      • Configure an IP address that IP PoolBot excludes from being allocated to the pool domain.

    5. Specify the threshold that triggers address allocation. When the number of free addresses drops below this minimum value, IP PoolBot initiates provisioning for the pool domain.

      Note:

      The CLI includes another monitoring attribute, reporting-interval seconds. The value is fixed at 5 seconds. Configuring the attribute has no effect. This attribute indicates how frequently HealthBot reports address utilization for the pool domain.

    6. Configure attributes that enable IP PoolBot to identify a pool domain on the BNG.

      • Configure the name of the first pool of an existing linked address pool that corresponds to the pool domain so that IP PoolBot can discover the rest of the pools in the linked address pool.

        When IP PoolBot creates new address pools for the prefixes it allocates, it links them to this pool. If you do not configure a pool head name, then IP PoolBot creates a pool head with the name jnpr-ipb-pool-domain-name-000. It names subsequent linked pools jnpr-ipb-pool-domain-name-sequence-number, where sequence-number is incremented for each new pool in the domain.

      • Specify the routing instance for the pool domain on the BNG if it is not the default instance.

      • (Optional) Specify the client type that the BNG assigns addresses to from the linked address pool.

      • (Optional) Specify the local loopback interface. During pool provisioning, IP PoolBot configures the first address from the prefix range on the local loopback interface.

Example: How to Configure IP PoolBot for Two BNGs

This example configuration illustrates the basic elements of configuring IP PoolBot.

Requirements

This configuration example uses the following devices:

  • One MX480 router. Software version Junos OS Release 18.3R3.

  • One MX240 router. Software version Junos OS Release 18.3R3.

  • One Ubuntu server running IP PoolBot.

  • One Ubuntu server running HealthBot.

Overview and Topology

Figure 1 shows the example topology. It includes a basic configuration for an IP PoolBot deployment where IP PoolBot manages seven pool domains and three partitions on two BNGs. It does not include every possible option. This configuration does not show configurations for the managed BNGs or HealthBot.

Figure 1: Example IP HealthBot Network TopologyExample IP HealthBot Network Topology

Table 1 lists the major components of the example topology.

Table 1: Components of the IP HealthBot Sample Topology

Configuration Component

Component Name

Description

IP PoolBot server

IP address is 10.0.2.25; needed by HealthBot.

HealthBot server

IP address is 10.0.2.20

Managed BNGs

mx480-a3

BNG with IP address 192.0.2.108

mx240–b2

BNG with IP address 192.0.2.233

Partitions

new-england

Set of addresses specified by root prefix 203.0.113.0/16

vpn

Set of addresses specified by root prefix 192.0.2.241/24

wholesalers

Set of addresses specified by root prefix 198.51.100.0/25

Pool domains

mx480-a3-default

Pool head is dhcpServerPool

mx480-a3-red

Pool head is vermont

cust-a970

Pool head is jnpr-ipb-cust-a970-001

local56

Pool head is vpn

wfmx240–b2-red

Pool head is b021-013

L3-001a

Pool head is L3001

internal

Pool head is vpn00

Configuration

CLI Quick Configuration

To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, copy and paste the commands into the CLI at the [edit] hierarchy level, and then enter commit from configuration mode.

Configure IP PoolBot System Attributes

Step-by-Step Procedure
  1. Specify that IP PoolBot waits 120 seconds before it reexamines an alarm for further action.

  2. Specify that IP PoolBot waits 180 seconds for a transaction to complete before it considers the transaction to have timed out.

Configure the Plug-In Profiles

Step-by-Step Procedure
  1. Configure the profile for the jnprNETCONF plug-in.

    1. Create the profile, prof-provision-a.

    2. Specify the name of the plug-in applied by the profile.

    3. Specify that the plug-in establishes direct connections with the BNGs.

    4. Specify the destination port on the BNG where the BNG listens for NETCONF connections.

    5. Configure the initial interval at which the plug-in attempts to reconnect and how many times it tries to reconnect when the connection to the BNG fails.

    6. Specify the username and password for the BNG login credentials.

  2. Configure the profile for the jnpr HealthBot plug-in.

    1. Create the profile, prof-monitor1.

    2. Specify the name of the plug-in applied by the profile.

    3. Specify that the plug-in establishes communications with an external manager.

    4. Specify the address of the HealthBot server.

    5. Specify the TCP port number on the BNG where HealthBot communicates with the BNG to collect telemetry data.

    6. Specify the destination port on the BNG where the BNG listens for REST API connections from HealthBot.

    7. Specify the username and password that the plug-in needs to connect to the HealthBot interface.

Configure the Partitions that Subdivide the Global IP PoolBot Address Pool

Step-by-Step Procedure

To configure the IPv4 address pool partitions:

  1. Configure the new-england partition.

    1. Configure a /24 lower limit and /26 upper limit on the valid prefix length for root prefixes in the new-england partition. That means that you will assign root prefixes only in that range to this partition.

    2. Set the root prefix to 203.0.113.0/24.

    3. Specify that the smallest subnetwork that IP PoolBot can subdivide from the root prefix is /26.

    4. Configure the minimum threshold percentage for unallocated prefixes in the partition.

  2. Configure the vpn partition.

    1. Configure a /24 lower limit and /27 upper limit on the valid prefix length for root prefixes in the vpn partition.

    2. Configure the vpn partition by setting the root prefix to 192.0.2.64/24.

    3. Specify that the smallest subnetwork that IP PoolBot can subdivide from the root prefix is /26.

    4. Configure the minimum threshold percentage for unallocated prefixes in the partition.

  3. Configure the wholesalers partition.

    1. Configure a /25 lower limit and /27 upper limit on the valid prefix length for root prefixes in the wholesalers partition.

    2. Set the root prefix to 198.51.100.0/25.

    3. Specify that the smallest subnetwork that IP PoolBot can subdivide from the root prefix is /26.

    4. Configure the minimum threshold percentage for unallocated prefixes in the partition.

    5. Specify that the route tag of 230 is associated with the prefix when a static discard route is created for an allocated prefix on the BNG.

Configure the Managed BNGs

Step-by-Step Procedure

To configure the BNG that has IP address 192.0.2.108:

  1. Specify the name of the BNG.

  2. Assign a profile for provisioning the BNG.

  3. Assign a profile for monitoring the BNG.

  4. Configure pool domain mx480-a3-default.

    1. Set the IPv4 address family.

    2. Configure prefix allocation attributes for the pool domain.

    3. Define the address allocation bias.

    4. Specify the threshold that triggers address allocation to the pool domain.

    5. Specify the threshold that indicates when the pool is suitable for address reclamation.

    6. Specify attributes for the pool domain.

  5. Configure pool domain mx480-a3-red, similarly to how you configured pool domain mx480-a3-default.

  6. Configure pool domain cust-a970. For this domain, you do not specify a pool head, so IP PoolBot will supply the name of the pool head and any subsequent pools.

  7. Configure pool domain local56.

Step-by-Step Procedure

To configure the BNG that has IP address 192.0.2.233:

  1. Specify the name of the BNG.

  2. Assign a profile for provisioning the BNG.

  3. Assign a profile for monitoring the BNG.

  4. Configure pool domain mx240-b2-red

  5. Configure pool domain L3-001a.

  6. Configure pool domain internal.

Results

Confirm your configuration by entering the show configuration command. If the output does not display the intended configuration, repeat the configuration instructions in this example to correct it.

Monitoring IP PoolBot Operations

Purpose

You can use the IP PoolBot show commands to display status and address utilization information about all BNGs that are under management. You can add qualifiers to the commands to display information more specifically by partition and pool domain.

From configuration mode, exit to the top-level CLI prompt, then enter the desired show commands.

Note:

The output in the following examples corresponds to the scenario in Example: IP PoolBot Configuration.

Action

  • Display overall prefix utilization; that is, how many prefixes IP PoolBot has available, reserved, or allocated, for all partitions.

  • Display prefix utilization for a single partition.

  • Display prefix utilization for a single partition and prefix.

  • Display information about all associated BNGs. The entity option initiates an RPC to HealthBot to retrieve status.

  • Display detailed information about a specific BNG.

  • Display detailed information about a BNG’s pool domain.

  • Display the number of allocations made by each partition.

  • Display information about how addresses are allocated for a specific partition across all BNGs.

  • Display information about how addresses are allocated for all partitions on a specific BNG.

  • Display information about how addresses are allocated for one partition on a specific BNG.