Layer 2 Tunneling Protocol

L2TP im TCP/IP-Protokollstapel:
AnwendungL2TP
TransportUDP
InternetIP (IPv4, IPv6)
NetzzugangEthernetToken
Bus
Token
Ring
FDDI

Layer 2 Tunneling Protocol (L2TP) ist ein Netzwerkprotokoll, das Frames von Protokollen der Sicherungsschicht (Schicht 2) des OSI-Modells durch Router zwischen zwei Netzwerken über ein IP-Netz tunnelt. L2TP-Router sowie die IP-Verbindungen zwischen diesen erscheinen als L2-Switch.

Hierzu werden in einem lokalen Netzwerk Frames durch einen L2TP Access Concentrator (LAC) – in der Regel ein Router mit entsprechender L2TP-Protokollfunktionalität – in eine L2TP-Datennachricht verpackt und über ein IP-Netz an einen L2TP Network Server (LNS) des Zielnetzes gesendet. Dieser entpackt die Nachricht und sendet den Inhalt als OSI-Layer-2-Rahmen in das dortige Netz.

L2TP ist eine Tunnel-Lösung, die die Vorteile von PPTP (Point-to-Point Tunneling Protocol) und L2F (Layer 2 Forwarding) vereint. Mit Hilfe einer Tunnel-ID im L2TP-Header sind mehrere Tunnel nebeneinander ebenso möglich wie die Nutzung von NAT (Network Address Translation).

Als Authentifizierungsverfahren bietet L2TP die Verfahren CHAP (Challenge Handshake Authentication Protocol) und PAP (Password Authentication Protocol) an. Eine Verschlüsselung ist in L2TP direkt nicht enthalten. Dies muss bei Bedarf von anderen Protokollen übernommen werden. L2TP wird deshalb oft in Kombination mit IPsec verwendet (RFC 3193[1]).

L2TP Version 2

Layer 2 Tunneling Protocol Version 2 ist für das Tunneln von PPP-Frames entwickelt worden. Frames anderer Protokolle können nicht übertragen werden. Die Tunnelung erfolgt über UDP oder andere paketbasierte Netzwerke (Frame Relay oder ATM).

L2TPv2 ist ein Proposed Standard nach IETF (Internet Engineering Task Force) und ist als RFC 2661 definiert.[2]

L2TP Version 3

Layer 2 Tunneling Protocol Version 3 ist eine Weiterentwicklung von L2TP, das eine Alternative zum MPLS-Protokoll zur Verkapselung von verschiedenen Protokollen auf der Ebene 2 des OSI-Modells darstellt. Es arbeitet wie L2TPv2 über UDP oder andere PSNs (Packet Switched Networks), kann aber auch direkt IP nutzen. Außerdem können statt PPP auch andere Protokolle der Sicherungsschicht getunnelt werden.

Die Spezifikationen sind in RFC 3931 definiert.[3]

L2TPv3 kann als eine abgespeckte Version von MPLS angesehen werden. Ein nicht eingebautes Feature stellt z. B. das Traffic Engineering dar. Features könnten jedoch in künftigen Produkten problemlos hinzugefügt werden.

Header-Formate

L2TP-Struktur
Tunneled FrameL2TP Control Message
L2TP Data HeaderL2TP Control Header
L2TP Data Channel
(unreliable)
L2TP Control Channel
(reliable)
Packet-Switched Netz (UDP, Frame Relay, ATM, MPLS, IP (bei v3) etc.)

Felder im L2TP-Header:

  • T = Message Type. Dieses Feld definiert, ob es sich um eine Kontrollmitteilung (Wert 1) oder um Daten (Wert 0) handelt.
  • L = Length. Kontrollmitteilungen müssen dieses Bit gesetzt haben.
  • S = Sequence. Wenn dieses Bit gesetzt ist, sind die Felder Ns und Nr sichtbar. Kontrollmitteilungen müssen dieses Bit gesetzt haben.
  • O = Offset. Wenn dieses Bit gesetzt ist, ist das Feld Offset Size sichtbar. Kontrollmitteilungen müssen dieses Bit auf Null gesetzt haben.
  • P = Priority. Kontrollmitteilungen müssen dieses Bit auf Null gesetzt haben.
  • Version. Beschreibt, welches L2TP Protokoll verwendet wird (Version 2 = 2). Pakete mit einem unbekannten Wert müssen verworfen werden.
  • Length (Länge) ist optional (existiert, wenn L gesetzt). Die Gesamtlänge der Nachricht in Bytes.
  • Tunnel ID.
  • Session ID.
  • Ns = sequence number (existiert, wenn S gesetzt).
  • Nr = sequence number expected (existiert, wenn S gesetzt).
  • Offset Size (Offset Größe, existiert, wenn O gesetzt).
  • Offset Pads (Offset Auflage) haben optional eine variable Länge.
  • Daten (variable Länge).

