Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Example: Configuring a Dual Stack That Uses DHCPv6 IA_NA and DHCPv6 Prefix Delegation over PPPoE

This example uses DHCPv6 IA_NA and DHCPv6 prefix delegation in your subscriber access network as follows:

  • DHCPv6 IA_NA is used to assign a global IPv6 address on the WAN link. The address can come from a local pool or AAA RADIUS.

  • DHCPv6 prefix delegation is used for host device addressing. The delegated prefix can come from a local pool or from AAA RADIUS. The CPE uses the delegated prefix for subscriber addressing. The CPE can use NDRA or DHCPv6 to allocate IPv6 addresses on the LAN.

Requirements

This example uses the following hardware and software components:

  • MX Series 3D Universal Edge Router

  • Junos OS Release 11.4 or later

Note:

This configuration example has been tested using the software release listed and is assumed to work on all later releases.

Overview

This design uses DHCPv6 IA_NA and DHCPv6 prefix delegation in your subscriber access network as follows:

  • The access network is PPPoE.

  • DHCPv6 IA_NA is used to assign a global IPv6 address on the WAN link. The address comes from a local pool that is specified using AAA RADIUS.

  • DHCPv6 prefix delegation is used for subscriber LAN addressing. It uses a delegated prefix from a local pool that is specified by AAA RADIUS.

  • DHCPv4 is used for subscriber LAN addressing.

  • DHCPv6 subscriber sessions are layered over an underlying PPPoE subscriber session.

Topology

Figure 1: PPPoE Subscriber Access Network with DHCPv6 IA_NA and DHCPv6 Prefix DelegationPPPoE Subscriber Access Network with DHCPv6 IA_NA and DHCPv6 Prefix Delegation

Table 1 describes the configuration components used in this example.

Table 1: Configuration Components Used in Dual Stack with DHCPv6 IA_NA and DHCPv6 Prefix Delegation

Configuration Component

Component Name

Purpose

Dynamic profile

pppoe-subscriber-profile

Profile that creates a PPPoE logical interface when the subscriber logs in.

Interfaces

ge-0/2/5

Interface used for communication with the RADIUS server.

ge-0/3/0

Underlying Ethernet interface.

demux0

VLAN demux interface that runs over the underlying Ethernet interface.

lo0

Loopback interface for use in the access network. The loopback interface is automatically used for unnumbered interfaces.

Address-assignment pools

pool v4-pool

Pool that provides IPv4 addresses for the subscriber LAN.

pool v6-ia-na-pool

Pool that provides a global IPv6 address to the CPE WAN link.

pool v6-pd-pool

Pool that provides a pool of prefixes that are delegated to the CPE and used for assigning IPv6 global addresses on the subscriber LAN.

Configuration

Configuring a DHCPv6 Local Server for DHCPv6 over PPPoE

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, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Step-by-Step Procedure

To layer DHCPv6 above the PPPoE IPv6 family (inet6), associate DHCPv6 with the PPPoE interfaces by adding the PPPoE interfaces to the DHCPv6 local server configuration. Because this example uses a dynamic PPPoE interface, we are using the pp0.0 (PPPoE) logical interface as a wildcard to indicate that a DHCPv6 binding can be made on top of a PPPoE interface.

To configure a DHCPv6 local server:

  1. Create a group for dynamic PPPoE interfaces, assign a name, and add an interface for dynamic PPPoE logical interfaces.

    The group feature groups a set of interfaces and then applies a common DHCP configuration to the named interface group.

  2. Commit the configuration.

Results

From configuration mode, confirm your configuration by entering the show command.

Configuring a Dynamic Profile for the PPPoE Logical Interface

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, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Step-by-Step Procedure

Create a dynamic profile for the PPPoE logical interface. This dynamic profile supports both IPv4 and IPv6 sessions on the same logical interface.

