IP Address Management

Feature Summary and Revision History

Summary Data

Table 1. Summary Data

Applicable Product(s) or Functional Area

SMF

Applicable Platform(s)

SMI

Feature Default Setting

Enabled – Always-on

Related Changes in this Release

Not Applicable

Related Documentation

Not Applicable

Revision History

Table 2. Revision History

Revision Details

Release

First introduced.

Pre-2020.02.0

Feature Description

IP Address Management (IPAM) is a method of tracking and managing IP addresses of a network. IPAM is one of the core components of the subscriber management system. Traditional IPAM functionalities are insufficient in Cloud-Native network deployments. Hence, IPAM requires additional functionalities to work with the Cloud-Native subscriber management system. The Cloud-Native IPAM system is used in various network functions, such as SMF and PCF.

The IPAM system includes the following functionalities to serve the Cloud Native and Control and User Plane Separation (CUPS) architecture:

  • Centralized IP resource management —Based on the needs of the Internet Service Provider (ISP), the Control Plane (CP) is deployed either on a single (centralized) cluster or multiple (distributed) clusters. For multiple cluster deployments, the IPAM automatically manages the single IP address space across the multiple CPs that are deployed in the distributed environment.

  • IP address-range reservation per user-plane—For subscribers connecting to the Internet core, the User Plane (UP) provides the physical connectivity. The UP uses the summary-routes to advertise subscriber routes to the Internet core. For CPs that are managing multiple UPs, the CP reserves a converged IP subnet to the UPs. In such a scenario, the IPAM splits the available address space into smaller address-ranges and assigns it to different UPs.

  • IP address assignment from pre-reserved address-ranges—When subscribers request for an IP address, the IPAM assigns addresses from the pre-reserved address range of their respective UP.

How it Works

IPAM uses the following sub-modules for the Cloud-Native subscriber management system:

  • IPAM Server—This module manages the complete list of pools and address-space configurations. The IPAM server splits the configured address ranges into smaller address-ranges statically or dynamically to distribute them to IPAM cache modules. The IPAM server is deployed as a centralized entity to serve group of Cloud-Native clusters or can be an integrated entity within a single cluster.

  • IPAM Cache—This module receives the free address-ranges from the IPAM server and allocates the individual IP addresses to the IPAM clients. Usually, the IPAM cache is deployed in a distributed mode running within each cluster to communicate with the co-located or remotely-located IPAM server. The IPAM cache also handles address-range reservation per UP and pool threshold monitoring. The IPAM server and cache modules can run as an integrated mode.

  • IPAM Client—This module handles the request and release of an individual IP address from the IPAM cache for each IP managed end-device. The IPAM client is tightly coupled with a respective network-function.

IPAM Integration in SMF

Feature Description

The IP Address Management (IPAM) is a technique for tracking and managing the IP address space of a network. A core component of the subscriber management system, the IPAM provides all the functionalities necessary for working with the Cloud-Native subscriber management system. Also, the IPAM acts as a generic IP address management system for the different network functions such as the SMF, Policy Control Function (PCF), and so on.

The IPAM is integrated with the SMF in the Application Services layer.

Architecture

This section describes the IPAM integration in the SMF architecture.

IPAM Integration in SMF

The SMF comprises of loosely coupled microservices that enables the SMF to perform session management (session establishment, modification, and release) and other associated functions. The decomposition of these microservices is based on the following three-layered architecture:

  1. Layer 1: Protocol and Load Balancer Services (Stateless)

  2. Layer 2: Application services (Stateless)

  3. Layer 3: Database Services (Stateful)

The IPAM and SMF integration happens in the Application Services layer.

The following describes the SMF and IPAM integration architecture in the Application Services layer.

Figure 1. IPAM Integration in SMF

  • SMF Node-Manager Application – The SMF Node-Manager application takes care of the UPF, ID resource, and IP address management. Therefore, the SMF Node-Manager application integrates IPAM Cache and IPAM client modules. The UPF Manager uses the IPAM Client module for address-range-reservation per UPF.

  • SMF Service Application – The SMF Service application provides PDU session services. During session establishment and termination, the IP addresses are requested and released back. The SMF Service application invokes the IPC to RMGR in Node Manager, which receives (free) the IP from the IPAM module.

  • IPAM Server Application – Based on the deployment model, the IPAM Server application can run as an independent microservice, as a part of the same cluster, or in a remote-cluster. For standalone deployments, the IPAM Servers are an integral part of the IPAM cache.

Components

This section describes the different components of the IPAM system.

IPAM Sub-Modules

The IPAM system includes the following sub-modules:

  • IPAM Server – The IPAM Server module manages the complete list of pools and address-space configuration. It splits the configured address-ranges into smaller address-ranges (statically and dynamically) and distributes it to the IPAM Cache modules. You can deploy the IPAM Server either as a centralized entity to serve a group of cloud native clusters or as an integrated entity within a single cluster.

  • IPAM Cache – The IPAM Cache acquires free address-ranges from the IPAM Server and allocates individual IP addresses to the IPAM clients. Deployed in a distributed mode running within each cluster, the IPAM Cache communicates with co-located and remotely located IPAM Servers. Additionally, the IPAM Cache takes care of the address-range reservation per Data-Plane and pool threshold monitoring.

  • IPAM Client – The IPAM Client module handles the request and release of the individual IP addresses from the IPAM Cache for each IP managed end-device. Based on the use cases, the IPAM Client module caters the needs of specific network functions (such as SMF, PCF, and so on).

