PPP over Ethernet (PPPoE) Tutorial
PPPoE stands for Point-to-Point Protocol over Ethernet. It is a means of establishing a point-to-point communications channel over an Ethernet network. But why do we need PPPoE? To understand the reason of PPPoE, we need to understand about Ethernet and PPP.
As we know, Ethernet is not a point-to-point but a multipoint technology (even when two devices are connected back to back). Ethernet is designed to allow multiple devices to share a common medium, called a “broadcast domain”.
While Ethernet is dominating at customer sides, Internet Service Provider (ISP) still like PPP because of authentication (PPP supports CHAP), accounting (checking customer’s bill), link management (ISP can use PPP to assign a public IP address for customer).
However, Ethernet and PPP do not support each other natively. To utilize the benefits of both Ethernet and PPP, a protocol was created: PPPoE, which allows computers to connect to an ISP via a Digital Subscriber Line (DSL) modem.
PPPoE creates a PPP tunnel over an Ethernet connection by encapsulating a PPP frame inside an Ethernet frame. The modem converts the Ethernet frames to PPP frames by stripping the Ethernet headers. The modem then transmits these PPP frames on the ISP’s DSL network.
|Note: PPPoE client functionality can be installed on the DSL modem or on the user computer as a software. If PPPoE is implemented on the DSL modem, all the users behind will share the same PPPoE account of the DSL modem. If PPPoE is installed on user computer, each computer can access different services with different PPPoE accounts. Nowadays PPPoE client functionality is available in most operating systems from Windows, Linux to Mac OS.|
The picture below shows the PPPoE Client dialog box to enter username and password before making a PPPoE connection on Windows OS.
PPPoE Client on Windows
PPPoE simulates the dial environment where each PPPoE session is treated as a separate phone line, even though they are being transported on a single PVC.
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.
Configuration at Client side (PPPoE Client)
interface Dialer 2 encapsulation ppp ip address negotiated ppp chap hostname TUT ppp chap password MyPPPoE ip mtu 1492 dialer pool 1
1. First we need to create a dialer interface with the interface Dialer 2 command. Any interface number is good. A dialer interface is a virtual interface and PPP configuration is placed on the dialer interface, not on the physical interface. The PPPoE client can be configured with a static IP address but in most cases it will be automatically assigned a public IP address by the ISP so we used the ip address negotiated command here.
The CHAP hostname and password must be configured so that the PPPoE Server can authenticate the customer. The hostname and password configured on the PPPoE Client router must match the hostname and password configured on the PPPoE Server router. In this case, the commands ppp chap hostname TUT & ppp chap password MyPPPoE tells the router to use “TUT” & “MyPPPoE” as the username & password to authenticate with the server.
The maximum transmission unit (MTU) should be reduced to 1492 (default of 1500) to accommodate the PPPoE headers: 6 bytes for the PPPoE header and 2 more for the PPP protocol ID. This prevents unnecessary fragmentation.
Finally this dialer interface must be linked to a dialer pool with the dialer pool 1 command.
Next we configure the physical interface.
interface Ethernet0/1 no ip address pppoe enable pppoe-client dial-pool-number 1
2. The physical Ethernet0/1 interface that connects toward the PPPoE Server is enabled PPPoE with the pppoe enable command. This physical interface is then linked to dialer pool 1 with the pppoe-client dial-pool-number 1 command. Notice that the dialer pool number must match on the dialer interface and physical interface. In other words, the number in the commands “dialer pool <number>” (on Dialer interface 2) and “pppoe-client dial-pool-number <number>” (on interface E0/1) must be the same. But notice that the dialer interface number (interface Dialer 2) does not have to match the dialer pool number. This is how the dialer pool is connected to the interface dialer and physical interface:
Although this way of configuration is a bit more complex than directly connecting physical interfaces into dialer interface but it makes the configuration more flexible. Imagine you have three dialer interfaces 2, 5, 10 and many physical interfaces. With dialer pools, you can easily change the physical interfaces which need to associate with your dialer interfaces without making change at the physical interface level.
In the next part we will learn how to configure PPPoE at Server side.