PPPoE Client

This section describes how to configure the PPPoE client provided with the ASA. It includes the following topics:

PPPoE Client Overview

PPPoE combines two widely accepted standards, Ethernet and PPP, to provide an authenticated method of assigning IP addresses to client systems. PPPoE clients are typically personal computers connected to an ISP over a remote broadband connection, such as DSL or cable service. ISPs deploy PPPoE because it supports high-speed broadband access using their existing remote access infrastructure and because it is easier for customers to use.

PPPoE provides a standard method of employing the authentication methods of the Point-to-Point Protocol (PPP) over an Ethernet network. When used by ISPs, PPPoE allows authenticated assignment of IP addresses. In this type of implementation, the PPPoE client and server are interconnected by Layer 2 bridging protocols running over a DSL or other broadband connection.

PPPoE is composed of two main phases:

  • Active Discovery Phase—In this phase, the PPPoE client locates a PPPoE server, called an access concentrator. During this phase, a Session ID is assigned and the PPPoE layer is established.
  • PPP Session Phase—In this phase, PPP options are negotiated and authentication is performed. Once the link setup is completed, PPPoE functions as a Layer 2 encapsulation method, allowing data to be transferred over the PPP link within PPPoE headers.

 

At system initialization, the PPPoE client establishes a session with the access concentrator by exchanging a series of packets. Once the session is established, a PPP link is set up, which includes authentication using Password Authentication protocol (PAP). Once the PPP session is established, each packet is encapsulated in the PPPoE and PPP headers.


Note PPPoE is not supported when failover is configured on the ASA, or in multiple context or transparent mode. PPPoE is only supported in single, routed mode, without failover.


Configuring the PPPoE Client Username and Password

To configure the username and password used to authenticate the ASA to the access concentrator, use the vpdn command. To use the vpdn command, you first define a VPDN group and then create individual users within the group.

To configure a PPPoE username and password, perform the following steps:


Step 1 Define the VPDN group to be used for PPPoE using the following command:

hostname(config)# vpdn group group_name request dialout pppoe
 

In this command, replace group_name with a descriptive name for the group, such as “pppoe-sbc.”

Step 2 If your ISP requires authentication, select an authentication protocol by entering the following command:

hostname(config)# vpdn group group_name ppp authentication {chap | mschap | pap}
 

Replace group_name with the same group name you defined in the previous step. Enter the appropriate keyword for the type of authentication used by your ISP:

  • CHAP—Challenge Handshake Authentication Protocol
  • MS-CHAP—Microsoft Challenge Handshake Authentication Protocol Version 1
  • PAP—Password Authentication Protocol

Note When using CHAP or MS-CHAP, the username may be referred to as the remote system name, while the password may be referred to as the CHAP secret.


Step 3 Associate the username assigned by your ISP to the VPDN group by entering the following command:

hostname(config)# vpdn group group_name localname username
 

Replace group_name with the VPDN group name and username with the username assigned by your ISP.

Step 4 Create a username and password pair for the PPPoE connection by entering the following command:

hostname(config)# vpdn username username password password [store-local]
 

Replace username with the username and password with the password assigned by your ISP.


Note The store-local option stores the username and password in a special location of NVRAM on the ASA. If an Auto Update Server sends a clear config command to the ASA and the connection is then interrupted, the ASA can read the username and password from NVRAM and re-authenticate to the Access Concentrator.



 

Enabling PPPoE


Note You must complete the configuration using the vpdn command, described in “Configuring the PPPoE Client Username and Password,” before enabling PPPoE.


The PPPoE client functionality is turned off by default. To enable PPPoE, perform the following steps:


Step 1 Enable the PPPoE client by entering the following command from interface configuration mode:

hostname(config-if)# ip address pppoe [setroute]
 

The setroute option sets the default routes when the PPPoE client has not yet established a connection. When using the setroute option, you cannot have a statically defined route in the configuration.

PPPoE is not supported in conjunction with DHCP because with PPPoE the IP address is assigned by PPP. The setroute option causes a default route to be created if no default route exists. The default router is the address of the access concentrator. The maximum transmission unit (MTU) size is automatically set to 1492 bytes, which is the correct value to allow PPPoE transmission within an Ethernet frame.