How it Works

This section describes the call flows pertaining to the integration of the IPAM in the SMF.

Call Flows

The following call flow depicts the integration of the IPAM in the SMF.

Figure 2. Integration of IPAM in SMF Call Flow

Configuring the IPAM Feature

This section describes how to configure the IPAM in the SMF.

Configuring the IPAM in the SMF involves the following steps:

  1. Configuring IPv4 address ranges.

  2. Configuring IPv6 address ranges.

  3. Configuring IPv6 prefix ranges.

  4. Configuring SMF tags.

  5. Configuring IPv4 threshold.

  6. Configuring IPv6 address range threshold.

  7. Configuring IPv6 prefix range threshold.

  8. Configuring IPv4 address range split.

  9. Configuring IPv6 address and prefix address range split.

  10. Configuring global threshold.

  11. Configuring IPAM source.

Configuring IPv4 Address Ranges

Use the following configuration to configure the IPv4 address ranges.

configure 
   ipam 
      address-pool pool_name 
         vrf-name string 
         ipv4 
            address-range start_ipv4_address end_ipv4_address 
            commit 

NOTES:

  • ipam : Enters the IPAM configuration mode.

  • address -pool pool_name : Configures the address pool configuration. pool_name must be the name of the address pool.

  • vrf-name string : Configures the Virtual routing and forwarding (VRF) name of the pool.

  • ipv4 : Enters the IPv4 mode of the pool.

  • address-range start_ipv4_address end_ipv4_address : Configures the IPv4 range. start_ipv4_address specifies the starting IPv4 address. end_ipv4_address specifies the ending IPv4 address.

The following is a sample configuration:

configure 
   ipam
      address-pool p1
         vrf-name one
         ipv4
            address-range 1.1.1.10 1.1.1.255
            address-range 2.2.2.1 2.2.2.255

Configuring IPv6 Address Ranges

Use the following configuration to configure the IPv6 address ranges:

configure 
   ipam 
      address-pool pool_name 
         vrf-name string 
         ipv6 
            address-range start_ipv6_address end_ipv6_address 
            commit 

NOTES:

  • ipam : Enters the IPAM configuration mode.

  • address -pool pool_name : Configures the address pool configuration. pool_name must be the name of the address pool.

  • vrf-name string : Configures the VRF name of the pool.

  • ipv6 : Enters the IPv6 mode of the pool.

  • address-range start_ipv6_address end_ipv6_address : Configures the IPv6 range. start_ipv6_address specifies the starting IPv6 address. end_ipv6_address specifies the ending IPv6 address.

The following is a sample configuration:

configure
   ipam
      address-pool p1
         vrf-name one
         ipv6
            address-range 1::1 1::1000
            address-range 2::1 2::1000

Configuring IPv6 Prefix Ranges

Use the following configuration to configure the IPv6 prefix ranges:

configure 
   ipam 
      address-pool pool_name 
         vrf-name string 
         ipv6 
            prefix-ranges 
               prefix-range prefix_value prefix-length length 
               commit 

NOTES:

  • ipam : Enters the IPAM configuration mode.

  • address -pool pool_name : Configures the address pool configuration. pool_name must be the name of the address pool.

  • vrf-name string : Configures the VRF name of the pool.

  • ipv6 : Enters the IPv6 mode of the pool.

  • prefix-ranges : Enters the prefix ranges mode.

  • prefix-range prefix_value prefix-length length : Configures the IPv6 prefix range. prefix-range prefix_value specifies the IPv6 prefix range. prefix-length length specifies the IPv6 prefix length.

The following is a sample configuration:

configure
   ipam
      address-pool p3
         vrf-name three
         ipv6
            prefix-ranges
               prefix-range 1:1:: prefix-length 48
               prefix-range 2:1:: prefix-length 48

Configuring SMF Tags

Use the following configuration to configure the SMF tags.

configure 
   ipam 
      address-pool pool_name 
         tags 
            nssai string 
            dnn string 
            serving-area string 
            commit 

NOTES:

  • ipam : Enters the IPAM configuration mode.

  • address -pool pool_name : Configures the address pool configuration. pool_name must be the name of the address pool.

  • tag : Enters the tag section of the pool.

  • nssai string : Specifies the NSSAI value.

  • dnn string : Specifies the DNN value.

  • serving-area string : Specifies the serving-area value.

The following is a sample configuration:

configure
   ipam
      address-pool p1
         tags
            nssai one
            dnn two
            serving-area three

Configuring IPv4 Threshold

Use the following configuration to configure the IPv4 threshold:

configure 
   ipam 
      address-pool pool_name 
         ipv4 
            threshold 
               upper-threshold percentage 
               commit 

NOTES:

  • ipam : Enters the IPAM Configuration mode.

  • address -pool pool_name : Configures the address pool configuration. pool_name must be the name of the address pool.

  • ipv4 : Enters the IPv4 mode of the pool.

  • threshold : Enters the threshold sub-mode.

  • upper-threshold percentage : Specifies the IPv4 upper threshold value in percentage.