Felder im AVP (Attribute Value Pair):

  • M = Mandatory
  • H = Hidden
  • AVP Length (Werte 6 bis 1023). Spezifiziert, wie viele Bytes das AVP beinhaltet.
  • AVP Vendor ID. Das IANA teilt den „SMI Network Management Private Enterprise Codes“ Werte zu (RFC 1700[4]).
  • AVP Type beträgt 16 Bit.

L2TPv2 Header

L2TPv2 Header
012345678910111213141516171819202122232425262728293031
TL0S0OP0VersionLength (Länge)
Tunnel ID
(Tunnel Bezeichner)
Session ID
(Session Bezeichner)
Ns
(sequence number)
Nr
(sequence number expected)
Offset Size
(Offset Größe)
Offset Pad
(Offset Auflage)
Data
(Daten)

Attribute Value Pair bei Version 2

AVP bei Version 2
012345678910111213141516171819202122232425262728293031
MH0AVP LengthAVP Vendor ID
AVP Attribute TypeAVP Attribute Value …

L2TPv3 Header

L2TPv3 Control Message Header
012345678910111213141516171819202122232425262728293031
TL0S0OP0VersionLength (Länge)
Control Connection ID
(Steuerverbindung-Bezeichner)
Ns
(sequence number)
Nr
(sequence number expected)
L2TPv3 Session Header
012345678910111213141516171819202122232425262728293031
TL0S0OP0VersionLength (Länge)
Session ID
(Sitzungsbezeichner)

Tunnel ID und Session ID aus Version 2 (jeweils 16 Bit) werden durch eine jeweils 32 Bit lange Session ID und Control Connection ID ersetzt.

Attribute Value Pair bei Version 3

AVP bei Version 3
012345678910111213141516171819202122232425262728293031
MH0AVP LengthAVP Vendor ID
AVP Attribute TypeAVP Attribute Value …
bis Length erreicht wurde …
AVP Version 3
mit erweitertem Vendor ID
012345678910111213141516171819202122232425262728293031
MH0AVP Length0
5832-bit AVP Vendor ID
AVP Attribute Type
AVP Attribute Value
bis Length erreicht wurde …

Hierbei wird über den gesetzten Wert 58 festgelegt, dass der erweiterte AVP Vendor ID verwendet wird.

Attribute Value Pair Typ

TypBeschreibungReferenz
0Message Type

RFC 2661[2]

1Result Code

RFC 2661[2]

2Protocol Version

RFC 2661[2]

3Framing Capabilities

RFC 2661[2]

4Bearer Capabilities

RFC 2661[2]

5Tie Breaker

RFC 2661[2]

6Firmware Revision

RFC 2661[2]

7Host Name

RFC 2661[2]

8Vendor Name

RFC 2661[2]

9Assigned Tunnel ID

RFC 2661[2]

10Receive Window Size

RFC 2661[2]

11Challenge

RFC 2661[2]

12Q.931 Cause Code

RFC 2661[2]

13Response

RFC 2661[2]

14Assigned Session ID

RFC 2661[2]

15Call Serial Number

RFC 2661[2]

16Minimum BPS

RFC 2661[2]

17Maximum BPS

RFC 2661[2]

18Bearer Type

RFC 2661[2]

19Framing Type

RFC 2661[2]

20
21Called Number

RFC 2661[2]

22Calling Number

RFC 2661[2]

23Sub-Address

RFC 2661[2]

24Tx Connect Speed BPS

RFC 2661[2]

25Physical Channel ID

RFC 2661[2]

26Initial Received LCP CONFREQ

RFC 2661[2]

27Last Sent LCP CONFREQ

RFC 2661[2]

28Last Received LCP CONFREQ

RFC 2661[2]

29Proxy Authen Type

RFC 2661[2]

30Proxy Authen Name

RFC 2661[2]

31Proxy Authen Challenge

RFC 2661[2]

32Proxy Authen ID

RFC 2661[2]

33Proxy Authen Response

RFC 2661[2]

34Call Errors

RFC 2661[2]

35ACCM

RFC 2661[2]

36Random Vector

RFC 2661[2]

37Private Group ID

RFC 2661[2]

38Rx Connect Speed

RFC 2661[2]

39Sequencing Required

RFC 2661[2]