Reenter this command to reset the DHCP lease and request a new lease.


Note If PPPoE is enabled on two interfaces (such as a primary and backup interface), and you do not configure dual ISP support (see the "Monitoring a Static or Default Route" in the general operations configuration guide), then the ASA can only send traffic through the first interface to acquire an IP address.


For example:

hostname(config)# interface gigabitethernet 0/0
hostname(config-if)# ip address pppoe
 

Step 2 Specify a VPDN group for the PPPoE client to use with the following command from interface configuration mode (optional):

hostname(config-if)# pppoe client vpdn group grpname
 

grpname is the name of a VPDN group.


Note If you have multiple VPDN groups configured, and you do not specify a group with the pppoe client vpdn group command, the ASA may randomly choose a VPDN group. To avoid this, specify a VPDN group.



 

Using PPPoE with a Fixed IP Address

You can also enable PPPoE by manually entering the IP address, using the ip address command from interface configuration mode in the following format:

hostname(config-if)# ip address ipaddress mask pppoe
 

This command causes the ASA to use the specified address instead of negotiating with the PPPoE server to assign an address dynamically. Replace ipaddress and mask with the IP address and subnet mask assigned to your ASA.

For example:

hostname(config-if)# ip address outside 201.n.n.n 255.255.255.0 pppoe

Note The setroute option is an option of the ip address command that you can use to allow the access concentrator to set the default routes when the PPPoE client has not yet established a connection. When using the setroute option, you cannot have a statically defined route in the configuration.


Monitoring and Debugging the PPPoE Client

Use the following command to display the current PPPoE client configuration information:

hostname# show ip address outside pppoe
 

Use the following command to enable or disable debugging for the PPPoE client:

hostname# [no] debug pppoe {event | error | packet}
 

The following summarizes the function of each keyword:

  • event—Displays protocol event information
  • error—Displays error messages
  • packet—Displays packet information

Use the following command to view the status of PPPoE sessions:

hostname# show vpdn session [l2tp | pppoe] [id sess_id | packets | state | window]
 

The following example shows a sample of information provided by this command:

hostname# show vpdn
 
Tunnel id 0, 1 active sessions
time since change 65862 secs
Remote Internet Address 10.0.0.1
Local Internet Address 199.99.99.3
6 packets sent, 6 received, 84 bytes sent, 0 received
Remote Internet Address is 10.0.0.1
Session state is SESSION_UP
Time since event change 65865 secs, interface outside
PPP interface id is 1
6 packets sent, 6 received, 84 bytes sent, 0 received
hostname#
hostname# show vpdn session
PPPoE Session Information (Total tunnels=1 sessions=1)
Remote Internet Address is 10.0.0.1
Session state is SESSION_UP
Time since event change 65887 secs, interface outside
PPP interface id is 1
6 packets sent, 6 received, 84 bytes sent, 0 received
hostname#
hostname# show vpdn tunnel
PPPoE Tunnel Information (Total tunnels=1 sessions=1)
Tunnel id 0, 1 active sessions
time since change 65901 secs
Remote Internet Address 10.0.0.1
Local Internet Address 199.99.99.3
6 packets sent, 6 received, 84 bytes sent, 0 received
hostname#

Clearing the Configuration

To remove all vpdn group commands from the configuration, use the clear configure vpdn group command in global configuration mode:

hostname(config)# clear configure vpdn group
 

To remove all vpdn username commands, use the clear configure vpdn username command:

hostname(config)# clear configure vpdn username
 

Entering either of these commands has no affect upon active PPPoE connections.

Using Related Commands

Use the following command to cause the DHCP server to use the WINS and DNS addresses provided by the access concentrator as part of the PPP/IPCP negotiations:

hostname(config)# dhcpd auto_config [client_ifx_name]
 

This command is only required if the service provider provides this information as described in RFC 1877. The client_ifx_name parameter identifies the interface supported by the DHCP auto_config option. At this time, this keyword is not required because the PPPoE client is only supported on a single outside interface.