The following is a sample configuration:

configure
   ipam
      address-pool p1
         ipv4
            threshold
               upper-threshold 80

Configuring IPv6 Address Range Threshold

Use the following configuration to configure the IPv6 address range threshold.

configure 
   ipam 
      address-pool pool_name 
         ipv6 
            address-ranges 
               threshold 
                  upper-threshold percentage 
                  commit 

NOTES:

  • ipam : Enters the IPAM configuration mode.

  • address -pool pool_name : Configures the address pool configuration. pool_name must be the name of the address pool.

  • ipv6 : Enters the IPv6 mode of the pool.

  • address -ranges : Enters the IPv6 address ranges sub-mode.

  • threshold : Enters the threshold sub-mode.

  • upper-threshold percentage : Specifies the IPv6 upper-threshold value in percentage.

The following is an example configuration:

configure
   ipam
      address-pool p2
         ipv6
            address-ranges
               threshold
                  upper-threshold 75

Configuring IPv6 Prefix-Range Threshold

Use the following configuration to configure the IPv6 prefix-range threshold.

configure 
   ipam 
      address-pool pool_name 
         ipv6 
            prefix-ranges 
               threshold 
                  upper-threshold percentage 
                  commit 

NOTES:

  • ipam : Enters the IPAM configuration mode.

  • address -pool pool_name : Configures the address pool configuration. pool_name must be the name of the address pool.

  • ipv6 : Enters the IPv6 mode of the pool.

  • prefix -ranges : Enters the IPv6 prefix ranges sub-mode.

  • threshold : Enters the threshold sub-mode.

  • upper-threshold percentage : Specifies the IPv6 upper-threshold value in percentage.

The following is an example configuration:

configure
   ipam
      address-pool p3
         ipv6
            prefix-ranges
               threshold
                  upper-threshold 78

Configuring IPv4 Address Range Spilt

Use the following configuration to configure the IPv4 address range spilt.

configure 
   ipam 
      address-pool pool_name 
         ipv4 
            spilt-size per-cache integer 
            spilt-size per-dp integer 
            commit 

NOTES:

  • ipam : Enters the IPAM configuration mode.

  • address -pool pool_name : Configures the address pool configuration. pool_name must be the name of the address pool.

  • ipv4 : Enters the IPv4 mode of the pool.

  • spilt-size per-cache integer : Specifies the size of the IPv4 range to be split for each IPAM cache allocation. The IPAM server consumes this configuration.

  • spilt-size-per-dp integer : Specifies the size of the IPv4 range to be spilt for each Data-Plane (User-Plane) allocation. The IPAM cache consumes this configuration.

The following is a sample configuration:

configure
   ipam
      address-pool p1
         ipv4
            split-size per-cache 1024
            split-size per-dp 256

Configuring IPv6 Address and Prefix Address-Range-Spilt

Use the following configuration to configure the IPv6 address and prefix address range spilt.

configure 
   ipam 
      address-pool pool_name 
         ipv6 
            address-ranges 
               spilt-size per-cache integer 
               spilt-size per-dp integer 
               commit 
            prefix-ranges 
               spilt-size per-cache integer 
               spilt-size per-dp integer 
               commit 

NOTES:

  • ipam : Enters the IPAM configuration mode.

  • address -pool pool_name : Configures the address pool configuration. pool_name must be the name of the address pool.

  • ipv6 : Enters the IPv6 mode of the pool.

  • address-ranges : Enters the IPv6 address-ranges sub-mode.

  • spilt-size per-cache integer : Specifies the size of the IPv6 adress-ranges or prefix-ranges to be split for each IPAM cache allocation. The IPAM server consumes this configuration.

  • spilt-size-per-dp integer : Specifies the size of the IPv6 adress-ranges or prefix-ranges to be spilt for each Data-Plane (User-Plane) allocation. The IPAM cache consumes this configuration.

  • prefix -ranges : Enters the IPv6 prefix ranges sub-mode.

The following is a sample configuration:

configure
   ipam
      address-pool p1
         ipv6
            address-ranges
               split-size per-cache 4096
               split-size per-dp 1024
               !
            prefix-ranges
               split-size per-cache 8192
               split-size per-dp 2048

Configuring Global Threshold

Use the following configuration to configure the global threshold.

configure 
   ipam 
      threshold 
         ipv4-addr percentage 
         ipv6-addr percentage 
         ipv6-prefix percentage 
         commit 

NOTES:

  • ipam : Enters the IPAM Configuration mode.

  • threshold : Enters the threshold sub-mode.

  • ipv4-addr percentage : Specifies the IPv4 threshold value in percentage.

  • ipv6-addr percentage : Specifies the IPv6 threshold value in percentage.

  • ipv6-prefix percentage : Specifies the IPv6 prefix threshold value in percentage.

The following is a sample configuration:

configure
   ipam
      threshold
         ipv4-addr 80
         ipv6-addr 75
         ipv6-prefix 70

Configuring IPAM Source

Use the following configuration to configure the IPAM source.

configure 
   ipam 
      source local 
         source external ipam 
            host ip_address 
            port integer 
            vendor type 
            commit 