To configure the dynamic profile:

  1. Create and name the dynamic profile.

    Include the dynamic-profiles statement at the [edit] hierarchy level and specify pppoe-subscriber-profile as the profile name.

  2. Add a routing instance to the profile and add an interface to the routing instance.

    Include the routing-instances statement at the [edit dynamic-profiles pppoe-subscriber-profile] hierarchy level and specify $junos-routing-instance as the routing instance name variable. Also include the interface statement at the [edit dynamic-profiles pppoe-subscriber-profile routing-instances $junos-routing-instance] hierarchy level and specify $junos-interface-name as the interface variable.

  3. Configure a PPPoE logical interface (pp0) that is used to create logical PPPoE interfaces for the IPv4 and IPv6 subscribers.

    Include the interfaces statement at the [edit dynamic-profiles pppoe-subscriber-profile] hierarchy level and specify pp0 as the interface name.

  4. Configure the logical interface.

    Include the unit statement at the [edit dynamic-profiles pppoe-subscriber-profile interfaces pp0] hierarchy level and specify $junos-interface-unit as the predefined variable to represent the logical unit number for the pp0 interface.

    The variable is dynamically replaced with the actual unit number supplied by the network when the subscriber logs in.

  5. Configure the underlying interface.

    Include the underlying-interface statement at the [edit dynamic-profiles pppoe-subscriber-profile interfaces pp0 unit "$junos-interface-unit" pppoe-options] hierarchy level and specify $junos-underlying-interface as the predefined variable to represent the name of the underlying Ethernet interface on which the router creates the dynamic PPPoE logical interface.

    The variable is dynamically replaced with the actual name of the underlying interface, which is supplied by the network when the subscriber logs in.

  6. Configure the router to act as a PPPoE server when a PPPoE logical interface is dynamically created.

    Include the server statement at the [edit dynamic-profiles pppoe-subscriber-profile interfaces pp0 unit "$junos-interface-unit" pppoe-options] hierarchy level.

  7. Configure the IPv4 family for the pp0 interface.

    Include the unnumbered-address statement at the [edit dynamic-profiles pppoe-subscriber-profile interfaces pp0 unit "$junos-interface-unit" family inet] hierarchy level and specify the unnumbered address to dynamically apply loopback interfaces.

    Because the example uses routing instances, specify the predefined variable $junos-loopback-interface.

  8. Configure the IPv6 family for the pp0 interface.

    Include the unnumbered-address statement at the [edit dynamic-profiles pppoe-subscriber-profile interfaces pp0 unit "$junos-interface-unit" pppoe-options family inet6] hierarchy level and specify the unnumbered address to dynamically create loopback interfaces.

    Because the example uses routing instances without router advertisement, specify the predefined variable $junos-loopback-interface.

  9. Configure one or more PPP authentication protocols for the pp0 interface.

    Include the ppp-options statement at the [edit dynamic-profiles pppoe-subscriber-profile interfaces pp0 unit "$junos-interface-unit"] hierarchy level and specify chap and pap as the authentication protocols.

  10. Enable keepalives and set an interval for keepalives.

    Include the interval statement at the [edit dynamic-profiles pppoe-subscriber-profile interfaces pp0 unit "$junos-interface-unit" keepalives] hierarchy level and specify 30 seconds.

    We recommend an interval of 30 seconds.

Results

From configuration mode, confirm your configuration by entering the show command.

If you are done configuring the device, enter commit from configuration mode.

Configuring a Loopback Interface

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, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Step-by-Step Procedure

To configure a loopback interface:

  1. Create the loopback interface.

    Include the unit statement at the [edit interfaces lo0] hierarchy level and specify 0 as the logical interface number.

    Include the address statement at the [edit interfaces lo0 unit 0 family inet] hierarchy level and specify 10.0.0.1/32 as the IPv4 address.

  2. Configure the interface IPv4 address to be the primary and preferred address.

    Include the primary and preferred statements at the [edit interfaces lo0 unit 0 family inet address 10.0.0.1/32] hierarchy level.

  3. Configure the interface IPv6 address to be the primary and preferred address.

    Include the address statement at the [edit interfaces lo0 unit 0 family inet6] hierarchy level and specify 2001:0::1/128 as the IPv6 address.

    Include the primary and preferred statements at the [edit interfaces lo0 unit 0 family inet6 address 2001:0::1/128] hierarchy level.

Results

From configuration mode, confirm your configuration by entering the show command.

If you are done configuring the device, enter commit from configuration mode.

Configuring a VLAN Demux Interface over an Ethernet Underlying Interface

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, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Step-by-Step Procedure

To configure a VLAN demux interface over an Ethernet underlying interface:

  1. Configure the underlying Ethernet interface.

  2. Create the VLAN demux interface and specify a unit number.

  3. Configure the VLAN tags.

  4. Specify the underlying Ethernet interface.

  5. Specify the dynamic profile.

  6. Prevent multiple PPPoE sessions from being created for the same PPPoE subscriber on the same VLAN interface.

  7. (Optional) Specify that you want the demux interface to use proxy ARP.

Results

From configuration mode, confirm your configuration by entering the show command.

If you are done configuring the device, enter commit from configuration mode.

Configuring an Interface for Communication with a RADIUS Server

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, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Step-by-Step Procedure

To configure the interface:

  1. Create the interface, specify a logical interface unit number, and configure the IPv4 address.

  2. Specify that Gigabit Ethernet options are not automatically negotiated.

Results

From configuration mode, confirm your configuration by entering the show command.

If you are done configuring the device, enter commit from configuration mode.

Specifying the BNG Router Identifier

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, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Best Practice:

We strongly recommend that you configure the BNG router ID, thereby avoiding unpredictable behavior if the interface address on a loopback interface changes.

Step-by-Step Procedure

Configure the router ID of the BNG.

Results

From configuration mode, confirm your configuration by entering the show command.

