Use Address Pool Manager with Juniper BNG CUPS
SUMMARY This section describes how to use Address Pool Manager with Juniper BNG control and user plane separation (CUPS). This topic includes a description of Address Pool Manager, configuration requirements for both Address Pool Manager and Juniper BNG CUPS, and operational behavior.
Address Pool Manager Overview
Juniper Address Pool Manager is a cloud-native, container-based application running on a Kubernetes environment that manages IPv4 address pools in a network. It automatically provisions prefixes from a centralized address pool to broadband network gateways (BNGs) before the BNGs deplete their address pools. For more information about Address Pool Manager, see Address Pool Manager User Guide.
How Address Pool Manager and Juniper BNG CUPS Work Together
Address Pool Manager maintains a centralized collection of IP prefixes for a Juniper BNG CUPS Controller (BNG CUPS Controller) and its associated Juniper BNG User Planes (BNG User Planes). Address Pool Manager provisions the pool domains for each BNG CUPS Controller under its management. Address Pool Manager also creates a pool domain for each BNG User Plane, domain profile, and routing instance combination.
Address Pool Manager uses its configured pool domain profile to store template parameters (for example, the pool prefix size and whether to install routes for pool prefixes). Address Pool Manager uses these parameters to create the domains. Addresses are allocated from the pools in the domains.
Address Pool Manger creates the domains using attributes from both the BNG CUPS Controller domain profile and the Address Pool Manager pool domain profile. (For a detailed explanation of Address Pool Manager, see Address Pool Manager User Guide.)
Address Pool Manager and the BNG CUPS Controller communicate through the APMi (a gRPC-based protocol interface). The APMi includes primitives for synchronizing pool data upon initial connection. It also raises alarms and manages the BNG CUPS Controller's pool collection.
BNG CUPS Controller creates a pool domain using the RADIUS framed pool attributes, the originating BNG User Plane, and the target routing instance. After creating the pool domain, the BNG CUPS Controller coordinates with Address Pool Manager to create the pool domain. In accordance with the pool domain's configured apportion threshold, the pool domain fills with the appropriate number of pools. When adding a pool to the domain, the BNG CUPS Controller adds a tagged discard route on the associated BNG User Plane. You can use the tag as a selector to import pool prefixes in the associated routing policies.
Figure 1 shows an Address Pool Manager and Juniper BNG CUPS deployment.
Use Address Pool Manager with Juniper BNG CUPS
BNG CUPS Controller can manage multiple BNG User Planes. You can dynamically add or remove the BNG User Planes. Therefore, it is inefficient and impractical to preprovision address pools on the BNG CUPS Controller for worst-case subscriber loads. Also, you might want to coordinate which prefixes a BNG User Plane uses (or sets of BNG User Planes use) in address pools for routing purposes. Address Pool Manager can automate pool management for BNG CUPS Controller.
Consider the following example:
-
A BNG CUPS Controller manages two BNG User Planes (UP-example-1 and UP-example-2).
-
Subscribers connecting to BNG User Plane UP-example-1 use a framed pool named FP-example-1.
-
Subscribers connecting through BNG User Plane UP-example-2 use a framed pool named FP-example-2.
-
Each BNG User Plane is in a different region of the access network and requires a pool prefix derived from a specific prefix root.
-
The BNG User Planes that are connected to the BNG CUPS Controller have a session setup rate of 300 sessions per second and maintain an average number of sessions of 96,000 during busy hours.
Plan Pool Domain Characteristics
Configuring automated address pool management requires careful consideration of the following parameters:
-
Pool prefix length—How large a prefix to use for each pool. Smaller pools result in better overall utilization but might negatively affect session setup rate.
-
Allocation count—Dictates how many pools to allocate during an apportion event. Allocating multiple smaller pools instead of a larger pool improves reclamation efficiency.
-
Apportion and reclamation thresholds—The apportion threshold dictates the minimum number of free addresses to maintain in the pool domain. The reclamation threshold dictates the maximum number of free addresses to maintain in the pool domain before returning pools to Address Pool Manager.
-
Source partition—The source partition determines the set of prefix values that are used to comprise the pools in the domain.
Using the example from above, you can use the following values for creating the domains on the BNG CUPS Controller:
-
Prefix length—/25. A smaller pool size offers better reclamation granularity and fewer surplus free addresses consumed when not in use
-
Allocation count—3. You can expect session setup rates of up to 300 sessions per second. This rate would cause you to burn through a /25 prefix length in under a second. You should allocate 3x/25 pools (approximately 384 addresses) at a time.
-
Apportion threshold—552. The session setup rate is 300 sessions per second. Therefore, when the BNG CUPS Controller first establishes the pool domain, populate it with enough pools to keep up with the maximum call setup rate. Since you are apportioning 3x/25 pools during normal apportioning, set the apportion threshold to 4x/25 (552 addresses).
-
Reclamation threshold—937. You are apportioning 3x/25 addresses during apportionment. Therefore, the reclamation must be at least the value of the apportion threshold, plus one larger than the apportion size (552+384+1=937).
Because the source partition values for UP-example-1 and UP-example-2 differ, the BNG User Plane uses the pool prefixes assigned to the dynamic address pool to create the specific routing policies.
Other items to consider during planning:
-
Whether to install a discard route during pool creation
-
Which route tags to use for discard routes
-
Whether to exclude certain addresses during subscriber address allocation (for example, exclude .0 or .255 addresses)
Configure Juniper BNG CUPS for Use with Address Pool Manager
For BNG CUPS to work with Address Pool Manager, you must perform configurations on the BNG CUPS Controller, the BNG User Planes, and Address Pool Manager. For details, see the following sections:
Configure the BNG CUPS Controller for Use with Address Pool Manager
To configure BNG CUPS Controller for use with Address Pool Manager, perform the following configuration:
- Configure the BNG User Planes for Use with Address Pool Manager
- Configure Address Pool Manager for Use with Juniper BNG CUPS
Configure the BNG User Planes for Use with Address Pool Manager
On the BNG User Planes, this is what happens if you configure
install-discard-routes
in the domain profile: The BNG CUPS
Controller automatically creates a discard route to the BNG User Plane's routing
state. The BNG CUPS Controller associates the route tag value with the prefix
from Address Pool Manager’s partition. You can add the configuration to the BNG
User Planes to import these routes into the exported route set. For example, the
following configuration on BNG User Plane UP-example-1
imports the prefix routes for Address Pool Manager pools into the interior
gateway protocol (IGP).
[edit] User@host# protocols { isis { import apmPools; } } policy-options { policy-statement apmPools { from { tag 410; } then { accept; } } }
Configure Address Pool Manager for Use with Juniper BNG CUPS
To configure Address Pool Manager for use with Juniper BNG CUPS, you must perform the following configuration.
Juniper BNG CUPS and Address Pool Manager Operational Behavior
When the first subscriber logs in from UP-example-1, the BNG User Plane (UP-example-1) receives a framed-pool name of FP-example-1 from the RADIUS server. The framed pool name matches a domain profile, but no domains are created that match the BNG User Plane in the default routing instance. The BNG CUPS Controller coordinates the creation of the domain FP-example-1-UP-example-1-default with Address Pool Manager. Once the domain is created, the BNG CUPS Controller raises apportion alarms until the number of free addresses is above the apportion threshold of 552. Since the BNG CUPS Controller apportions the alarms in sets of three /25 prefixes, the initial pool set for this domain consists of six pools. The pools are FP-example-1-UP-example-1-default and FP-example-1-UP-example-1-default-0000 through FP-example-1-UP-example-1-default-0005.
As logins continue from UP-example-1 and a peak load of 96,000 subscribers is reached on the BNG User Plane (UP-example-1). The number of pools in the domain reaches approximately 755 pools. That total includes 750 /25 pools to satisfy the 96,000 subscribers plus five pools to keep the domain above the apportion threshold. A similar scenario unfolds for UP-example-2.
As subscribers log out, each time the number of free addresses meets or exceeds the reclamation threshold value, the BNG CUPS Controller raises a reclamation alarm and returns a pool to its partition in Address Pool Manager. When all subscribers are logged out, the domain drops back to its initial allocation of six pools.