NOTES:

  • ipam : Enters the IPAM Configuration mode.

  • source local : Enters the local datastore as the pool source.

  • source external ipam : Enters the external IPAM server as the pool source.

  • host ip_address : Specifies the host name of the external IPAM server.

  • port integer : Specifies the port of the external IPAM server.

  • vendor type : Specifies the vendor type of the external IPAM server.

The following is a sample configuration:

ipam
 source external ipam
  host 1.1.1.1
  port 10000
  vendor cisco

Verifying the IPAM Integration Configuration

This section describes how to verify the IPAM integration in the SMF feature configuration.

Use the show ipam pool command to view the summary of current threshold of each pool.

The following is a sample output of the show ipam pool command.


show ipam pool 
================================================================ 
PoolName   Ipv4Threshold  Ipv6AddrThreshold  Ipv6PrefixThreshold 
================================================================ 
  p1               80%            80%              0% 
  p2               75%            0%               70% 
================================================================ 

Use the show ipam pool pool_name command to view more details of a specific pool name.

The following is a sample output of the show ipam pool pool_name command.


show ipam pool p1 
-------------------------------------------------------- 
Ipv4Addr   [Total/Used/Threshold] = 7680 / 7680 / 80% 
Ipv6Addr   [Total/Used/Threshold] = 512 / 512 / 80% 
Ipv6Prefix [Total/Used/Threshold] = 0 / 0 / 0% 
-------------------------------------------------------- 

Use the show ipam pool_name ipv4-addr command to view the IPv4-address ranges for the given pool-name. Based on the configuration, the address ranges are dynamically split. You can also view whether the address range is free or allocated to a Data Plane (User Plane) using this command.

The following is a sample output of the show ipam pool_name ipv4-addr command.


show ipam pool p1 ipv4-addr 
=========================================== 
StartAddress     EndAddress    AllocContext 
=========================================== 
  1.1.1.0        1.1.3.255     Upf-100 
  1.1.4.0        1.1.7.255     Upf-200 
  1.1.8.0        1.1.10.255    Free 
  2.2.1.0        2.2.3.255     Upf-100 
  2.2.4.0        2.2.7.255     Upf-300 
  2.2.8.0        2.2.10.255    Free 
  3.3.1.0        3.3.3.255     Free 
  3.3.4.0        3.3.7.255     Free 
  3.3.8.0        3.3.10.255    Free 
=========================================== 

Use the show ipam pool pool_name ipv6-perfix command to view the prefix-ranges for the given pool-name. Based on the configuration, the address ranges are dynamically split. You can also view whether the address range is free or allocated to a Data Plane (User Plane) using this command.

The following is a sample output of the show ipam pool pool_name ipv6-perfix command.


show ipam pool p2 ipv6-prefix 
============================================== 
Prefix                          AllocContext 
============================================== 
 aaaa:bbbb:ccc0::/64            Upf-100 
 aaaa:bbbb:ccc1::/64            Free 
 aaaa:bbbb:dd00::/64            Upf-200 
============================================== 

Use the show ipam dp command to view the summary of the current threshold for each Data Plane (User Plane).

The following is a sample output of the show ipam dp command.


show ipam dp 
================================================================ 
DpName     Ipv4Threshold  Ipv6AddrThreshold  Ipv6PrefixThreshold 
================================================================ 
UPF-100           20%             40%               70% 
UPF-200           40%             20%               20% 
================================================================ 

Use the show ipam dp dataplane_name command to view more details of a specific Data Plane (User Plane).

The following is a sample output of the show ipam dp dataplane_name command.


show ipam dp UPF-100 
-------------------------------------------------------- 
Ipv4Addr   [Total/Used/Threshold] = 512 / 100 / 20% 
Ipv6Addr   [Total/Used/Threshold] = 512 / 200 / 40% 
Ipv6Prefix [Total/Used/Threshold] = 512 / 300 / 70% 
-------------------------------------------------------- 

Use the show ipam dp dataplane_name ipv4-addr command to view the IPv4-address ranges assigned to a data plane.

The following is a sample output of the show ipam dp dataplane_name ipv4-addr command.


show ipam dp UPF-100 ipv4-addr 
====================================================== 
StartAddress   EndAddress    AllocContext   Route 
====================================================== 
1.1.1.1        1.1.1.255      Pool-1        1.1.1.0/24 
2.2.1.1        2.2.1.255      Pool-2        2.2.1.0/24 
====================================================== 

Use the show ipam dp dataplane_name ipv6-addr command to view the IPv6-address ranges assigned to a data plane.

The following is a sample output of the show ipam dp dataplane_name ipv6-addr command.


show ipam dp UPF-100 ipv6-addr 
======================================================== 
StartAddress     EndAddress    AllocContext   Route 
======================================================== 
100::1           100::100         Pool-1      100::/120 
00::1            200::100         Pool-2      200::/120 
======================================================== 

Use the show ipam dp dataplane_name ipv6-prefix command to view the IPv6-address ranges assigned to a data plane.

The following is a sample output of the show ipam dp dataplane_name ipv6-prefix command.


show ipam dp UPF-100 ipv6-prefix 
============================================================ 
Prefix                AllocContext      Route 
============================================================ 
aaaa:bbbb:cccc::/64   Pool-1            aaaa:bbbb:cccc::/48 
aaaa:bbbb:dd00::/64   Pool-1            aaaa:bbbb:dd00::/40 
============================================================ 

