Saturday, Jul 31, 2010
Login

Posts Tagged ‘PPPoE’

PPPoE – A Closer Look

PPP Over Ethernet (PPPoE) is one of those topics that is very simple but unless you configure it a lot or practice enough, the nuances can escape you very easily. Currently, PPPoE is on the Service Provider lab blueprint but it has also been added to the v4 Routing and Switching lab blueprint.  Here we look at a small scenario and do some debugging to gain some more insight into what exactly is going on. More details can be found in RFC 2516.

16

Objective

  • PPPoE connection between R1 and R2.
  • CHAP authentication is to be used.
  • R2 should provide R1 an address via DHCP.

Configuration

We will start on R1. A dialer interface is needed and the FastEthernet interface needs to be associated with the same dialer pool. Under the dialer we can configure PPP options such as authentication and how the interface will learn its IP address. PPP commands will not be available until you specify the encapsulation as PPP on the dialer interface,

R1(config)#username R2 password pppoe-lab

R1(config)#int f0/0

R1(config-if)#pppoe-client dial-pool-number 1

R1(config)#int dialer 1

R1(config-if)#dialer-group 1

R1(config-if)#dialer pool 1

R1(config-if)#ppp auth?

% Unrecognized command

R1(config-if)#encapsulation ppp

R1(config-if)#ppp authen chap

R1(config-if)#ip address dhcp

R2, the server in this example, will not use a dialer interface. Instead it uses a virtual-template and bb-group configuration. PPP options are configured under the virtual template, the virtual-template is assigned to the bba-group, and the bba-group is attached to the FastEthernet interface. BBA is an abbreviation for Broadband access.

R2(config)#username R1 password pppoe-lab

R2(config)#ip dhcp pool R1

R2(dhcp-config)#network 192.168.1.0 /24

R2(dhcp-config)#exit

R2(config)#interface virtual-template 1

R2(config-if)#ip address 192.168.1.2 255.255.255.0

R2(config-if)#encap ppp

R2(config-if)#ppp authentication chap

R2(config-if)#exit

R2(config)#bba-group pppoe global

R2(config-bba-group)#virtual-template 1

R2(config-bba-group)#int f0/0

R2(config-if)#pppoe enable group globa

Debugging on R1 gives the following.

R1#debug pppoe events

PPPoE protocol events debugging is on

Aug  3 14:30:35.551:  Sending PADI: Interface = FastEthernet0/0

Aug  3 14:30:35.567: PPPoE 0: I PADO  R:c201.0bfc.0000 L:c200.0bfc.0000 Fa0/0

Aug  3 14:30:37.599:  PPPOE: we’ve got our pado and the pado timer went off

Aug  3 14:30:37.599: OUT PADR from PPPoE Session

Aug  3 14:30:37.615: PPPoE 3: I PADS  R:c201.0bfc.0000 L:c200.0bfc.0000 Fa0/0

Aug  3 14:30:37.619: IN PADS from PPPoE Session

Aug  3 14:30:37.631: %DIALER-6-BIND: Interface Vi1 bound to profile Di1

Aug  3 14:30:37.635: PPPoE: Virtual Access interface obtained.

Aug  3 14:30:37.635: PPPoE : encap string prepared

Aug  3 14:30:37.639: [0]PPPoE 3: data path set to Virtual Acess

Aug  3 14:30:37.659: %LINK-3-UPDOWN: Interface Virtual-Access1, changed state to up

Aug  3 14:30:41.051: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, changed state to up

Aug  3 14:30:49.175: %DHCP-6-ADDRESS_ASSIGN: Interface Dialer1 assigned DHCP address 192.168.1.3, mask 255.255.255.0, hostname R1

From the above output we can see the process follows the RFC pretty well. The client broadcasts a PPPoE Active Discovery Initiation (PADI) packet to learn of any servers on the network. R2 responds with a unicast PPPoE Active Discovery Offer (PADO). This packet contains a tag that the client uses to associate with the proper request. After receiving the PADO, the client sends a PPPoE Active Discovery Request (PADR) packet, which is unicast top the server. The server responds with a PPPoE Active Discovery Session-confirmation (PADS) packet and PPP negotiation begins.

Here are some verification commands on each device:

R1#sho pppoe session

1 client session

Uniq ID  PPPoE  RemMAC          Port                    VT  VA         State

SID  LocMAC                                      VA-st

N/A      3  c201.0bfc.0000  Fa0/0                  Di1  Vi1        UP

c200.0bfc.0000                              UP

R2#sho pppoe session

1 session  in LOCALLY_TERMINATED (PTA) State

1 session  total

Uniq ID  PPPoE  RemMAC          Port                    VT  VA         State

SID  LocMAC                                      VA-st

3      3  c200.0bfc.0000  Fa0/0                    1  Vi2.1      PTA

c201.0bfc.0000                              UP

Some final things to remember

  • Configure dialer interface in client
  • Dialer interface contains ppp and addressing options
  • Ethernet interface must belong to same dialer pool
  • Configure virtual-template and bba-group on server
  • Virtual-template contains ppp options and IP address
  • BBA-group is configured under the Ethernet interface