PPPoE: Point-to-Point-Protocol over Ethernet
Das Internet ist prinzipiell nur ein sehr großes Computernetzwerk und unterscheidet sich in vielen Punkten nicht von dem heimischen Local Area Network (LAN). Das gilt allerdings nicht in jeder Hinsicht: Durch die Größe und die Stellung, die Internetprovider bzw. ihre Server einnehmen, braucht das globale Netzwerk auch eigene Technik. Ein solche Technik stellt das Point-to-Point-Protocol over Ethernet (PPPoE) dar. Was genau ist die Aufgabe dieses Protokolls?
Wofür braucht man das Point-to-Point-Protocol over Ethernet?
Um eine Internetverbindung herzustellen, muss der heimische PC (oder ein anderes entsprechendes Endgerät) über den Router eine Verbindung in das Internet aufbauen. Der Zugang wird von einem Internetprovider (ISP) zur Verfügung gestellt, der auch überprüfen muss, ob der Client überhaupt die Berechtigung für den Zugang besitzt. Als das Internet – damals noch per ISDN – seinen Einzug in private Haushalte nahm, hat man für diese Überprüfung das Point-to-Point-Protocol (PPP) verwendet. Das Einwahlmedium (das Modem bzw. der Router) nimmt hierbei eine direkte Verbindung zum Knotenpunkt des Internetproviders auf. Dieser verifiziert die Daten und gibt den Weg ins Internet frei.
PPP hatte für Internetprovider den Vorteil, dass man durch das Protokoll nicht nur die Zugangsberechtigung überprüfen, sondern auch die übertragene Datenmenge und die Einwahlzeit feststellen konnte. Da es damals noch üblich war, Minutenpreise für die Nutzung des Internets zu zahlen, kam das Protokoll den Anbietern sehr zugute. Mit dem Aufkommen von DSL und angesichts der Entwicklung, dass oftmals mehr als ein Gerät pro Haushalt gleichzeitig im Internet unterwegs ist, brauchte es dann allerdings eine neue Technik.
Das PPPoE-Protocol bietet dieselben Vorteile wie PPP, lässt die Technik aber über Ethernet laufen. Diese Netzwerktechnik ist inzwischen überall Standard und ermöglicht komplexe und schnelle Verbindungen. Der bekannte PPP-Anteil des Datenpakets wird dabei in den Ethernet-Frame integriert.
Das PPPoE-Protocol wurde zum ersten Mal 1999 im RFC 2516 definiert.
Aufbau und Ablauf von PPP over Ethernet
PPPoE ist Teil des TCP/IP-Protokollstapels – und befindet sich dort auf der untersten Schicht, dem Netzzugang. Das Protokoll agiert in zwei verschiedenen Phasen, die wiederum Auswirkungen auf den Aufbau haben. Zunächst beginnt man mit dem PPPoE-Discovery. In diesem Schritt ermittelt das Protokoll die MAC-Adresse des Knotenpunktes, um über diesen dann das Internet nutzen zu können. Diese Suche funktioniert über einen Broadcast: Die Datenpakete werden also ohne spezielles Ziel in das Netz hinausgeschickt. Der Knotenpunkt, auch Point of Presence (PoP) genannt, antwortet dann und stellt so eine Kommunikationsebene zwischen den beiden Netzteilnehmern her.
Anschließend startet die zweite Phase, die PPPoE-Session. In dieser werden zunächst Details ausgehandelt. Beispielsweise überprüft der Knotenpunkt die Zugangsberechtigung des Clients. Dann folgt die eigentliche Nutzung des Internets, was immer noch zur Phase der PPPoE-Session gehört.
Um welches Phase es sich gerade handelt, erkennt man im Typenfeld des Ethernet-Frames. Hier steht entweder 0x8863 für die Discovery oder 0x8864 für die Session. Nach dem Typenfeld folgt der PPPoE-Frame, eingebettet im Datenfeld des Ethernet-Frames. Der PPPoE-Anteil lässt sich wiederum in unterschiedliche Abschnitte einteilen. Zunächst wird die Version von PPPoE übertragen. Da es aber nur eine Version des Protokolls gibt, ist hier immer nur der Wert 1 zu finden. Anschließend folgt der PPPoE-Typ, welcher aber auch immer auf 1 steht.
Während die ersten beiden Teile jeweils nur 4 Bit eingenommen haben, folgt nun ein 1 Byte (also 8 Bit) großes Code-Feld. Dieses ist vor allem für die PPPoE-Discovery-Phase von Bedeutung und zeigt an, in welchem Schritt die beiden Kommunikationsteilnehmer gerade befinden. Ist man bereits in der Session angekommen, hat das Feld einfach den Wert 0x00. In der Discovery-Phase sind allerdings 5 verschiedene Werte möglich:
- 0x09: PPPoE Active Discovery Initiation (PADI)
- 0x07: PPPoE Active Discovery Offer (PADO)
- 0x19: PPPoE Active Discovery Request (PADR)
- 0x65: PPPoE Active Discovery Session-confirmation (PADS)
- 0xa7: PPPoE Active Discovery Termination (PADT)
Die Discovery-Phase beginnt also mit dem Broadcast (PADI). In diesem Schritt übermittelt der Client auch seine eigene MAC-Adresse, um anschließend eine Antwort erhalten zu können. In dem darauffolgenden Datenpaket des PoP gibt dieser seine eigene MAC-Adresse sowie seinen Namen bekannt (PADO). Es ist gut möglich, dass sich mehrere Knotenpunkte auf den Broadcast des Clients hin melden. Der heimische Computer bzw. Router muss dann anhand des Namens entscheiden, zu welchem PoP er Kontakt aufnehmen möchte. Dies teilt er dem Knotenpunkt durch eine weitere Sendung mit (PADR). Anschließend nimmt der PoP erneut Kontakt zum Netzteilnehmer auf, bestätigt damit die Verbindung und weist dem Gerät eine Session-ID zu (PADS). Die Internetverbindung ist somit hergestellt. Möchte einer der Teilnehmer die Verbindung beenden, teilt er das dem anderen Gerät mit einem abschließenden Datenpaket mit (PADT).
Nachdem die Verbindung hergestellt wurde und der Point of Presence eine Session-ID vergeben hat, spielen die weiteren Felder innerhalb des Frames eine Rolle. Zunächst ist hier die Session-ID eingetragen. Damit können alle folgenden Datenpakete identifiziert werden. Als nächstes wird die Länge des abschließenden Payload-Feldes benannt. Durch die Angabe kann sichergestellt werden, dass keine Informationen während der Übertragung verlorengegangen sind. Das folgende Protokoll-Feld informiert darüber, welches Protokoll für den Payload verwendet wird, also beispielsweise IPv4 oder IPv6. Diese drei Felder haben jeweils eine Länge von 2 Byte. Im Payload-Feld sind schließlich die eigentlichen für die Übertragung vorgesehenen Daten enthalten. Dieser Abschnitt kann eine variable Länge einnehmen (über die zuvor informiert wurde) und schließt den PPPoE-Frame ab.
Vorteile von PPPoE
Point-to-Point-Protocol over Ethernet ist stark mit der Entwicklung von DSL und der allgemeinen Verbreitung des Internets verzahnt. Das Vorgängerprotokoll PPP war für Wählleitungen wie ISDN konzipiert. Mit DSL hat auch der Standard Ethernet überall Einzug gehalten. Dafür musste das alte Protokoll, das bis dahin sehr erfolgreich war, angepasst werden. Ethernet ermöglicht es zudem, dass sich mehrere Geräte die gleiche Leitung teilen können, um ins Internet zu gehen. Auch das war mit dem gewöhnlichen Point-to-Point-Protokoll nicht möglich.
In den meisten Fällen übernimmt ein Router den direkten Kontakt zum Internetprovider und stellt daher auch den Zugang ins Internet her. Mit PPPoE ist es aber auch möglich, dass ein individuelles Gerät selbst mit dem PoP kommuniziert. Dafür muss im Router das sogenannte PPPoE-Passthrough aktiviert sein. Der Router lässt den Verbindungswunsch des Gerätes dann direkt durch. Der komplette Ablauf aus Discovery und Session findet dann zwischen dem (beispielsweise) PC und dem PoP statt.
Außerdem bringt PPPoE einen positiven Aspekt mit, den bereits auch PPP bot: Über das Protokoll lässt sich die Zugangsberechtigung des Clients relativ leicht abfragen. Dafür stehen verschiedene Methoden zur Verfügung: Am einfachsten erfolgt die Abfrage eines Passworts per Password Authentication Protocol (PAP). Hierbei wird der Client ganz simpel nach einem geheimen Kennwort gefragt. Diese Technik funktioniert zwar prinzipiell gut, ist aber nicht mehr vollkommen sicher, da die Übermittlung des Passworts nicht verschlüsselt geschieht und daher von Dritten mitgelesen werden könnte.
Mehr Sicherheit bietet das Challenge Handshake Authentication Protocol (CHAP). Bei diesem wird eine verschlüsselte Kombination aus Passwort und einem spezifischen Wert ausgetauscht. Da das Passwort dem Server des Netzbetreibers bekannt ist, kann dieser die Kombination wieder entschlüsseln und damit die Berechtigung überprüfen. Eine dritte Möglichkeit zur Authentifizierung besteht im Extensible Authentication Protocol (EAP). Hierbei handelt es sich um eine Art Framework, das verschiedene Optionen der Authentifizierung bietet.
Im Kontext von PPPoE taucht immer wieder auch der Begriff DHCP auf, da beides vom Internetprovider vorgegebene Mechaniken sind, sich mit dem Internet zu verbinden. Technisch gesehen handelt es sich aber um zwei unterschiedliche Protokolle. Während PPPoE dafür da ist, einen Tunnel zum Knotenpunkt herzustellen, verwendet man DHCP zur dynamischen Zuweisung einer IP-Adresse.