Configure cnBNG User Plane
Before you begin:
You must follow these guidelines for configuring cnBNG user plane:
-
You must perform a complete reimage followed by a reboot of the router if you are switching between physical BNG to cnBNG, or the other way around.
-
Ensure that the cnBNG package is installed and activated on the user plane. See the Installing Cloud Native BNG User Plane Packages chapter for detailed procedure.
-
The system does not support the removal of configurations while active sessions are present. You must delete all active sessions and dissociate the CP-UP connection prior to any configuration change or commit replace procedure.
Configuration Procedure
You must perform the following tasks for the UP to spawn the NAL process, to establish connection with the CP, and to provision the subscriber requests.
Configure Basic User Plane Settings
The basic user plane configuration for cnBNG involves these high-level tasks:
-
Configuring the server endpoints of CP to which UP can send PFCP or GTP-U messages to enable cnBNG on the router.
-
Configuring a loopback interface for each VRF.
-
Configuring a route tag for subscriber summary routes.
-
Configuring the access-interface to enable IPoE and PPPoE subscribers.
The cnBNG endpoint configurations on the UP are delivered to the cnBNG SPA component for initiating connection with the CP.
Configuration Procedure
This section describes the steps for the basic user plane configuration, which include certain mandatory and optional configurations.
Mandatory Configurations:
-
Specifying a unique name for the UP-server instance.
-
Specifying the details of the UP server (such as IP address, GTP port, and PFCP port) to which the CP can send PFCP or GTP-U messages.
-
Specifying the details of CP server to which the UP can send PFCP or GTP-U messages.
-
Specifying the retry count for CP-UP association.
-
Enabling secondary address programming.
-
Specifying a name for the auto-loopback VRF.
-
Configuring a loopback interface to associate with the above VRF.
-
Specifying a primary address for the loopback interface.
Optional Configuration:
-
Configuring a route summary tag for the routes to add in the routing table
Configuration Example
Configuration example with IPv4 transport.
Router#configure
Router(config)#cnbng-nal location 0/RSP0/CPU0
Router(config-cnbng-nal-local)#hostidentifier asr9k-1
Router(config-cnbng-nal-local)#cp-server primary ipv4 198.51.100.1
Router(config-cnbng-nal-local)#up-server ipv4 192.0.2.1 gtp-port 15002 pfcp-port 15003 vrf default
Router(config-cnbng-nal-local)#secondary-address-update-enable
Router(config-cnbng-nal-local)#cp-association retry-count 10
Router(config—cnbng-nal-local)#auto-loopback vrf test
Router(config—cnbng-nal-local-auto-loopback-vrf)#interface Loopback2
Router(config—cnbng-nal-local-auto-loopback-vrf-int)#primary-address 127.0.0.1
Router(config—cnbng-nal-local-auto-loopback-vrf-int)#exit
Router(config—cnbng-nal-local-auto-loopback-vrf)#exit
/* Auto-loopback configuration for default VRF */
Router(config—cnbng-nal-local)#auto-loopback vrf default
Router(config—cnbng-nal-local-auto-loopback-vrf)#interface Loopback1
Router(config—cnbng-nal-local-auto-loopback-vrf-int)#primary-address 10.0.0.1
Router(config—cnbng-nal-local-auto-loopback-vrf-int)#exit
Router(config—cnbng-nal-local-auto-loopback-vrf)#exit
Router(config-cnbng-nal-local)#route-summary tag 4
Router(config-cnbng-nal-local)#commit
Running Configuration
Router#show running-config cnbng-nal location 0/RSP0/CPU0
cnbng-nal location 0/RSP0/CPU0
hostidentifier asr9k-1
up-server ipv4 192.0.2.1 vrf default
gtp-port 15002
pfcp-port 15003
cp-server primary ipv4 198.51.100.1
secondary-address-update-enable
cp-association retry-count 10
auto-loopback vrf test
interface Loopback2
primary-address 127.0.0.1
!
!
auto-loopback vrf default
interface Loopback1
primary-address 10.0.0.1
!
!
route-summary tag 4
!
Configure Access-Interface
This section describes how to configure the access-interface and to enable PPPoE on the cnBNG user plane.
Configuration Example
Router#configure
Router(config)#interface Bundle-Ether1.1
Router(config-subif)#ipv4 point-to-point
Router(config-subif)#ipv4 unnumbered Loopback1
Router(config-subif)#ipv6 enable
Router(config-subif)#encapsulation dot1q 1
Router(config-subif)#ipsubscriber
Router(config-cnbng-nal-ipsub)#ipv4 l2-connected
Router(config-cnbng-nal-ipsub-l2conn)#initiator dhcp
Router(config-cnbng-nal-ipsub-l2conn)#exit
Router(config-cnbng-nal-ipsub)#ipv6 l2-connected
Router(config-cnbng-nal-ipsub-ipv6-l2conn)#initiator dhcp
Router(config-cnbng-nal-ipsub-ipv6-l2conn)#exit
Router(config-cnbng-nal-ipsub)#exit
/* Enable PPPoE */
Router(config-subif)#pppoe enable
Router(config-subif)#commit
Running Configuration
Router#show running-config interface be1.1
interface Bundle-Ether1.1
ipv4 point-to-point
ipv4 unnumbered Loopback1
ipv6 enable
encapsulation dot1q 1
ipsubscriber
ipv4 l2-connected
initiator dhcp
!
ipv6 l2-connected
initiator dhcp
!
!
pppoe enable
!
Configure Loopback Interface
This section describes how to configure the loopback interface for cnBNG user plane.
Note |
You must not configure any IP address under loopback interface. |
Configuration Example
Router#configure
Router(config)#interface loopback 2
Router(config-if)#ipv6 enable
Router(config-if)#commit
Running Configuration
Router#show running-config interface loopback 2
interface Loopback2
ipv6 enable
!
Configure DHCP
This section describes the steps to configure DHCP for cnBNG BNG user plane.
The basic DHCP configurations include these steps:
-
Creating a cnBNG profile
-
Assigning the cnBNG profile to access-interfaces
Configuration Example
Router(config)#dhcp ipv4
/* Create a cnBNG profile */
Router(config-dhcpv4)#profile cnbng_1 cnbng
Router(config-dhcpv4-cnbng-profile)#exit
/* Assign the cnBNG profile to access-interfaces */
Router(config-dhcpv4)#interface bundle-Ether 1.1 cnbng profile cnbng_1
Router(config-dhcpv4)#interface bundle-Ether 2.1 cnbng profile cnbng_1
Router(config-dhcpv4)#commit
Similarly, you can configure the DHCP IPv6 profiles.
Running Configuration
Router#show run dhcp ipv4
Wed Oct 14 16:48:56.814 UTC
dhcp ipv4
profile cnbng_1 cnbng
!
interface Bundle-Ether1.1 cnbng profile cnbng_1
interface Bundle-Ether2.1 cnbng profile cnbng_1
!
Router#show run dhcp ipv6
Wed Oct 14 16:49:19.095 UTC
dhcp ipv6
profile cnbng_1 cnbng
!
interface Bundle-Ether1.1 cnbng profile cnbng_1
interface Bundle-Ether2.1 cnbng profile cnbng_1
!
Configure Subscriber Gateway Address and Subnet Route
Feature Name |
Release Information |
Feature Description |
---|---|---|
Disable Notifications for Dynamic Programming of Subscriber Gateway Address |
Release 7.4.2 |
This feature allows you to disable the notifications exchanged internally between software components when the user plane (UP) of a cloud-native BNG (cnBNG) network programs the gateway address for its subscriber. It prevents excessive notifications when many active subscribers are on the UP, thus reducing the overhead on UP resources. The feature introduces the following command: |
In cnBNG, the IP address management is more dynamic. Hence, the loopback interface for IPoE or PPPoE subscribers isn’t provisioned in the user profile of the subscriber with static configuration. cnBNG user plane selects the loopback based on the subnet allocated to a loopback dynamically at cnBNG user plane.
Note |
For every VRF, one loopback must be present on the UP. |
Consider this example,
On RSP0:
Tue Jul 28 05:55:13.015 UTC
cnbng-nal location 0/RSP0/CPU0
hostidentifier asr9k-1
up-server ipv4 192.0.2.1 vrf default
cp-server primary ipv4 198.51.100.1
auto-loopback vrf default
interface Loopback1
primary-address 10.0.0.1
!
!
On RSP1:
Tue Jul 28 05:56:13.015 UTC
cnbng-nal location 0/RSP1/CPU0
hostidentifier asr9k-1
up-server ipv4 192.0.2.1 vrf default
cp-server primary ipv4 198.51.100.1
auto-loopback vrf default
interface Loopback1
primary-address 10.0.0.1
!
!
In this example, the CP assigns 10.11.12.0/24 as subnet, and 10.11.12.1/32 as gateway address to subscribers under the default VRF. This gateway address serves as the DHCPv4 server address for DHCPv4 OFFER or ACK messages. The cnbng-nal process uses Operations Center (OC) to configure this gateway address as secondary IP address on the loopback and route provision APIs to program the entry in the L3 routing table.
Note |
The system supports a maximum of 32 secondary IP addresses under an interface. |
Router#show ipv4 interface loopback 1
Tue Jul 28 05:29:58.741 UTC
Loopback1 is Up, ipv4 protocol is Up
Vrf is default (vrfid 0x60000000)
Internet address is 10.0.0.1/32
Secondary address 10.11.12.1/32
Router#show route vrf all ipv4 subscriber
A 10.11.12.0/24 [1/0] via 0.0.0.0, 00:10:29
Note |
The dynamic programming of the subnet (secondary gateway) under the loopback causes a major churn on the UP if large scale of active subscribers is present on the node. Hence, the secondary address programming is disabled, by default. |
Enable Secondary Address Programming
It’s mandatory to enable the secondary address programming on cnBNG user plane. To enable that, use the secondary-address-update enable command under the cnbng-nal configuration mode.
Configuration Example
Router#configure
Router(config)#cnbng-nal location 0/RSP0/CPU0
Router(config-cnbng-nal)#secondary-address-update enable
Router(config-cnbng-nal)#commit
Running Configuration
Router#show running-config cnbng-nal location 0/RSP0/CPU0
cnbng-nal location 0/RSP0/CPU0
secondary-address-update enable
!
Note |
From Release 7.4.2 onwards, you can disable internal notifications on the UP while it programs the secondary address on the loopback interface by configuring the command disable-secondary-address-notification . |
Disable Notifications for Dynamic Programming of Subscriber Gateway Address
In a cnBNG network, the CP assigns the gateway address for each subscriber. The UP dynamically programs gateway address assigned to each subscriber as a secondary IP address on its loopback interface. During this configuration, UP internally exchanges notification messages between various software components. The more the number of active subscribers on the UP, the more the notifications. To preserve valuable time and resources of the UP, you can disable notifications using the command disable-secondary-address-notification in the cnbng-nal-local config mode.
Configuration Example
Router#configure
Router(config)#cnbng-nal location 0/RSP0/CPU0
Router(config-cnbng-nal-local)#disable-secondary-address-notification
Router(config-cnbng-nal-local)#commit
Running Configuration
The following running configuration on cnBNG UP includes basic UP configuration as well:
Router#show running-config cnbng-nal location 0/RSP0/CPU0
cnbng-nal location 0/1/CPU0
hostidentifier RTR1
auto-loopback vrf test
interface Loopback1
primary-address 10.1.1.1
!
!
auto-loopback vrf default
interface Loopback0
primary-address 10.30.30.1
!
!
up-server ipv4 10.11.11.1 gtp-port 15002 pfcp-port 15003 vrf default
cp-server primary ipv4 10.11.11.2
enable-test-server
disconnect-history file-logging-enable
secondary-address-update enable
disable-secondary-address-notification
route-summary tag 111
cp-association retry-count 5
!
Configure Route Summary
This section describes the steps to configure route summary for the cnBNG user plane.
The NAL handles the following routes:
-
Individual subscriber routes
-
Summary routes for subscriber pool subnet
The subscriber routes are part of the subscriber provisioning message, which includes:
-
WAN IP address (/32 or /128 subnet)
-
LAN IP (prefix delegation)
The summary routes are for the subscriber pool subnet which are exported to the core network to download traffic towards the subscriber. On physical BNG, the subscriber pool subnets were configured as static routes and redistributed through BGP or IGP. With cnBNG and auto-loopback selection, these subnets for the subscribers are added dynamically to the loopback. Every time a new subscriber pool subnet is added to the loopback, the same is added to the RIB with the tag that is provided by the CP. If tag is ‘0’, the NAL uses the tag configured under the cnbng-nal. Routes with this tag can be exported to the core using the Routing Protocol for Low-Power and Lossy Networks (RPLs).
To configure route summary, use the route-summary command under the cnbng-nal configuration mode.
Configuration Example
Router#configure
Router(config)#cnbng-nal location 0/RSP0/CPU0
Router(config-cnbng-nal)#route-summary tag 10
Router(config-cnbng-nal)#commit
Running Configuration
Router#show running-config cnbng-nal location 0/RSP0/CPU0
cnbng-nal location 0/RSP0/CPU0
route-summary tag 10
!
After the first subnet is installed on NAL, the following routes are added to the system:
A 10.11.12.0/24 [1/0] via 0.0.0.0, 0d01h
Export Routes to Core Network
This section describes how to export routes to core network as part of enabling cnBNG user plane functionality.
Configuration Example
Router#configure
Router(config)#route-policy test-policy-cnbng
Router(config-rpl)#if tag eq 10 then
Router(config-rpl-if)#set community (123:100)
Router(config-rpl-if)#done
Router(config-rpl-if)#endif
Router(config-rpl)#end-policy
Router(config)#commit
Router(config)#router ospf 10
Router(config-ospf)#vrf test-vrf-cnbng
Router(config-ospf-vrf)#redistribute subscriber route-policy test-policy-cnbng
Router(config-ospf-vrf)#commit
Running Configuration
Router#show running-config route-policy test-policy-cnbng
route-policy test-policy-cnbng
if tag eq 10 then
set community (123:100)
done
endif
end-policy
!
Router#show running-config router ospf
router ospf 10
vrf test-vrf-cnbng
redistribute subscriber route-policy test-policy-cnbng
!
Configure ARP Scale Mode
This section describes the steps to configure ARP scale mode for the cloud-native BNG user plane.
To disable interface entry creation by ARP for each subscriber interface on the data plane (line cards), you must enable ARP scale mode for the subscriber using the arp scale-mode-enable command in subscriber configuration mode.
Configuration Example
Router#configure
Router(config)#subscriber
Router(config-subscriber)#arp scale-mode-enable
Router(config-subscriber)#commit
Running Configuration
Router#show running-config subscriber
Sat Aug 22 06:36:21.422 UTC
subscriber
arp scale-mode-enable
!
Configure Cloud Native BNG over Pseudowire Headend
Feature Name |
Release Information |
Feature Description |
---|---|---|
Establishing Cloud Native BNG Sessions over Pseudowire Headend (PWHE) |
Release 7.4.2 |
This feature establishes Cloud Native BNG subscriber sessions on PWHE interfaces. PWHE enables an easy and scalable mechanism for tunneling cnBNG traffic into a common IP, MPLS, or L2 network. |
Cloud Native BNG provides subscriber support over Pseudowire Headend (PWHE). PWHE provides L3 connectivity to customer edge nodes through a pseudowire connection. PWHE terminates the L2VPN circuits that exist between the access-provide edge (A-PE) nodes, to a virtual interface, and performs routing on the native IP packet. Each virtual interface can use one or more physical interfaces towards the access cloud to reach customer Router through the A-PE nodes.
This figure shows a sample topology for Cloud Native BNG over Pseudowire Headend:
Restrictions
You can not configure eight ECMP links on the same PE device.
Configuration Example
This section provides the sample configurations for BNG over Pseudowire Headend:
The following is the sample configuration to allow IPOE or PPPOE subsciber to bring up from the PWHE access interface on the cnBNG:
Router#configure
Router(config)#interface PW-Ether100.102
Router(config-subif)#ipv4 unnumbered Loopback100
Router(config-subif)#ipv6 enable
Router(config-subif)#load-interval 30
Router(config-subif)#ipsubscriber
Router(config-cnbng-nal-ipsub)#ipv4 l2-connected
Router(config-cnbng-nal-ipsub-l2conn)#initiator dhcp
Router(config-cnbng-nal-ipsub-l2conn)#exit
Router(config-cnbng-nal-ipsub)#ipv6 l2-connected
Router(config-cnbng-nal-ipsub-ipv6-l2conn)#initiator dhcp
Router(config-cnbng-nal-ipsub-ipv6-l2conn)#exit
Router(config-cnbng-nal-ipsub)#exit
Router(config-subif)#pppoe enable
Router(config-subif)#encapsulation ambiguous dot1q any second-dot1q 102
Router(config-subif)#commit
This example shows the configuration of DHCPv4 on PWHE interfaces:
Router#configure
Router(config)#dhcp ipv4
Router(config-dhcpv4)#profile cn4 cnbng
Router(config-dhcpv4-cnbng-profile)#exit
Router(config-dhcpv4)#interface PW-Ether100.102 cnbng profile cn4
Router(config-dhcpv4)#interface PW-Ether100.103 cnbng profile cn4
Router(config-dhcpv4)#interface PW-Ether100.104 cnbng profile cn4
Router(config-dhcpv4)#commit
This example shows the configuration of DHCPv6 on PWHE interface:
Router#configure
Router(config)#dhcp ipv6
Router(config-dhcpv6)#profile cn4 cnbng
Router(config-dhcpv6-cnbng-profile)#exit
Router(config-dhcpv6)#interface PW-Ether100.102 cnbng profile cn6
Router(config-dhcpv6)#interface PW-Ether100.103 cnbng profile cn6
Router(config-dhcpv6)#commit
Running Configuration
The following example displays the running configuration of pw-ether interface.
Router#show running-config interface PW-Ether 100.102
Thu Feb 3 11:33:58.450 IST
interface PW-Ether100.102
ipv4 unnumbered Loopback100
ipv6 enable
load-interval 30
ipsubscriber
ipv4 l2-connected
initiator dhcp
!
ipv6 l2-connected
initiator dhcp
!
!
pppoe enable
encapsulation ambiguous dot1q any second-dot1q 102
!
Configure DHCPv4 on PWHE interface:
Router#show run dhcp ipv4
Thu Feb 3 11:55:01.903 IST
dhcp ipv4
profile cn4 cnbng
!
interface PW-Ether100.102 cnbng profile cn4
interface PW-Ether100.103 cnbng profile cn4
interface PW-Ether100.104 cnbng profile cn4
!
Configure DHCPv6 on PWHE interface:
Router#show run dhcp ipv6
Thu Feb 3 11:55:07.906 IST
dhcp ipv6
profile cn6 cnbng
!
interface PW-Ether100.102 cnbng profile cn6
interface PW-Ether100.103 cnbng profile cn6
!