Static IP Support

Feature Description

IPAM is the core component of the subscriber management system. Traditional IPAM functionalities prove insufficient in the Cloud Native network deployments. Hence, IPAM requires additional functionalities to work with the Cloud Native subscriber management system.

The Static IP Support feature enables the support of static IP on the SMF using IPAM. This feature supports the following functionalities:

  • Supports static pool configuration.

  • Splits static address-ranges into smaller chunks and associates them with the configured UPFs.

  • Enables program routes according to static address-range reservation during UPF association.

  • Enables secondary authentication under the DNN profile.

  • Selects UPF based on reserved address-range and Framed-IP received from the Authentication response.

How it Works

This section provides a brief of how the Static IP Support feature feature works.

The SMF receives a framed-IP address of the subscriber from external AAA servers such as RADIUS. While IPAM is not involved in individual IP address management in this scenario, it still handles the route management and UPF management for static address-ranges.

IPAM splits the ‘static’ address-ranges equally according to number of UPFs present in the SMF configuration. Unlike dynamic IP, IPAM splits all static-IP address-ranges and assigns them for all configured UPFs. IPAM involves and selects an UPF when the external AAA server returns the framed-IP of the subscriber. IPAM looks for the route which includes this static-IP and then selects the UPF where the route is already configured.



Procedure

  1. IPAM splits the static ranges into equal number of address-ranges based on number of configured UPFs.

  2. The UPMGR programs the corresponding static routes on the associated UPFs.

  3. Subscribers get static IP from Radius server authorize response.

  4. SMF service selects the right UPF based on ADDR ranges and UPF map allocation from the Node Manager.

Address-Range Split

Splitting a given address-range into smaller address-ranges is a key functionality of the IPAM server and IPAM cache. The following guidelines determine address-range split:

  1. Size of a split address-range depends upon the ‘configured’ value or the ‘default’ value as per the AFI type.

  2. Size of a split address-range must be a ‘power-of-2’ or at least to the closest of it. That is, it should be able to represent the split range in “subnet/mask” notation such that a route can be added in the Data Plane (User Plane) if required.

  3. ‘Configured’ or ‘default’ address-range-size must be at the ‘power-of-2’.

The address-range must be split into smaller ranges immediately on configuration or initial start-up. This helps in better sorting of address-ranges based on size and faster allocation during actual address-range-allocation requests. The address-range exchange between modules is always in the mentioned size.

Table 3. Examples of IPv4 Address-Range Split

Address-Range

Split-Size (number of addresses per range)

Split-ranges

(* Odd sized ranges)

Route Notation

1.1.1.0 - 1.1.1.255

128

[1] 1.1.1.0 – 1.1.1.127

[2] 1.1.1.128 – 1.1.1.255

[1] 1.1.1.0/25

[2] 1.1.1.128/25

1.1.0.0 – 1.1.10.255

256

[1] 1.1.0.0 – 1.1.0.255

[2] 1.1.1.0 – 1.1.1.255

[3] 1.1.2.0 – 1.1.2.255

...

[n] 1.1.10.0 – 1.1.10.255

[1] 1.1.0.0/24

[2] 1.1.1.0/24

[3] 1.1.2.0/24

...

[n] 1.1.10.0/24

1.1.0.5 – 1.1.2.200

256

[1] 1.1.0.5 – 1.1.0.255 *

[2] 1.1.1.0 – 1.1.1.255

[3] 1.1.2.0 – 1.1.2.200 *

[1] 1.1.0.0/24

[2] 1.1.1.0/24

[3] 1.1.2.0/24

Table 4. Examples of IPv6 Address-Range Split

Address-Range

Split-Size (number of addresses per range)

Split-ranges

(* Odd sized ranges)

Route Notation

1:: - 1::1000

1024

[1] 1:: – 1::3FF

[2] 1::400 – 1::7FF

[3] 1::800 – 1::BFF

[4] 1::C00 – 1::FFF

[1] 1::/118

[2] 1::400/118

[3] 1::800/118

[4] 1::C00/118

1::3 - 1::1DEF

1024

[1] 1::3 – 1::3FF *

[2] 1::400 – 1::7FF

[3] 1::800 – 1::BFF

[n] 1::1C00 – 1::1DEF *

[1] 1::/118

[2] 1::400/118

[3] 1::800/118

[n] 1::1C00/118

Examples of IPv6 Address-Range Split

Prefix split needs two length fields for performing the split.

  • Network length

  • Host length

Prefixes are split between these and a new route is calculated.

Example 1: network-length = 48, prefix-length = 64

Total (64-48) = 16 bits (that is, 65536 prefixes are available for the split)

Example 2: network-length = 32, prefix-length = 56

Total (56-32) = 24 bits (that is, 16 million prefixes available for the split)


Note

For Cloud-Native 5G SMF, the host-length is hard-coded as ‘64’. Only network-length can be configured via the CLI.
Table 5. Examples of IPv6 Address-Range Split

Prefix-Range

Split-Size (number of addresses per range)

Split-ranges

(* Odd sized ranges)

Route Notation

1:2:3::

Nw-len = 48

