- PPPoE
-
PPPoE im TCP/IP‑Protokollstapel Anwendung FTP SMTP HTTP … DNS … Transport TCP UDP Internet IP (IPv4, IPv6) Netzzugang PPP PPPoE Ethernet Das PPP over Ethernet (PPPoE) ist die Verwendung des Netzwerkprotokolls Point-to-Point Protocol (PPP) über eine Ethernet-Verbindung.
Inhaltsverzeichnis
Details
Das PPPoE wird heute bei ADSL-Anschlüssen in Deutschland verwendet.
In Österreich wurde ursprünglich für ADSL-Zugänge das Point To Point Tunneling Protocol (PPTP) verwendet. Mittlerweile wird allerdings PPPoE auch dort von einigen ISPs (UPC, Tele2) angeboten.
Motivation für die Entwicklung von PPPoE war, die Möglichkeiten von PPP wie Authentifizierung und Netzwerkkonfiguration (IP-Adresse, Gateway) auf dem schnelleren Ethernet zur Verfügung zu stellen. Auch erleichtert PPPoE den Providern die Verwaltung, da die Infrastrukturen für Point-to-Point Protocol PPP bei den meisten ISPs schon aus den Zeiten der Analog- und ISDN-Modems bestehen. Zeittarife und automatische Konfiguration bei der Einwahl sind für ADSL, SDSL etc. erst mit PPPoE möglich, technisch sind diese Leitungen Standleitungen und daher immer verfügbar. PPPoE stellt hier die „Wählverbindung“ virtuell wieder her, was nicht zuletzt auch dem Benutzer entgegenkommt: Er sieht keinen Unterschied zwischen bereits gewohnten Wählverbindungen über Analog- oder ISDN-Modem und seiner DSL-Leitung, muss sich also nicht umgewöhnen.
DSL-Modem und Access Concentrator (DSL-AC) des Zugangsanbieters kommunizieren über die Ethernet-LAN-Emulation von ATM (LANE). PPPoE wird auf dieser Schicht übertragen. Wenn das Modem keinen Ethernet-Anschluss hat, sondern ein internes PCI-Gerät ist oder über USB verbunden wird, so wird zumindest durch den Gerätetreiber und/oder das DSL-Modem eine Ethernet-Emulation bereitgestellt. Auf dieser kann dann der PPPoE-Client des Betriebssystems eine Verbindung herstellen.
Aufbau eines PPPoE-Pakets
Das PPPoE-Paket befindet sich im Nutzdatenfeld des Ethernet-Frames.
- Typfeld des Ethernet-Frames
Dieses Feld gibt bei PPPoE an, ob es sich um eine PPPoE-Discovery oder eine PPPoE-Session handelt. Folgende Werte hat das Typ-Feld:
- 0x8863 – PPPoE Discovery
Dies betrifft die Suche eines PoP („Point of Presence“) mittels Ethernet-Broadcast, die Herstellung der Verbindung zum PoP und deren Abbau. - 0x8864 – PPPoE Session
Dies betrifft die Konfiguration und Kontrolle der Verbindung und die Zuweisung von zum Beispiel IP-Adressen, sowie der ganz normale Internet-Verkehr. Genaueres im Artikel PPP.
- Version
Ist immer konstant und enthält den Wert 1. Also PPPoE-Version 1.
- Typ
Ist immer konstant und enthält den Wert 1. Also PPPoE-Typ 1.
- Code
Das Feld Code ist wichtig für das PPPoE-Discovery. Es zeigt die Discovery-Frame-Art an. Während der PPPoE-Session enthält das Feld immer den Wert 0x00.
Werte in hexadezimal für das Feld 'Code':
- 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
Die Session-ID wird durch den PoP mit dem PADS-Frame vergeben und ist gültig für eine Verbindung. Vorher ist der Wert 0x0000.
- Length
Größe der Nutzdaten in Byte.
- PPP Protocol und Nutzdaten
PPP Protocol und Nutzdaten haben denselben Aufbau und dieselben Funktionen wie bei PPP.
PPPoE Discovery (PPPoED)
PADI
PADI steht für PPPoE Active Discovery Initiation.
Möchte sich ein Internetnutzer über DSL einwählen, so muss sein Rechner erst einmal feststellen, ob ein PoP (DSL-AC) vorhanden ist. Eine Kommunikation ist nur über die MAC-Adressen möglich. Da aber der Rechner des Nutzers die MAC-Adresse vom PoP nicht kennt, sendet dieser das PADI-Paket über einen Ethernet-Broadcast (MAC: ff:ff:ff:ff:ff:ff). Das PADI-Paket enthält natürlich die MAC des Absenders.Beispiel für ein PADI-Paket:
Frame 1 (44 bytes on wire, 44 bytes captured) Ethernet II, Src: 00:5Q: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)
Unter Src. (Source/Quelle) steht die MAC-Adresse des sendenden Rechners.
Unter Dst. (Destination/Ziel) ist die Ethernet-Broadcast-Adresse zu erkennen.
Das PADI-Paket können mehrere PoP empfangen.PADO
PADO steht für PPPoE Active Discovery Offer.
Nachdem der Rechner des Nutzers das PADI-Paket gesendet hat, schickt der PoP ein PADO-Paket. Dies ist möglich, da der PoP die Absenderadresse mit dem PADI-Paket bekommen hat. Das PADO-Paket enthält die MAC-Adresse des PoP, seinen Namen (zum Beispiel LEIX11-erx für den Telekom-DSL-AC in Leipzig) sowie die Dienstbezeichnung. Senden mehrere PoP ein PADO-Paket, so wählt der Rechner des Nutzers einen PoP über den Namen oder den Dienst aus.Hier sehen wir ein Beispiel für ein PADO-Paket:
Frame 2 (60 bytes on wire, 60 bytes captured) Ethernet II, Src: 00:0e:40:7b:f3:8a, Dst: 00:5Q: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)
Unter AC-Name->String Data sehen wir den AC-Namen „lpzbr001“ (Arcor DSL-AC in Leipzig)
Unter Src. ist die MAC-Adresse des PoP.
Aus dieser MAC-Adresse kann man auch den Hersteller des PoP feststellen (hier Nortel Networks).PADR
PADR steht für PPPoE Active Discovery Request.
Wie schon erwähnt, muss der Rechner nun einen PoP auswählen. Dies erfolgt mit dem PADR-Paket, das an die MAC-Adresse des PoP gesendet wird.PADS
PADS steht für PPPoE Active Discovery Session-confirmation.
Das PADR-Paket wird vom PoP mit dem PADS-Paket bestätigt sowie eine Session-ID vergeben. Die Verbindung ist mit dem PoP nun aufgebaut und kann verwendet werden.PADT
PADT steht für PPPoE Active Discovery Termination.
Das Paket hat die Aufgabe, die Verbindung zum PoP zu trennen. Es kann vom Rechner des Nutzers wie auch vom PoP gesendet werden.Siehe auch
Weblinks
- RFC 2516 – PPP Over Ethernet (englisch)
Wikimedia Foundation.