40Rx MinimumRFC 3301[5]
41Rx MaximumRFC 3301[5]
42Service CategoryRFC 3301[5]
43Service NameRFC 3301[5]
44Calling Sub-AddressRFC 3301[5]
45VPI/VCI IdentifierRFC 3301[5]
46PPP Disconnect Cause CodeRFC 3145[6]
47CCDSRFC 3308[7]
48SDSRFC 3308[7]
49LCP Want OptionsRFC 3437[8]
50LCP Allow OptionsRFC 3437[8]
51LNS Last Sent LCP ConfreqRFC 3437[8]
52LNS Last Received LCP ConfreqRFC 3437[8]
53Modem On-Hold CapableRFC 3573[9]
54Modem On-Hold StatusRFC 3573[9]
55PPPoE RelayRFC 3817[10]
56PPPoE Relay Response CapabilityRFC 3817[10]
57PPPoE Relay Forward CapabilityRFC 3817[10]
58Extended Vendor ID
59Message Digest
60Router ID
61Assigned Control Connection ID
62Pseudowire Capabilities List
63Local Session ID
64Remote Session ID
65Assigned Cookie
66Remote End ID
67Application Code
68Pseudowire Type
69L2-Specific Sublayer
70Data Sequencing
71Circuit Status
72Preferred Language
73Control Message Authentication Nonce
74Tx Connect Speed
75Rx Connect Speed
76Failover Capability
77Tunnel Recovery
78Suggested Control Sequence
79Failover Session State
80Multicast CapabilityRFC 4045[11]
81New Outgoing SessionsRFC 4045[11]
82New Outgoing Sessions AcknowledgementRFC 4045[11]
83Withdraw Outgoing SessionsRFC 4045[11]
84Multicast Packets PriorityRFC 4045[11]

RFCs für L2TP

  • RFC2661 – Layer Two Tunneling Protocol “L2TP”. (defines L2TP version 2, englisch).
  • RFC2809 – Implementation of L2TP Compulsory Tunneling via RADIUS. (englisch).
  • RFC2888 – Secure Remote Access with L2TP. (englisch).
  • RFC3070 – Layer Two Tunneling Protocol (L2TP) over Frame Relay. (englisch).
  • RFC3145 – L2TP Disconnect Cause Information. (englisch).
  • RFC3193 – Securing L2TP using IPsec. (englisch).
  • RFC3301 – Layer Two Tunnelling Protocol (L2TP): ATM access network extensions. (englisch).
  • RFC3308 – Layer Two Tunneling Protocol (L2TP) Differentiated Services Extension. (englisch).
  • RFC3355 – Layer Two Tunnelling Protocol (L2TP) Over ATM Adaptation Layer 5 (AAL5). (englisch).
  • RFC3371 – Layer Two Tunneling Protocol “L2TP” Management Information Base. (englisch).
  • RFC3437 – Layer-Two Tunneling Protocol Extensions for PPP Link Control Protocol Negotiation. (englisch).
  • RFC3438 – Layer Two Tunneling Protocol (L2TP) Internet Assigned Numbers Authority (IANA) Considerations Update. (englisch).
  • RFC3573 – Signaling of Modem-On-Hold status in Layer 2 Tunneling Protocol (L2TP). (englisch).
  • RFC3817 – Layer 2 Tunneling Protocol (L2TP) Active Discovery Relay for PPP over Ethernet (PPPoE). (englisch).
  • RFC3931 – Layer Two Tunneling Protocol – Version 3 (L2TPv3). (defines L2TP version 3, englisch).
  • RFC4045 – Extensions to Support Efficient Carrying of Multicast Traffic in Layer-2 Tunneling Protocol (L2TP). (englisch).

Einzelnachweise

  1. RFC3193 – Securing L2TP using IPSec. (englisch).
  2. a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an RFC2661 – Layer Two Tunneling Protocol “L2TP”. (defines L2TP version 2, englisch).
  3. RFC3931 – Layer Two Tunneling Protocol – Version 3 (L2TPv3). (defines L2TP version 3, englisch).
  4. RFC1700 – Assigned Numbers. Oktober 1994 (englisch).
  5. a b c d e f RFC3301 – Layer Two Tunnelling Protocol (L2TP): ATM access network extensions. (englisch).
  6. RFC3145 – L2TP Disconnect Cause Information. (englisch).
  7. a b RFC3308 – Layer Two Tunneling Protocol (L2TP) Differentiated Services Extension. (englisch).
  8. a b c d RFC3437 – Layer-Two Tunneling Protocol Extensions for PPP Link Control Protocol Negotiation. (englisch).
  9. a b RFC3573 – Signaling of Modem-On-Hold status in Layer 2 Tunneling Protocol (L2TP). (englisch).
  10. a b c RFC3817 – Layer 2 Tunneling Protocol (L2TP) Active Discovery Relay for PPP over Ethernet (PPPoE). (englisch).
  11. a b c d e RFC4045 – Extensions to Support Efficient Carrying of Multicast Traffic in Layer-2 Tunneling Protocol (L2TP). (englisch).