PPP over Ethernet

from Wikipedia, the free encyclopedia
PPPoE in the TCP / IP protocol stack
application FTP SMTP HTTP ... DNS ...
transport TCP UDP
Internet IP ( IPv4 , IPv6 )
Network access PPP
PPPoE
Ethernet

PPP over Ethernet ( PPPoE ) is the use of the network protocol Point-to-Point Protocol (PPP) over an Ethernet connection. The protocol defines two phases: PPPoE Discovery and PPP Session. In the first phase, PPPoE Discovery , the MAC address of an access concentrator is determined. Then, in the second phase, PPP session data is exchanged according to PPP.

distribution

PPPoE is used today for DSL connections in Germany .

In Austria , the Point To Point Tunneling Protocol ( PPTP ) was originally used for ADSL access . In the meantime, PPPoE is also being offered there by some ISPs ( UPC , Tele2 , Silver Server ).

The motivation for the development of PPPoE was to make the possibilities of PPP such as authentication and network configuration ( IP address , gateway ) available on the faster Ethernet. Also PPPoE facilitates the management of the providers, because the infrastructure for point-to-point protocol PPP for most ISPs already from the days of analog and ISDN - modems exist. Time tariffs and automatic configuration when dialing in are only possible for ADSL , SDSL etc. with PPPoE; technically these lines are dedicated lines and therefore always available. PPPoE virtually re-establishes the "dial-up connection" here.

DSL modem and access concentrator ( DSL-AC ) of the access provider communicate via the Ethernet LAN emulation of ATM ( LANE ). PPPoE is transmitted on this layer. If the modem does not have an Ethernet connection, but is an internal PCI device or is connected via USB, at least the device driver and / or the DSL modem provide an Ethernet emulation. The PPPoE client of the operating system can then establish a connection on this.

Structure of a PPPoE package

The PPPoE packet is located in the user data field of the Ethernet frame.

Example of a PPPoE packet

Type field of the Ethernet frame

With PPPoE, this field indicates whether it is a PPPoE discovery or a PPPoE session. The type field has the following values:

  • 0x8863 - PPPoE Discovery
    This concerns the search for a PoP (" Point of Presence ") using Ethernet broadcast , the establishment of the connection to the PoP and its termination.
  • 0x8864 - PPPoE session
    This concerns the configuration and control of the connection and the assignment of, for example, IP addresses, as well as normal Internet traffic. More details in the article PPP .
version

Is always constant and contains the value 1. So PPPoE version 1.

Type

Is always constant and contains the value 1. So PPPoE type 1.

code

The Code field is important for PPPoE discovery. It indicates the discovery frame type. During the PPPoE session the field always contains the value 0x00.

Values ​​in hexadecimal for the 'Code' field:

  • 0x00 - session data
  • 0x07 - PADO (PPPoE Active Discovery Offer)
  • 0x09 - PADI (PPPoE Active Discovery Initiation)
  • 0x19 - PADR (PPPoE Active Discovery Request)
  • 0x65 - PADS (PPPoE Active Discovery Session confirmation)
  • 0xa7 - PADT (PPPoE Active Discovery Termination)
Session ID

The session ID is assigned by the PoP with the PADS frame and is valid for one connection . Before that, the value is 0x0000.

Length

Size of the user data in bytes.

PPP protocol and user data

PPP protocol and user data have the same structure and functions as with PPP .

PPPoE Discovery (PPPoED)

PADI

PADI stands for PPPoE Active Discovery Initiation.
If an Internet user wants to dial in via DSL, his computer must first determine whether a PoP ( DSL-AC ) is available. Communication is only possible via the MAC addresses . However, since the user's computer does not know the MAC address of the PoP, it sends the PADI packet via an Ethernet broadcast (MAC: ff: ff: ff: ff: ff: ff). The PADI packet naturally contains the sender's MAC.

Example of a PADI package:

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)

Under Src. (Source) is the MAC address of the sending computer.
The Ethernet broadcast address can be seen under Dst.
Several PoPs can receive the PADI packet.

PADO

PADO stands for PPPoE Active Discovery Offer.
After the user's computer has sent the PADI packet, the PoP sends a PADO packet. This is possible because the PoP received the sender address with the PADI package. The PADO package contains the MAC address of the PoP, its name (for example LEIX11-erx for the Telekom - DSL-AC in Leipzig) and the service name. If several PoPs send a PADO packet, the user's computer selects a PoP via the name or the service.

Here we see an example of a PADO package:

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: lpzbr001
  Tag: Host-Uniq
    Binary Data: (16 bytes)

Under AC name → String Data we see the AC name "lpzbr001" (Arcor DSL-AC in Leipzig)
under Src. is the MAC address of the PoP.
The manufacturer of the PoP can also be determined from this MAC address (here Nortel Networks ).

PADR

PADR stands for PPPoE Active Discovery Request.
As already mentioned, the computer now has to select a PoP . This is done with the PADR packet that is sent to the MAC address of the PoP.

PADS

PADS stands for PPPoE Active Discovery Session-confirmation.
The PADR package is confirmed by the PoP with the PADS package and a session ID is assigned. The connection with the PoP is now established and can be used.

PADT

PADT stands for PPPoE Active Discovery Termination.
The packet has the task of breaking the connection to the PoP . It can be sent from the user's computer as well as from the PoP.

See also

Specifications

  • RFC 2516 - A Method for Transmitting PPP Over Ethernet (PPPoE) (English)