Point-to-Point Protocol over Ethernet
From Wikipedia, the free encyclopedia
Application | FTP | SMTP | HTTP | … | DNS | … |
Transport | TCP | UDP | ||||
Network | IP | IPv6 | ||||
Network access | PPP | |||||
PPPoE | ||||||
Ethernet |
PPPoE, Point-to-Point Protocol over Ethernet, is a network protocol for encapsulating PPP frames in Ethernet frames. It is used mainly with ADSL services. It offers standard PPP features such as authentication, encryption, and compression. Unfortunately it has an MTU lower than that of standard Ethernet which can sometimes cause problems with badly configured firewalls.
PPPoE is a tunneling protocol which allows layering IP, or other protocols that run over PPP, over a connection between two Ethernet ports, but with the software features of a PPP link, so it is used to virtually "dial" to another Ethernet machine and make a point to point connection with it, which is then used to transport IP packets, based on the features of PPP.
It allows the use of traditional PPP-based software to handle a connection which does not use a serial line, but a packet-oriented network like Ethernet, to provide a classical connection with login and password for Internet connection accounting. Also, the IP address on the other side of the link is only assigned when the PPPoE connection is open, allowing the dynamic reuse of IP addresses.
PPPoE was developed by UUNET, Redback Networks, and RouterWare. The protocol is specified in RFC 2516.
Note that some vendors (Cisco and Juniper, for example) refer to PPPoEoE (PPPoE over Ethernet), which is PPPoE running directly over Ethernet or other IEEE 802 networks or over Ethernet bridged over ATM, in order to distinguish it from PPPoEoA (PPPoE over ATM), which is PPPoE running over an ATM virtual circuit using RFC 2684 and SNAP encapsulation of PPPoE. (PPPoEoA is not the same as Point-to-Point Protocol over ATM (PPPoA), which doesn't use SNAP.)
Contents |
[edit] PPPoE Discovery (PPPoED)
[edit] PADI
PADI stands for PPPoE Active Discovery Initiation.
If a user wants to dial up to the Internet using DSL, then his computer first must find the DSL access concentrator (DSL-AC) at the user's Internet service provider's point of presence (POP). Communication over Ethernet is only possible via MAC addresses. As the computer does not know the MAC address of the DSL-AC, it sends out a PADI packet via an Ethernet broadcast (MAC: ff:ff:ff:ff:ff:ff). This PADI packet contains the MAC address of the computer sending it.
Example of a PADI-packet:
Frame 1 (44 bytes on wire, 44 bytes captured) Ethernet II, Src: 00:50:da:42:d7:df, Dst: ff:ff:ff:ff:ff:ff PPP-over-Ethernet Discovery Version: 1 Type 1 Code Active Discovery Initiation (PADI) Session ID: 0000 Payload Length: 24 PPPoE Tags Tag: Service-Name Tag: Host-Uniq Binary Data: (16 bytes)
Src. (=source) holds the MAC address of the computer sending the PADI.
DST. (=destination) is the Ethernet broadcast address.
The PADI packet can be received by more than one DSL-AC.
[edit] PADO
PADO stands for PPPoE Active Discovery Offer.
Once the user's computer has sent the PADI packet, the DSL-AC replies with a PADO packet, using the MAC address supplied in the PADI. The PADO packet contains the MAC address of the DSL-AC, its name (e.g. LEIX11-erx for the T-Com DSL-AC in Leipzig) and the name of the service. If more than one POP's DSL-AC replies with a PADO packet, the user's computer selects the DSL-AC for a particular POP using the supplied name or service.
Here is an example of a PADO packet:
Frame 2 (60 bytes on wire, 60 bytes captured) Ethernet II, Src: 00:0e:40:7b:f3:8a, Dst: 00:50:da:42:d7:df PPP-over-Ethernet Discovery Version: 1 Type 1 Code Active Discovery Offer (PADO) Session ID: 0000 Payload Length: 36 PPPoE Tags Tag: Service-Name Tag: AC-Name String Data: IpzbrOOl Tag: Host-Uniq Binary Data: (16 bytes)
AC-Name -> String data holds the AC name, in this case “Ipzbr001” (the Arcor DSL-AC in Leipzig)
Src. holds the MAC address of the DSL-AC.
The MAC address of the DSL-AC also reveals the manufacturer of the DSL-AC (in this case Nortel Networks).
[edit] PADR
PADR stands for PPPoE Active Discovery Request.
As said above, the computer has to select a POP – it does this using the PADR packet, which is sent to the MAC address of the selected POP's DSL.
[edit] PADS
PADS stands for PPPoE Active Discovery Session-confirmation.
The PADR packet above is confirmed by the DSL-AC with a PADS packet, and a Session ID is given out with it. The connection with the DSL-AC for that POP has now been fully established.
[edit] PADT
PADT stands for PPPoE Active Discovery Termination.
This packet terminates the connection to the POP. It may be sent from either the user's computer or from the DSL-AC.
[edit] See also
[edit] External links
- RFC 2516 - A Method for Transmitting PPP Over Ethernet (PPPoE)
- RFC 3817 - Layer 2 Tunneling Protocol (L2TP) Active Discovery Relay for PPP over Ethernet (PPPoE)
- Carrick Solutions PPPoE FAQ Largest FAQ Site for all PPPoE Related Items
- RP-PPPoE - GPL PPPoE implementation
- RP-PPPoE - RP-PPPoE server (NAS) configuration guide.
- Peer-to-Peer Communication Translators