Host-len = 64

8192

[1]1:2:3:: ... 1:2:3:1fff

[2]1:2:3:2000:: ... 1:2:3:2fff::

[3]1:2:3:3000:: ... 1:2:3:3fff::

...

[1]1:2:3::/51

[2]1:2:3:2000/51

[3]1:2:3:3000/51

...

Call Flows

This section includes the following call flow.

Figure 3. SMF Static IP Call Flow
Figure 4.

This image is not available in preview/cisco.com



Step Description
1

Configures the static-address ranges and UPF list.

2

Splits the static-address ranges into equal number of ranges for UPFs.

3

Enables program routes for the assigned static address-range.

4 Brings up the session.
5

Enables secondary authentication under the DNN profile.

6

The SMF sends the Authentication Request to the RADIUS server.

The RADIUS server sends an Authentication Response with the 'static-ip' of the subscriber. The SMF selects the UPF based on the 'static-ip' and continues with the programming.

7 Completes the subscriber programming.
Limitations

The Static IP Support feature has the following limitations:

  • Change of a pool from dynamic to static and vice-versa is not supported when in system-running mode.

  • Addition or removal of UPF is not supported when in system-running mode.

  • The address-range split must be optimal based on the number of UPFs and number of addresses in the ranges.

    For example:

    • If there are 2 UPFs and 1024 addresses specified in the range, then specify the per-dp-split-size as 512.

    • If there are 3 UPFs and 1024 addresses, then specify the per-dp-split-size as 256.

Configuring Static IP Support

Use the following commands to configure the Static IP Support feature.

configure 
   ipam 
      address-pool pool_name 
         static  
         end 

NOTES:

  • ipam : Enters the IPAM configuration mode.

  • address -pool pool_name : Specifies the name of the address pool to enter the pool configuration. pool_name must be the name of the address pool.

  • static : Enables the static IP mode.

Dual-Stack Static IP Support Through IPAM

Feature Description

The SMF supports dual-stack static IP using IPAM. For dual-stack sessions, the AAA server sends both the IPv4 and IPv6 address prefixes as part of the Access-Accept message. In the SMF-IPAM configuration, both the IPv4 and IPv6 address prefixes are added in the same pool. The IPAM assigns both the IPv4 and IPv6 routes to a single UPF.

During the UPF selection, the Node Manager application uses the UPF for both the IPv4 and IPv6 addresses from the IPAM to handle them accordingly.

How it Works

The SMF supports dual-stack static IP through IPAM in the following ways:

  • Pool to UPF mapping—Based on the number of UPFs available, the IPv4 address-ranges and IPv6 prefix-ranges are split into smaller chunks. Then, the pair (chunk) is configured into the same IPAM pool.

    IPAM assigns all the addresses and prefixes that are configured in one dual-stack pool to a UPF in the manner they are received. The AAA server returns the dual-stack addresses from the same pair. From these addresses, SMF selects one UPF for dual-stack programming.

    The load-balancing of number of addresses and prefixes are managed. IPAM performs only the dual-stack static-pool to UPF mapping.

  • Address-range no-split configuration—IPAM uses the "no-split" configuration to prevent splitting the address-ranges into smaller chunks. This configuration helps to prevent having multiple routes programming for a specific range.

    The following table lists the errors or exceptions and how to handle them:

Table 6. Error and Exception Handling

Error or Exception

Exception Handling

IPv4 UPF and IPv6 UPF are configured incorrectly

  1. Select an active UPF. In case both the UPFs are active, select the UPF with the IPv4 address.

  2. Reset the IP information of the other stack and update the PDU session type accordingly.

IPv4 address is invalid or null

Select the UPF with IPv4 address and update the PDU session type accordingly.

IPv6 prefix is invalid or null

Select the UPF with IPv6 address and update the PDU session-type accordingly.

IPv4 address and IPv6 prefix are invalid

Both the IPv4 address and IPv6 prefix are rejected.

Limitations

The dual-stack static IP support using IPAM feature has the following limitation:

When the system is in running mode, the change in ‘no-split' configuration is not supported.

Configuring Dual-Stack Static IP Support Using IPAM Feature

This section describes how to configure the dual-stack static IP support using IPAM.

Configuring IPAM No-Split

This section describes how to configure the IPAM no-split.


configure 
   ipam 
      address-pool pool_name 
      ipv4 
         split-size no-split 
         exit 
      ipv6 prefix_ranges 
         split-size no-split 
         exit 
      exit 

NOTES:

  • split-size no-split —Prevents the IPv4 address-ranges or IPv6 prefix-ranges from splitting into smaller chunks.

IPAM Offline Mode Support

Feature Description

The SMF supports the addition of a dynamic pool, IPv4, or IPv6 address-range to a dynamic pool by default. The new chunks are added to the respective tags, such as DNN, and are assigned from the same pool.

