L2TP - Layer-2-Tunneling-Protocol
L2TP hat die Aufgabe, PPP-Verbindungen über ein IP-Netzwerk zwischen zwei Netzwerk-Stationen oder zwei eigenständigen Netzwerken herzustellen. Ein Szenario ist ein Außendienstmitarbeiter, der mit seinem Notebook über eine Wählverbindung Zugang zum Internet hat und darüber eine getunnelte Verbindung zum Netzwerk seiner Firma unterhält, die über eine Standleitung ebenfalls ans Internet angebunden ist.
Anstatt einer reellen Punkt-zu-Punkt-Verbindung besteht die Übertragungsstrecke aus mehreren Routern, die miteinander verbunden sind. Für dieses Szenario gibt es zwei Protokolle:
- L2F - Layer-2-Forwarding
- PPTP - Point-to-Point Tunneling Protocol
L2TP ist eine Weiterentwicklung von PPTP und L2F. Die Struktur und Vorteile dieser beiden nichtstandardisierten Verfahren wurden in L2TP übernommen und standardisiert. Während PPTP nur IP, IPX und NetBEUI unterstützt, hat L2TP den Vorteil, dass es jedes beliebige Netzwerkprotokoll im PPP-Rahmen transportieren kann. Deshalb hat es auch einen großen Overhead und demzufolge eine geringe Netto-Datenrate. Im Gegensatz zu PPTP eignet sich L2TP sowohl für End-to-End-VPNs als auch Dialup-Verbindungen zu Service Providern.
L2TP bietet selbst keinen Authentisierungs-, Integritäts- und Verschlüsselungsmechanismus. Ein L2TP-VPN arbeitet üblicherweise mit Preshared-Keys und Benutzerkonten. Dafür lässt es sich mit beliebigen Verschlüsselungsverfahren kombinieren. Der Schutz der getunnelten Daten muss z. B. mit IPsec erfolgen. Für VPN-Lösungen kommt meist eine Kombination aus L2TP und IPsec zum Einsatz. Unter Windows benötigt man für L2TP keinen separaten VPN-Client. Der ist in Windows bereits integriert.
L2TP-Architektur
Die L2TP-Architektur teilt sich in zwei logische Systeme. Den L2TP Access Concentrator (LAC) und den L2TP Network Server (LNS). Der LAC verwaltet die Verbindungen und stellt diese zum LNS her. Der LNS ist für das Routing und die Kontrolle der vom LAC empfangenen Pakete zuständig. Das L2TP definiert die Kontroll- und Datenpakete zur Kommunikation zwischen dem LAC und dem LNS. Das bedeutet, innerhalb des PPP-Tunnels existieren zwei verschiedene Kanäle. In einem befinden sich die Kontrollnachrichten, in dem anderen die eigentlichen Nutzdaten. Der Kontrollkanal ist eine gesicherte Verbindung, der Datenkanal ist eine ungesicherte Verbindung. Die Nutzdaten werden also ungesichert in Klartext übertragen, sofern das Transport-Protokoll (PPP) keine Verschlüsselung unterstützt oder nicht aktiviert wurde. Die PPP-Verbindung wird durch den L2TP-Tunnel getunnelt.
Ein Network Access Server (NAS) stellt einen temporären Zugang für Remote-Systeme zur Verfügung. Der NAS kann im LAC oder im LNS implementiert sein.
Es gibt insgesamt zwei Szenarien einen L2TP-Tunnel aufzubauen. Das erste Szenario sieht eine PPP-Verbindung zwischen dem Client und dem LAC vor. Z. B. über das Wählnetz (analog oder ISDN). Der LAC tunnelt die PPP-Daten zum LNS und bekommt von diesem eine IP-Adresse aus dem LAN zugeteilt.
Das zweite Szenario sieht eine direkte Unterstützung von L2TP auf dem Client vor. Der Client ist dann selber der LAC. Die Daten werden genauso mit PPP übertragen. Die IP-Adresse aus dem LAN wird auch hier vom LNS zugeteilt. In beiden Fällen ist die Autorisierung und Authentisierung von den Mechanismen im LAN abhängig. Das ist z. B. über den NAS möglich.
Mit L2TP wird ein Tunnel zwischen LAC und LNS aufgebaut. Der NAS identifiziert den Remote-User über einen Authentisierungsserver. Ist die Authentisierung erfolgreich wird der L2TP-Tunnel etabliert. Der LNS identifiziert sich ebenfalls beim Remote-User und bestätigt den L2TP-Tunnel. In diesem Tunnel wird für jede PPP-Verbindung eine Sitzung (Session) zwischen LAC und LNS aufgebaut. Mittels des Multiplex-Modus lassen sich in einem Tunnel mehrere Sitzungen aufbauen.
L2TP über eine Firewall
VPN über ein Firewall schließt sich meistens aus. Ohne Probleme ist VPN über eine Firewall nur möglich, wenn die Firewall gleichzeitig als Endpunkt einer VPN-Verbindung arbeitet.
Eine Firewall erwartet die Datenpakete von dem Port kommend, von dem sie zuvor angefordert wurden. L2TP antwortet in der Regel von irgendeinem freien Port über 1.024. Um L2TP doch über eine Firewall zu nutzen, verwendet man eine Funktion mit dem Namen Port-Triggering. Damit wird auf einem bestimmten Port mit ausgehendem Datenverkehr das Freischalten weiterer Ports für eingehenden Datenverkehr ermöglicht. Bei L2TP wäre der Triggering-Port die 1.701.
Dazu müssen die Ports 1.024 bis 65.535 freigeschaltet werden. Setzt die Firewall auf einen Portfilter wäre das eine riesige Lücke, was sie nahezu unbrauchbar macht.