Friday, November 29, 2013

[mini] PPPoE in the DocCD

I ran across a PPPoE problem a couple days ago, and let me tell you, this is not my favorite topic.  I've only used it in production once, and I don't come across it in practice labs enough to keep it fresh in my mind. I've been skipping these questions when doing time-trial practice labs and just using traditional Ethernet whenever this was called for, and just taking a hit on the points.  Not a good plan, but I felt there were more important things to focus on.

One of the other reasons I haven't wanted to focus on it, knowing that I only see it once in a blue moon, is that the documentation is so spread out I could never figure out where all the various pieces are.  The lab questions always call for server and client installs, and they're on different pages, and spread out across those two pages.

I decided a good interim step on this problem is to nutshell exactly where the pieces are in the documentation.

First, you want the Broadband Access Aggregation and DSL Configuration Guide.  It's on the main "Configuration" page for 12.4T that you've been going to in the DocCD.  See below.

The next page has a lot of options on it. Fortunately we only need two of them, and they're right on top of each other:

- PPPoE "server" is on Providing Protocol Support for Broadband Access Aggregation of PPPoE Sessions.
- PPPoE client is on "PPP over Ethernet Client"

We'll start on the server side first.  "R1" will be our server router.  Not providing a diagram, just two devices connected in Fa0/0 involved.

You need three sections on the "Providing Protocol Support for Broadband Access Aggregation of PPPoE Sessions" page:

- "Configuring a Virtual Template Interface"
- "Defining a PPPoE Profile"
- "Assigning a PPPoE Profile to an Ethernet Interface"

I put them in the order I felt they should be done in, so let's start with "Configuring a Virtual Template Interface".  Frankly, if you don't know how to this, this is worth memorizing.  It comes up in more places than just PPPoE (PPP over Frame Relay, namely). 

Let's apply the necessary pieces as we walk through this:

R1(config)#interface virtual-template 1
R1(config-if)#ip address  ! you don't actually have to use IP unnumbered
R1(config-if)#mtu 1492   ! not really a requirement but a really good idea
R1(config-if)#peer default ip address dhcp-pool TEST-POOL

To be fair, the "peer default" bit for assigning IP addresses to clients isn't actually in the above documentation snippet, but it is elsewhere on the page if you search for it.  It's also not a requirement, you could assign IPs statically.

Next step -

R1(config-if)#bba-group pppoe global
R1(config-bba-group)# virtual-template 1

Yep, that's all you really must have to get the bba-group working.  Now let's assign it to an interface.

R1(config)#interface fa0/0
R1(config-if)#pppoe enable
R1(config-if)#no shut

The pppoe enable command will expand to pppoe enable group global on its own, if you do a "show run".

We did reference a DHCP pool up above; we'll need to create that.

R1(config)#ip dhcp pool TEST-POOL

That's all - now for the client side.  As we saw earlier (same image repeated from above), the client side is directly underneath the "server" side.

Once you're in there, there's once again many options, however the two you need are pretty easy to spot.  Note carefully that we are on the "12.2(13)T 12.4T and Later Releases" section.  There's one just above this for pre-12.2(13)T.

Configuring the dialer interface first makes more sense, so we'll start there:

R2(config)#int dialer 1
R2(config-if)#mtu 1492
R2(config-if)#encapsulation ppp
R2(config-if)#ip address negotiated
R2(config-if)#dialer pool 1

R2(config-if)#pppoe-client dial-pool-number 1
R2(config-if)#no shut

That's it - if you did it correctly, you should get output something like this on your client:

*Mar  1 00:28:51.103: %DIALER-6-BIND: Interface Vi1 bound to profile Di1
*Mar  1 00:28:51.191: %LINK-3-UPDOWN: Interface Virtual-Access1, changed state to up
*Mar  1 00:28:52.235: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, changed state to up

R2(config-if)#do sh ip int dialer1 | i Internet address
  Internet address is

R2(config-if)#do ping
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to, timeout is 2 seconds:
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/23/36 ms



No comments:

Post a Comment