To delete a dynamic pool or an IPv4 or IPv6 address-range from a dynamic pool:

  1. Configure the pool or address-range as offline. The IPAM then stops assigning addresses from the respective pool or address-range.

  2. Use the following clear-subscriber CLI commands to delete the subscribers based on respective pool or address range that are configured to offline mode:

    • clear subscriber ipv4-pool pool_name

    • clear subscriber ipv4-range pool_name/start_of_range

    • clear subscriber ipv6-pool pool_name

    • clear subscriber ipv6-range pool_name/start_of_range

  3. Use the following cdl show-sub CLI commands and wait until all the subscribers are deleted:

    • cdl show sessions count summary filter { key ipv4-pool: pool_name condition match }

    • cdl show sessions count summary filter { key ipv4-range: pool_name/start_of_range condition match }

    • cdl show sessions count summary filter { key ipv6-pool: pool_name condition match }

    • cdl show sessions count summary filter { key ipv6-range: pool_name/start_of_range condition match }

  4. After all the subscribers are deleted, delete the pool or address-range from the IPAM configuration.

Configuring the IPAM Offline Mode

This section describes how to configure the IPAM offline feature for pool, IPv4 address-range, and IPv6 prefix-ranges.

Configuring Pool to Offline Mode

Use the following command to configure the entire pool to offline mode.


configure 
   ipam 
      address-pool pool_name 
         offline 
         ... 
         exit 
      exit 

NOTES:

  • address-pool pool_name —Specifies the name of the pool to enter the pool configuration. pool_name must be the name of the address pool.

  • offline —Configures the pool to offline mode.

Configuring IPv4 Address-Range to Offline Mode

Use the following command to configure the IPv4 address-range to offline mode.


configure 
   ipam 
      address-pool pool_name 
      vrf-name vrf_name_value 
         ip4 
            address-range start_ipv4_address end_ipv4_address offline 
            address-range start_ipv4_address end_ipv4_address 
         ! 
       ! 
     ! 

NOTES:

  • address-pool pool_name —Specifies the name of the pool to enter the pool configuration. pool_name must be the name of the address pool.

  • ipv4 —Enters the IPv4 mode.

  • address-range start_ipv4_address end_ipv4_address —Specifies the IP addresses for the start and end IPv4 address-range.

  • offline —Configures the selected address-range to offline mode.

Configuring IPv6 Prefix-Ranges to Offline Mode

Use the following commands to configure IPv6 prefix-range to offline mode.


configure 
   ipam 
      address-pool pool_name 
      vrf-name vrf_name_value 
        ipv6 
              prefix-ranges 
               prefix-rangeprefix_value length length_valueoffline 
                  prefix-rangeprefix_value length length_value 
                ! 
             ! 
         ! 
    ! 

NOTES:

  • address-pool pool_name —Specifies the name of the pool to enter the pool configuration. pool_name must be the name of the address pool.

  • ipv6 —Enters the IPv6 mode.

  • prefix-ranges —Enters the prefix-ranges mode.

  • prefix-range prefix_value length length_value —Specifies the prefix-range and prefix-length of the IPv6 prefix-range.

  • offline —Configures the selected address-range to offline mode.

IPAM Redundancy Support Per UPF

Feature Description

The SMF supports IPAM redundancy and load-balancing for each UPF. The IPAM running in the Node Manager microservice has two IPAM instances that are associated to each UPF. When one IPAM instance is inactive, the other IPAM instance manages the address allocation requests for the UPF.

The IPAM redundancy support per UPF feature supports the following functionality:

How it Works

This section provides a brief of how the IPAM redundancy support per UPF feature works.

  • Peer Selection—The Node Manager peer is selected during the UPF association.

  • UPF Registration with Peer IPAM—IPAM is notified with the instance ID of the peer for the UPF during the registration of the UPF call. IPAM allocates routers from the local data for the specific DNN and checks if the peer IPAM instance is in active or inactive state.

    If the peer IPAM instance is active, a REST call is sent to it to register to the same UPF in the local instance and to receive the routes as response.

    If the peer IPAM instance is inactive, the local instance takes over the IPAM context of the remote instance. Then, the local instance registers to the UPF, receives the routes, and keeps the data back in the cache-pod. After the peer instance is active, it restores the same data from the cache-pod.

    Routes from both the instances are sent to UPF for load-balanced address allocations from both the instances.

  • Address Allocation in Load-Balanced Model—As one UPF is registered to two IPAM servers, SMF sends the address allocation requests to any peer that is load-balanced. Respective IPAM instances assign new addresses from their local address bitmap. If one peer instance is inactive, the other peer instance handles all the requests.

  • Address-Release Request Handling—In IPAM, the Address Release request is sent to the instance that had allocated the IP the first time. If that peer is inactive, the Address Release request is sent to the peer IPAM.

    The IPAM instance that receives the address releases for remote instances, keeps buffering these instances locally and updates the cache-pod periodically. After the remote peers are active, they handle the buffered address-release requests.

  • Release of the UPF—When a peer IPAM is active during the release of a UPF, a REST call is sent to clear the data. If the peer IPAM is inactive, the existing IPAM instance takes over the operational data of the remote IPAM, clears the UPF information, and updates the cache-pod.

IPAM Quarantine Timer Support

Feature Description

The IPAM Quarantine Timer Support feature supports the IPAM quarantine timer for the IP pool address. This feature keeps the released IP address busy until the quarantine timer expires to prevent the reuse of that IP address. Each IP pool must be configured with a timer value. This value determines the duration of a recently released address to be in the quarantine state before it is available for allocation. After the timer expires, the IP address is available in the list of free addresses for allocation by the subscriber. A released IP address with no address quarantine timer is considered to be in use for allocation. If a subscriber attempts to reconnect when the address quarantine timer is armed even if it is the same subscriber ID, the subscriber does not receive the same IP address.

