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

Documentos relacionados