If you are done configuring the device, enter commit from configuration mode.

Configuring RADIUS Server Access

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, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Step-by-Step Procedure

To configure RADIUS servers:

  1. Create a RADIUS server configuration and specify the address of the server.

  2. Configure the required secret (password) for the server.

    Secrets enclosed in quotation marks can contain spaces.

  3. Configure the source address that the BNG uses when it sends RADIUS requests to the RADIUS server.

  4. (Optional) Configure the number of times that the router attempts to contact a RADIUS accounting server.

    You can configure the router to retry from 1 through 16 times. The default setting is 3 retry attempts.

  5. (Optional) Configure the length of time that the local router or switch waits to receive a response from a RADIUS server.

    By default, the router or switch waits 3 seconds. You can configure the timeout to be from 1 through 90 seconds.

Results

From configuration mode, confirm your configuration by entering the show command.

If you are done configuring the device, enter commit from configuration mode.

Configuring the RADIUS Server Access Profile

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, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Step-by-Step Procedure

To configure a RADIUS server access profile:

  1. Create a RADIUS server access profile.

  2. Specify the order in which authentication methods are used.

  3. Specify the address of the RADIUS server used for authentication and the server used for accounting.

  4. Configure RADIUS accounting values for the access profile.

Results

From configuration mode, confirm your configuration by entering the show command.

If you are done configuring the device, enter commit from configuration mode.

Configuring Local Address-Assignment Pools

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, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Step-by-Step Procedure

Configure three address-assignment pools for DHCPv4, DHCPv6 IA_NA, and DHCPv6 prefix delegation.

To configure the address-assignment pools:

  1. Configure the address-assignment pool for DHCPv4.

  2. Configure the address-assignment pool for DHCPv6 IA_NA.

  3. Configure the address-assignment pool for DHCPv6 prefix delegation.

  4. (Optional) Enable duplicate prefix protection.

Results

From configuration mode, confirm your configuration by entering the show command.

If you are done configuring the device, enter commit from configuration mode.

Verification

Confirm that the configuration is working properly.

Verifying Active Subscriber Sessions

Purpose

Verify active subscriber sessions.

Action

From operational mode, enter the show subscribers summary command.

Meaning

The fields under Subscribers by State show the number of active subscribers.

The fields under Subscribers by Client Type show the number of active DHCP and PPPoE subscriber sessions.

Verifying Both IPv4 and IPv6 Addresses in Correct Routing Instance

Purpose

Verify that the subscriber has both an IPv4 and an IPv6 address and is placed in the correct routing instance.

Action

From operational mode, enter the show subscribers command.

Meaning

The Interface field shows that two subscriber sessions are running on the same interface. The IP Address field shows that one session is assigned an IPv4 address, and the second session is assigned an IPv6 address by DHCPv6 IA_NA.

The LS:RI field shows that the subscriber is placed in the correct routing instance and that traffic can be sent and received.

Verifying Dynamic Subscriber Sessions

Purpose

Verify dynamic PPPoE and DHCPv6 subscriber sessions. In this sample configuration, the DHCPv6 subscriber session should be layered over the underlying PPPoE subscriber session.

Action

From operational mode, enter the show subscribers detail command.

Meaning

When a subscriber has logged in and started both an IPv4 and an IPv6 session, the output shows the active underlying PPPoE session and the active DHCPv6 session.

The Session ID field for the PPPoE session is 2. The Underlying Session ID for the DHCP session is 2, which shows that the PPPoE session is the underlying session.

Verifying DHCPv6 Address Pools Used for DHCPv6 Prefix Delegation

Purpose

Verify the delegated address pool used for DHCPv6 prefix delegation and the length of the IPv6 prefix that was delegated to the CPE.

Action

From operational mode, enter the show subscribers extensive command.

Meaning

The IPv6 Delegated Address Pool field shows the name of the pool that DHCPv6 used to assign the IPv6 address for this subscriber session.

Verifying DHCPv6 Address Bindings

Purpose

Display the address bindings in the client table on the DHCPv6 local server.

Action

From operational mode, enter the show dhcpv6 server binding detail command.

Meaning

The Client IPv6 Address field shows the /128 address that was assigned to the CPE WAN link using DHCPv6 IA_NA.

The Client Pool Name field shows the name of the address pool that was used to assign the Client IPv6 Address.

Verifying PPP Options Negotiated with the Remote Peer

Purpose

Verify PPP options negotiated with the remote peer.

Action

From operational mode, enter the show ppp interface interface extensive command.

Meaning

The output shows the PPP options that were negotiated with the remote peer.

Under IPCP, the Negotiated options field shows the IPv4 local and remote addresses that were negotiated by IPCP.

Under IPV6CP, the Negotiated options field shows the IPv6 local and remote interface identifiers that were negotiated by IPv6CP.

Results

The following is the complete configuration for this example: