Layer 2 Tunneling Protocol
Transcrição
Layer 2 Tunneling Protocol
Layer2-Tunneling mit L2TP (Layer 2 Tunneling Protocol) ein Vortrag von Stephan Koser (Seminar, 7.Semester TK, FH-Fulda) von Stephan Koser 1 Inhaltsübersicht Was ist L2TP? Ziele und Eigenschaften des L2TP Funktionsweise des L2TP Komponenten ? Aufgaben des LAC, LNS ? L2TP-Nachrichten ? Aufbau L2TP-Header ? Aufbau und Abbau einer Steuerverbindung ? Aufbau und Abbau eines Tunnels ? L2TP versus PPTP von Stephan Koser 2 Was ist L2TP? Protokoll zur Übertragung von LANPaketen über Paketverm. Netz Kombination aus PPTP und L2F Tunneling Protokoll auf Layer 2 Unterstützt Benutzerauthentifizierung Unterstützt keine Verschlüsselung Spezifiziert in IETF 2661 Das Layer2 Tunneling Protokoll ist ein Protokoll, um LAN-basierte Pakete (wie z.B. IPX, NetBEUI, AppleTalk, IP oder auch SNA) über ein paketvermitteltes Netz (IP-Netz, ATM,. FrameRelay, X.25) zu transportieren. Auf diese Weise ist es z.B. möglich, die Netzwerke zweier voneinander getrennter Standorte einer Firma über ein Weitverkehrsnetz (WAN) zu verbinden, so daß Kommunikation stattfinden kann. Das L2TP entstand unter Federführung der IETF (Internet Engineering Task Force) um die Vorteile der damals verbreiteten Protokolle PPTP (Pointto-Point Tunneling Protokoll) von Microsoft und L2F (Layer 2 Forwarding) von Cisco zu kombinieren und einen einzigen Standard für das Layer 2-Tunneling zu schaffen. Das L2TP unterstützt zwar Benutzerauthentifizierung (sogar mit asynchronen Schlüsseln), aber keine Verschlüsselung. Das ist der Grund, warum es in der Praxis sehr häufig in Kombination mit IPSec eingesetzt wird. Dadurch, daß es auf Layer 2 arbeitet, bietet es die Möglichkeit alle Protokolle zu tunneln, die auf höheren Layern arbeiten. Hierzu werden die Pakete in PPP-Frames. Das Protokoll ist im Standard IETF 2661 spezifiziert. von Stephan Koser 3 Ziele und Eigenschaften von L2TP Gemeinsamer Standard für Tunneling Transparente Verbindung zweier LANs über beliebiges paketvermitteltes Netz Unterstützung mehrerer (verschiedener) Tunnel => QoS Unterstützung mehrerer PPP-Verbindungen durch einen Tunnel Multiprotokollfähigkeit Verlängerung einer PPP-Verbindung Ziel war es, einen einheitlichen Standard für das Tunneling auf Layer 2 zu schaffen, der die Vorteile der beiden damals verbreiteten Protokolle L2F und PPTP vereint und die Nachteile beseitigt. Es soll eine gesicherte transparente Verbindung zwischen zwei LAN‘s über ein beliebiges paketvermitteltes Netz (z.B. X.25, FrameRelay oder ATM) gewährleistet werden. L2TP unterstützt mehrere Tunnel zwischen den Endpunkten, wobei diese Tunnel auch verschiedene Parameter haben können, so daß für verschiedene QoS unterschiedliche Parameter definiert werden können. Innerhalb eines Tunnels können wiederum mehrere PPP-Session laufen. Man könnte auch einen Vergleich zu den virtuellen Kanälen und virtuellen Pfaden beim ATM heranziehen, wobei der Tunnel dem virtuellen Pfad und die Session dem virtuellen Kanal entsprechen würden. Die Multiprotokollfähigkeit von L2TP kommt dadurch zustande, daß PPPFrames verwendet werden, in deren Header das enthaltene Protokoll spezifiziert wird. Durch L2TP wird die PPP-Verbindung, die normalerweise nur zwischen dem Remote-Client und dem NSP (Network Service Provider) besteht bis zum NAS (Network Access Server) des Unternehmensnetzes verlängert. von Stephan Koser 4 Funktionsweise von L2TP Komponenten: LAC und LNS Remote Users Unternehmens Netz L2TP Access Concentrator (LAC) PV Backbone Network L2TP Tunnel Radius L2TP Network Server (LNS) Das L2TP besteht aus 2 Komponenten. Diese sind der LAC (L2TP Access Concentrator), der in der Regel beim NSP sitzt und der LNS (L2TP Network Server) beim NAS. Beide Komponenten sind normalerweise als Software auf einem Server oder in einem Router realisiert. Der LAC nimmt die Verbindungen aus dem PSTN (Public Switched Telephone Network) – seien es nun Verbindungen aus dem analogen Netz, oder aus dem ISDN-Netz – authentifiziert evtl. den Benutzer mittels RADIUS, verpackt dann die ankommenden PPP-Frames in L2TP-Pakete und sendet sie durch den Tunnel, den er zuvor aufgebaut hat, an seine Gegenstelle, den LNS. Dieser packt die Daten aus dem L2TP-Paket, dann aus dem PPP-Paket und sendet sie in das angeschlossene Unternehmensnetz. von Stephan Koser 5 Funktionsweise von L2TP Aufgaben des LAC ? Annahme Verbindungsanforderungen ? First-Level Authentifizierung ? Ausführen des L2TP-Protokolls ? Aufbau eines Tunnel ? Schlüsselfunktionen des PPP ? Andere traditionelle RAS-Funktionen Die Aufgaben des LAC sind: 1. Annahme Verbindungsanforderungen: nimmt die Verbindungsanforderungen (Modem oder ISDN) der RemoteClients entgegen. 2. First-Level Authentifizierung: es ist möglich, eine erste Benutzerauthentifizierung durchzuführen 3. Ausführen des L2TP-Protokolls: Senden und Auswerten von Steuernachrichten, sowie Verpacken des vom Remote-User kommenden PPP-Verkehrs in L2TP-Pakete 4. Aufbau eines Tunnels: baut, bei eingehenden Verbindungswünschen einen Tunnel zum LNS auf 5. Schlüsselfunktionen des PPP z.B. LCP (Link Control Protocol) oder NCP (Network Control Protocol) 6. Andere tradintionelle RAS-Funktionen RADIUS-Funktionen (Authentication, Authorization, Accounting), Filterung und Dial-Out von Stephan Koser 6 Funktionsweise von L2TP Aufgaben des LNS ? Annahme Verbindungsanforderungen von LAC (AVP‘s – Attribute Value Pairs) ? Aushandeln der Verbindungsparameter ? Benutzer-Authentifizierung ? Entgegennehmen, auspacken und weiterleiten der PPP-gekapselten Daten ? Aufbau eines Tunnels Die Aufgaben des LNS sind: 1. Annahme von Verbindungsanforderungen von LAC stellt der LAC einen Verbindungswunsch seitens der Remote-Clients fest, schickt er eine Verbindungsanforderung (ICCRQ – Incoming Call Connection Request) an den LNS. Es gehört zu den Aufgaben den LNS diese Anforderungen entgegenzunehmen. Etwaige Parameter, werden als sogenannte Attribute Value Pairs (AVP‘s) angehängt. 2. Aushandeln der Verbindungsparameter: Soll ein Tunnel zwischen LAC und LNS aufgebaut werden, müssen bestimmte Parameter ausgehandelt werden. 3. Benutzer-Authentifizierung: Auch auf dieser Seite des Tunnels ist es möglich, eine Benutzerauthentifizierung durchzuführen 4. Entgegennehmen, auspacken und weiterleiten der PPP-gekapselten Daten Die vom LAC gesendeten Paket sind müssen vom LNS entgegengenommen werden. Die eigentlichen Daten sind doppelt gekapselt. Zuerst müssen sie aus dem L2TP-Paket, dann aus dem PPPPaket ausgepackt werden, bevor sie in das Unternehmensnetz gesendet werden können. 5. Aufbau des Tunnels: Im Falle eines ‚Outgoing Calls‘ ist es auch möglich, daß der LNS einen Tunnelaufbau initiiert. von Stephan Koser 7 Funktionsweise von L2TP L2TP-Nachrichten Unterscheidung zwischen ? Nachrichten mit Daten ? Nachrichten mit Steuerinformationen ? Zero-Length-Body Nachrichten (ZLB) Beim L2TP unterscheidet man zwischen drei verschiedenen Nachrichtentypen: • Eigentliche Nutzdaten • Zur Kommunikation zwischen LAC und LNC – z.B. Parameter für Tunnelkonfiguration (werden in sog. AVP‘s gesendet). Das L2TP definiert eine Vielzahl von AVP‘s und definiert, welche vorhanden sein müssen, und welche optional sind • Enthält nur den L2TP Header – wird als positive Quittung verwendet. von Stephan Koser 8 Funktionsweise von L2TP L2TP-Nachrichten Nachricht mit Daten L2TP-Header PPP-Frame ohne Flags und FCS Nachricht mit Steuerinformationen L2TP-Header 0 MH MsgType 7 rsvd AVP 1 ... AVP i ... AVP n 15 Length Attribute Type 31 Vendor ID Attribute Value Attribute Value (Fortsetzung) ZLB- Nachricht L2TP-Header ID: Identifikation FCS: Frame Check Sequence ZLB: Zero-Length Body Nachricht mit Daten: Diese Nachricht besteht aus einem L2TP-Header, an den direkt der PPPFrame angehängt wird. An dieser Stelle soll noch erwähnt werden, daß am Anfang des PPP-Frames – wie üblich – vermerkt ist, welcher Protokoll-Typ sich innerhalb befindet. Hierdurch kommt die Multiprotokollfähigkeit des L2TP zustande. Nachricht mit Steuerinformationen: Über diese Nachrichten werden die Tunnel- und Verbindungsdaten übertragen. An den L2TP-Header wird das Feld Message-Type angehängt, wodurch festgelegt wird, um welche Steuer-Nachricht es sich handelt. Anschließend folgen die AVP‘s, die die Parameter spezifizieren. Ein solches AVP hat die folgenden Bestandteile: M: Mandatory (wenn M=1, muß AVP vorhanden sein) H: Hidden (wenn H=1, Feld Attribute Value ist verschlüsselt Rsvd: reserved Length: AVP-Länge Vendor ID: Anbieter ID Attribute Type: Typ von Steuerungsangaben Attribute Value: Steuerungsangaben Zero-Length-Body-Nachricht: Diese Nachricht wird als positive Quittung verwendet und besteht lediglich aus dem L2TP-Header. von Stephan Koser 9 Funktionsweise von L2TP Aufbau L2TP-Header 0 7 T L x x S x O P 15 x x x x Ver=2 31 Length (optional) Tunnel ID Session ID Ns (optional) Nr (optional) Offset Size (optional) Offset Padding (optional) T: Typ der L2TP Nachricht (1=Steuerung, 2=Daten) L: Length Present (1=Length-Feld vorhanden) S: Sequence Present (1= Ns und Nr vorhanden) O: Offset Size Present (1= Offset-Feld vorhanden) P: Priority (1= Bevorzugung dieser Nachricht bei Übertragung) Ver: Version (2= L2TP) Length: Länge der Nachricht Tunnel ID: Identifikations-ID des Tunnels Session ID: Identifikations -ID der PPP-Verbindung im Tunnel Ns: Number send – Sendefolgenummer (falls S=1) Nr: Number receive – Empfangsfolgenummer (falls S=1) Offset Size: Anzahl Bytes im Header zum Datenbeginn (falls O=1) Offset Padding: Füllung des Headers auf ein Vielfaches von 32 Bit x: reserviert für zukünftige Funktionen Aufbau des L2TP-Headers: Am Anfang des Headers steht der Typ der L2TP-Nachricht. Hiermit wird gekennzeichnet, ob es sich um ein Daten oder ein Steuerpaket handelt. Hier kann man auch schön erkennen, wie es möglich ist, daß an einem Endpunkt mehrere Tunnel verwaltet werden können. Jedes mal, wenn ein neuer Tunnel aufgebaut wird, wird eine Tunnel-ID vergeben, durch die der Tunnel eindeutig identifiziert werden kann. Jedes L2TP-Paket führt diese Tunnel-ID mit sich, durch die sie dem entsprechenden Tunnel zugeordnet werden kann. Durch die zusätzliche Session-ID ist es möglich, mehrere PPP-Sitzungen gleichzeitig durch einen Tunnel laufen zu lassen. Hier kann man wieder den Vergleich zu ATM heranziehen, bei dem ebenfalls zwischen Virtual Path ID (VPI) und Virtual Channel ID (VCI) unterschieden wird. Auch dort ist es möglich mehrere Kanäle auf einem Pfad laufen zu lassen. Jedem Tunnel können verschiedene Verbindungsparameter zugeordnet werden, so daß man z.B. unterschiedliche Übertragungsraten und somit Quality of Service (QoS) realisieren kann. von Stephan Koser 10 Funktionsweise von L2TP Aufbau und Abbau ein Steuerverbindung NSP PSTN NAS PV- Netz LAC LNS UN SCCRQ Steuerverbind. aufbau SCCRP SCCCD ZLB Steuerverbindung Überwachung d. Verbindungsbereitschaft Steuerverbind. abbau HELLO ZLB StopCCN ZLB Steuerverbindung x Initiator einer Steuerverbindung kann sowohl LAC als auch LNS sein. 1. Nachricht SCCRQ (Start-Control-Connection-Request) enthält die AVP‘s (Hostname des Verbindungsinitiators – hier: LAC, und TunnelID beim Initiator) optional Fenster-Größe und CHAP-Variable 2. Wird mit SCCRP beantwortet (Start-Control-Connection-Reply enthält (Hostname des Antwortenden – hier: LNS, und Tunnel-ID beim Absender) optional Fenster-Größe und Antwort auf CHAP-Variable 3. Wird mit SCCCD (Start-Control-Connection-Connected) bestätigt 4. Und diese wiederum mit der ZLB-Nachricht Wenn kein Datentransfer stattfindet, wird die Bereitschaft mit der Hello Nachricht kontrolliert (alle 60 Sekunden, enthält keine AVP‘s) -> Keine Reaktion auf Hello -> Verbindung wird geschlossen Der Abbau der Steuerverbindung kann von beiden Seiten ausgehen. Er beginnt mit der Nachricht StopCCN (Stop-Control-ConnectionNotification). Diese Nachricht beinhaltet die Tunnel-ID, die der Tunnel bei der Gegenstelle hat und den Result-Code für die Ursache des Verbindungsabbaus. von Stephan Koser 11 Funktionsweise von L2TP Aufbau eines Tunnels (incoming Call) NSP PSTN NAS PV- Netz LAC LNS UN Steuerverbindung IC ICRQ ICRP + IC Verbindung Tunnelaufbau ICCD ZLB Tunnel Aufbau einer PPP-Verbindung IP [UDP [L2TP [PPP (xxx)]]] PPP(xxx) Datenpakete über PPP-Verbindung Bevor die für die Kommunikation zwischen Remote-Client und NAS notwendige PPP-Verbindung zum LAC aufgebaut werden kann, muß bereits eine Steuerverbindung zwischen LAC und LNS bestehen. Remote-Client versucht zum NSP eine Verbindung aufzubauen: 1. IC (Incoming Call) 2. LAC beginnt den Aufbau einer Sitzung (dem IC wird eine Nummer zugeordnet und der aufbauenden Sitzung eine Identifikation 3. LAC sendet Nachricht (ICRQ – Incoming-Call- Request) an LNS und sendet damit die Nummer des IC und die Session-ID 4. Der LNS antwortet mit ICRP (Incoming-Call- Reply) – enthält zugewiesene Session-ID auf Seite des LNS 5. Erst wenn der LAC die Antwort vom LNS hat, nimmt er den Anruf entgegen (IC+) und die Verbindung zwischen Remote-Client und LAC kommt zustande. 6. Dies teilt der LAC dem LNS durch die Nachricht ICCD (Incoming-CallConnected) mit. Nachricht enthält das AVP ConnectSpeed. 7. LNS bestätigt mit ZLB Jetzt besteht ein Tunnel, über den dann eine PPP-Verbindung zwischen RemoteClient und NAS aufgebaut wird und Daten transferiert werden können. von Stephan Koser 12 Funktionsweise von L2TP Aufbau eines Tunnels (outgoing Call) NSP PSTN NAS PV- Netz LAC LNS UN Steuerverbindung OCRQ OC OC+ Verbindung OCRP Tunnelaufbau OCCN ZLB Tunnel Aufbau einer PPP-Verbindung PPP(xxx) IP [UDP [L2TP [PPP (xxx)]]] Datenpakete über PPP-Verbindung Bei einem Outgoing Call, wird der Verbindungsaufbau aus dem Unternehmensnetz initiiert. Der LNS weist den LAC an, eine Verbindung zu einem Remote-Client aufzubauen: 1. LNS ordnet der initiierten Sitzung eine Session-ID und eine Call-SerialNumber zu und sendet diese mit der Nachricht OCRQ (Outgoing Call Request) an den LAC 2. Hat der LAC diese Nachricht empfangen, initiiert er den Anruf an den Remote-Client und sendet gleichzeitig eine Nachricht OCRP (Outgoing Call Reply) mit der von ihm zugewiesenen Session-ID an den LNS. 3. Nimmt der Remote Client die Verbindung an (OC+) kommt die Verbindung zwischen Remote-Client und LAC zustande und der LAC sendet die Nachricht OCCN (Outgoing Call Connected) an den LNS. 4. Diese wird vom LNS mit einem ZLB bestätigt und der Tunnel steht damit. 5. Nun können wieder die PPP-Verbindung zwischen den beiden Enden aufgebaut und Daten transferiert werden. von Stephan Koser 13 Funktionsweise von L2TP Abbau eines Tunnels von beiden Seiten möglich erst mit Abbau der letzten PPP-Session Bsp.: Abbau vom Remote Client aus: RC sendet CCl an LAC ? LAC sendet CDN an LNS ? LNS sendet ZLB an LAC ? Vereinbarungen zwischen LAC und LNS werden gelöst, d.h. Tunnel wird abgebaut ? LAC sendet CCl+ an RC ? Der Abbau eines Tunnels ist von beiden Seiten möglich. Er wird mit dem Paket CCl (Clear Call) initiiert. Soll der Abbau vom Remote-Client aus erfolgen, sendet dieser das CClPaket an den LAC. Dieser sendet dann ein CDN (Call Disconnect Notify - enthält AVP Result Code – Begründung für Abbau) an den LNS, welcher wiederum mit einem ZLB bestätigt. Damit ist die Vereinbarung zwischen LAC und LNS gelöst und der Tunnel wird abgebaut. Das ganze findet jedoch nur statt, wenn die letzte Session durch den Tunnel abgebaut wurde. Solange noch weitere Sessions bestehen, bleibt auch der Tunnel bestehen. Der LAC sendet dann eine CCl+-Nachricht an den Remote-Client und beendet damit die Verbindung. von Stephan Koser 14 L2TP versus PPTP PPTP L2TP Netzwerk-Typ IP- Netzwerk Paketverm. Netz Mehrere Tunnel zwischen Endpunkten Nein Ja Verschiedene Tunnel zwischen Endpunkten Nein Ja Overhead 6 Bytes 4 Bytes Unterstützt Benutzerauthentifizierung Nein Ja Steuerpakete über TCP- Session UDP (Port: 1701) (mit Header- Kompr.) Schaut man sich obenstehende Tabelle an, so wird man erkennen, daß L2TP im Vergleich zu PPTP eigentlich nur Vorteile bietet. Es gibt aber auch einen Nachteil, der hier nicht verschwiegen werden soll. Das ist auch der Grund, warum PPTP immer noch eine Daseinsberechtigung hat. Zum Einen wird L2TP/IPSec nich von jedem Betriebssystem unerstützt (z.B. Windows 95), zum anderen ist es nicht möglich L2TP/IPSec in Verbindung mit NAT (Network Adress Translation) einzusetzen. von Stephan Koser 15 Literaturangaben Badach (Buch) Online Magazin: LanLine ? http://www.lanline.de Microsoft Technet IETF 2661 Andere Quellen: ? von Stephan Koser http://www.telemation.de/pub/technologien/vpnntz.htm 16