Configuring the IPAM Quarantine Timer Support Feature

This section describes how to configure the IPAM quarantine timer support feature.

Configuring IPAM Quarantine Timer

This section describes how to configure the IPAM quarantine timer.


configure 
   ipam 
      address-pool pool_name 
         address-quarantine-timer quarantine_timer_value 
         vrf-name vrf_name_value 
         ip4 
            address-range start_ipv4_address end_ipv4_address 
            address-range start_ipv4_address end_ipv4_address 
         ! 
       ! 
     ! 

NOTES:

  • ipam —Enter the IPAM configuration.

  • address-pool pool_name —Specifies the name of the pool to enter the pool configuration. pool_name must be the name of the address pool.

  • address-quarantine-timer quarantine_timer_value —Specifies the value of the quarantine timer in seconds. The default value is 4.

  • vrf-name vrf_name_value —Specifies the name of the VPN routing and forwarding (VRF) for the pool.

  • ipv4 —Enters the IPv4 mode.

  • address-range start_ipv4_address end_ipv4_address —Specifies the IP addresses for start and end IPv4 address-range.

show ipam pool

Field

Description

PoolName

Name of the Address Pool.

Ipv4Utilization

Utilization percentage for IPv4 address for this pool.

Ipv6AddrUtilization

Utilization percentage for IPv6 address for this pool.

Ipv6PrefixUtilization

Utilization percentage for IPv6 prefix address for this pool.

show ipam pool <pool-name>

Field

Description

Ipv4Addr [Total/Used/Utilization]

Total IPv4 address available(configured for this pool) / Number of used address / Utilization percentage for IPv4 address.

Ipv6Addr [Total/Used/Utilization]

Total IPv6 address available(configured for this pool) / Number of used address / Utilization percentage for IPv6 address.

Ipv6Prefix [Total/Used/Utilization]

Total IPv6 prefix address available(configured for this pool) / Number of used address / Utilization percentage for IPv6 prefix

show ipam pool <pool-name> ipv4-addr

Field

Description

StartAddress

Start address of the range.

EndAddress

End address of the range.

AllocContext

Name of data plane to which this address range is allocated.

Flag

Flag Indicate weather pool is Static or if it is offline.

show ipam pool <pool-name> ipv6-addr

Field

Description

StartAddress

Start address of the range.

EndAddress

End address of the range.

AllocContext

Name of data plane to which this address range is allocated.

Flag

Flag Indicate weather pool is Static or if it is offline.

show ipam pool <pool-name> ipv6-prefix

Field

Description

StartAddress

Start address of the range.

EndAddress

End address of the range.

AllocContext

Name of data plane this address range is allocated.

Flag

Flag Indicates whether pool is Static or if it is offline, S(Static) and O(Offline).

show ipam dp

Field

Description

DpName

Name of the data plane which is registered.

Ipv4Utilization

Utilization percentage for IPv4 by this data plane.

Ipv6AddrUtilization

Utilization percentage for Ipv6 address by this data plane.

Ipv6PrefixUtilization

Utilization percentage for Ipv6 prefix by this data plane.

show ipam dp <dataplane-name>

Field

Description

Ipv4Addr [Total/Used/Utilization]

Total IPv4 address available(configured for this data plane) / Number of used address / Utilization percentage for IPv4.

Ipv6Addr [Total/Used/Utilization]

Total IPv6 address available(configured for this data plane) / Number of used address / Utilization percentage for IPv6.

Ipv6Prefix [Total/Used/Utilization]

Total IPv6 prefix address available(configured for this data plane) / Number of used address / Utilization percentage for IPv6 prefix.

show ipam dp <dataplane-name> ipv4-address

Field

Description

StartAddress

Start address of the range.

EndAddress

End address of the range.

Route

Route allocated for this data plane.

N/P

Display the NodeMgr instance IDs from which it received routes Flag Indication S(Static) and O(Offline).

show ipam dp <dataplane-name> ipv6-addr

Field

Description

StartAddress

Start address of the range.

EndAddress

End address of the range.

AllocContext

Name of pool to which this address range belongs.

Route

Route allocated for this data plane.

N/P

Display the NodeMgr instance IDs from which it received routes.

Flag

Flag Indicate whether pool is Static or if it is offline, Flag Indication S(Static) and O(Offline).

show ipam dp <dataplane-name> ipv6-prefix

Field

Description

StartAddress

Start address of the range.

EndAddress

End address of the range.

AllocContext

Name of pool to which this address range belongs.

Route

Route that is allocated for this data plane.

N/P

Displays the NodeMgr instance IDs from which it received routes Indication, N(Native InstId) and P(Peer InstId).

Flag

Flag Indicate weather pool is Static or if it offline Flag Indication, S(Static) and O(Offline).

show ipam

Field

Description

PoolName

Displays Ipv4Utilization, Ipv6AddrUtilization, and Ipv6PrefixUtilization.

DpName

Displays Ipv4Utilization, Ipv6AddrUtlization, and Ipv6PrefixUtlization.