Dual-Stack Subscriber Sessions
The BNG supports dual-stack for subscriber sessions, whereby an IPv4 address and an IPv6 address can co-exist for the same subscriber.
The figure below shows a deployment model of dual-stack subscriber sessions.
IP Address Assignment for Clients
The following figure shows various IP address assignment options available for IPv6 clients, and the supported local address assignment functions.
The framed-ipv6-address RADIUS attribute can also be used to provide an IP address from the RADIUS server to the subscriber. This address is then advertised through a Stateless Address Auto Configuration - Neighbor Advertisement or Neighbor Discovery (SLAAC - NA or ND) message for both PPPoE and IPoE sessions.
If DHCPv6 is not used for the IPoE sessions, an additional Vendor-Specific Attribute ipv6:ipv6-default-gateway is used to specify the default router.
Sample IPv6 Addressing and Configurations
IPv6 Address Mapping
The following figure shows the sample IPv6 address mapping with prefix-delegation in place, for the dual-stack subscriber. The respective sample CPE configurations and the sample DHCPv6 Server configurations are discussed in subsequent sections.
Sample Configuration for the Client Side of the CPE
This section provides the sample configurations for the client side of the Customer Premises Equipment (CPE).
interface GigabitEthernet0/2 description to switch fa0/15 ip address 192.168.1.1 255.255.255.0 no ip unreachables ip nat inside ip virtual-reassembly duplex full speed 100 media-type rj45 negotiation auto ipv6 address prefix-from-provider ::1:0:0:0:1/64 ipv6 enable
Sample Configuration for the WAN Side of the CPE
This section provides the sample configurations for the WAN side of the Customer Premises Equipment (CPE).
interface FastEthernet2/0.50 encapsulation dot1Q 50 ipv6 address autoconfig default ipv6 enable ipv6 dhcp client pd prefix-from-provider
DHCPv6 Server Configuration
Sample Configuration for the DHCPv6 Server
This section gives the sample configurations for the DHCPv6 Server.
ipv6 unicast-routing ipv6 dhcp pool dhcpv6 prefix-delegation pool dhcpv6-pool1 lifetime 6000 2000 ipv6 route 2001:60:45:28::/64 2005::1 ipv6 route 2001:DB8:1200::/40 2005::1 ipv6 route 200B::/64 2005::1 ipv6 route 2600:80A::9/128 4000::1 ipv6 local pool dhcpv6-pool1 2001:DB8:1200::/40 48
BNG supports only a single IA-NA and IA-PD for the subscribers. Therefore, if the ASR9K is configured as a DHCP server, and if the BNG subscriber sends a DHCPv6 SOLICIT message with more than one IA-NA and IA-PD, then the DHCP ADVERTISEMENT response from the ASR9K fails. And, the subscriber will not get the IPv6 address in such scenarios.
Operation and Call Flow of Dual-Stack Sessions
The ASR9K router considers the IPv4 and IPv6 stacks as a single subscriber. Therefore, only a single Access Request message and a single accounting record are generated for both the stacks. However, in scenarios such as the one where an accounting request is generated, the two stacks are considered as being two separate entities.
Generic Call Flow of Dual-Stack Session
The figure below shows the generic call flow of dual-stack session. The interactions with other servers, such as the DHCP server, are not displayed in this figure.
A single authentication process for the first and the second address-family (AF1 and AF2) is triggered when the first AF1 comes up.
A single Accounting Start message is triggered when the AF1 is set up. The framed-address for the AF1 that is set up, is sent from the AAA server back to the BNG router.
The statistics for the AF that is currently set up (AF1 in this case) is sent through periodic Accounting Interim messages.
The AF2 is set up next, and the statistics for the AF2 is sent through triggered Accounting Interim messages.
The statistics for each AF and the aggregated statistics for both the address-families that are set up are sent by periodic Accounting Interim messages.
Detailed Call Flows - PPPoE Dual-Stack
Scenario 1: SLAAC-Based Address Assignment
The figure below shows the detailed call flow of PPPoE dual-stack, where the address assignment is SLAAC-based.
Scenario 2: DHCPv6-Based Address Assignment
The figure below shows the detailed call flow of PPPoE dual-stack, where the address assignment is DHCPv6-based.
Detailed Call Flows - IPoE Dual-Stack
Scenario 1 - IPv4 Address-Family Starts First
The figure below shows the detailed call flow of IPoE dual-stack, where the IPv4 address-family (AF) starts first.
Scenario 2 - IPv6 Address-Family Starts First
The figure below shows the detailed call flow of IPoE dual-stack, where the IPv6 address-family (AF) starts first.
Sample Topology for Dual-Stack
The figure below shows a sample topology for the dual-stack.
Configuration Examples for Dual-Stack
This section provides configuration examples for a dual-stack.
hostname bng logging console debugging
The RADIUS server is configured with the server listening on the IP address 220.127.116.11 with auth-port on 1645 and accounting-port on 1646.
radius-server host 18.104.22.168 auth-port 1645 acct-port 1646 key 7 010107000A5955 !
The CoA server or policy-server with IP address 22.214.171.124 is configured.
aaa server radius dynamic-author client 126.96.36.199 vrf default server-key 7 03165A0F575D72 ! aaa group server radius RADIUS server 188.8.131.52 auth-port 1645 acct-port 1646 ! aaa accounting service default group radius aaa accounting subscriber default group radius aaa authorization subscriber default group radius aaa authentication subscriber default group radius !
The DHCPv6 address pool is defined locally within the BNG router and the local pool is used for IPv6 address assignment to the IPv6 BNG clients.
pool vrf default ipv6 ipv6_address_pool address-range 2001::2 2001::7dff !
The DHCPv4 server with IP address 184.108.40.206 is deployed externally and this IPv4 address must be reachable from the BNG router. The routing protocols must take care of the reachability of the IP address 220.127.116.11 from the BNG router. The DHCPv4 proxy is configured, thus:
dhcp ipv4 profile IPoEv4 proxy helper-address vrf default 18.104.22.168 giaddr 10.10.10.1
The DHCPv4 proxy is enabled on the bundle sub-interface.
interface Bundle-Ether1.10 proxy profile IPoEv4 !
The DHCPv6 server is configured and the previously-configured DHCPv6 address pool is referred within the DHCPv6 server configuration. The DHCPv6 profile along with the address-pool is configured, thus:
dhcp ipv6 profile IPoEv6 server address-pool ipv6_address_pool !
The DHCPv6 address pool is referred on the bundle sub-interface.
interface Bundle-Ether1.10 server profile IPoEv6 ! interface Bundle-Ether1 bundle maximum-active links 1 !
The bundle sub-interface with the dot1q encapsulation is configured with a single tag. The subscriber traffic from the CPE should come with the single dot1q tag and this VLAN tag must match the VLAN-ID 10 configured under the bundle sub-interface. In Dual-Stack IPoE configuration, the initiator dhcp command is configured under the IPv4 or IPv6 l2-connected configuration mode. The name of the policy-map type control is referred with the service-policy.
interface Bundle-Ether1.10 ipv4 point-to-point ipv4 unnumbered Loopback1 ipv6 enable service-policy type control subscriber pm-src-mac encapsulation dot1q 10 ipsubscriber ipv4 l2-connected initiator dhcp ! ipsubscriber ipv6 l2-connected initiator dhcp ! !
The IPv4 address 10.10.10.1 is the default-gateway IP address for the pool of IPv4 addresses allocated to the dual-stack BNG clients.
interface Loopback1 ipv4 address 10.10.10.1 255.255.255.0 ipv6 enable !
The physical interface GigabitEthernet0/0/0/0 is configured as the bundle interface.
interface GigabitEthernet0/0/0/0 bundle id 1 mode on negotiation auto transceiver permit pid all !
The dual-stack dynamic-template is configured for the dual-stack initiation. The IPv6 enable, IPv4 unnumbered address and IPv4 urpf are configured under the dual-stack template.
dynamic-template type ipsubscriber Dual_stack_IPoE accounting aaa list default type session periodic-interval 5 ipv4 verify unicast source reachable-via rx ipv4 unnumbered Loopback1 ipv6 enable ! !
The class-map is configured for the dual-stack scenario in order to match the DHCPv6 - SOLICIT and DHCPv4 - DISCOVER messages as the first-sign-of-life (FSOL) packets.
class-map type control subscriber match-any dual_stack_class_map match protocol dhcpv4 dhcpv6 end-class-map !
The dual_stack_class_map class-map is referred within the policy-map. The event session-start is matched based on the DHCPv4 or DHCPv6 FSOL and the Dual_stack_IPoE dynamic-template is activated. The subscriber Mac-Address is used for subscriber identification, and this address is authorized with the AAA server.
policy-map type control subscriber pm-src-mac event session-start match-all class type control subscriber dual_stack_class_map do-all 1 activate dynamic-template Dual_stack_IPoE 2 authorize aaa list default identifier source-address-mac password cisco ! ! end-policy-map ! end
Verification Steps for Dual-Stack
This section provides the list of commands that can be used for verifying dual-stack configuration. For details of these commands, see Cisco ASR 9000 Series Aggregation Services Router Broadband Network Gateway Command Reference.
|show subscriber session all||
Displays active IPv4 or IPv6 client sessions.
|show subscriber session all detail||
Displays details of active IPv4 or IPv6 client sessions.
|show dhcp ipv4 proxy binding||
Displays IPoEv4 clients created. It displays the ip-address , mac-address , the interface on which the IPoEv4 clients are created, the vrf-name , and so on.
|show dhcp ipv4 proxy binding detail||
Displays details of IPoEv4 clients created.
|show dhcp ipv6 server binding||
Displays IPv6 address allocated from the DHCPv6 local pool.