Layer 2 Tunneling Protocol
| Anwendung | L2TP | ||||
|---|---|---|---|---|---|
| Transport | UDP | ||||
| Internet | IP (IPv4, IPv6) | ||||
| Netzzugang | Ethernet | Token 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 nicht enthalten. Dies muss bei Bedarf von anderen Protokollen übernommen werden. L2TP wird deshalb oft in Kombination mit IPsec verwendet (RFC 3193<ref>Vorlage:RFC-Internet</ref>).
Seit März 2005 gilt
- L2TP als Begriff für seine Version 3 (L2TPv3) oder L2TP im Allgemeinen,
- das ursprüngliche L2TP nach RFC 2661 als L2TPv2,
- Layer 2 Forwarding (L2F) als Version 1.<ref name="RFC3931">Vorlage:RFC-Internet</ref>
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 in IP-basierten Netzen aufbauend auf dem User Datagram Protocol (UDP). Alternativ können andere paketvermittelte Übertragungsverfahren wie Frame Relay oder Asynchronous Transfer Mode zum Einsatz kommen.<ref>Vorlage:RFC-Internet</ref>
L2TPv2 ist ein Proposed Standard nach IETF (Internet Engineering Task Force) und ist als RFC 2661 definiert.<ref name="RFC2661" />
L2TP Version 3
Vorlage:Hinweisbaustein 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.<ref name="RFC3931" />
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 Frame | L2TP Control Message |
| L2TP Data Header | L2TP 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<ref>Vorlage:RFC-Internet</ref>).
- AVP Type beträgt 16 Bit.
L2TPv2 Header
| L2TPv2 Header | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T | L | 0 | S | 0 | O | P | 0 | Version | Length (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 | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| M | H | 0 | AVP Length | AVP Vendor ID | |||||||||||||||||||||||||||
| AVP Attribute Type | AVP Attribute Value … | ||||||||||||||||||||||||||||||
L2TPv3 Header
| L2TPv3 Control Message Header | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T | L | 0 | S | 0 | O | P | 0 | Version | Length (Länge) | ||||||||||||||||||||||
| Control Connection ID (Steuerverbindung-Bezeichner) | |||||||||||||||||||||||||||||||
| Ns (sequence number) |
Nr (sequence number expected) | ||||||||||||||||||||||||||||||
| L2TPv3 Session Header | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T | L | 0 | S | 0 | O | P | 0 | Version | Length (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 | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| M | H | 0 | AVP Length | AVP Vendor ID | |||||||||||||||||||||||||||
| AVP Attribute Type | AVP Attribute Value … | ||||||||||||||||||||||||||||||
| bis Length erreicht wurde … | |||||||||||||||||||||||||||||||
| AVP Version 3 mit erweitertem Vendor ID | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| M | H | 0 | AVP Length | 0 | |||||||||||||||||||||||||||
| 58 | 32-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
| Typ | Beschreibung | Referenz |
|---|---|---|
| 0 | Message Type |
RFC 2661<ref name="RFC2661" /> |
| 1 | Result Code |
RFC 2661<ref name="RFC2661" /> |
| 2 | Protocol Version |
RFC 2661<ref name="RFC2661" /> |
| 3 | Framing Capabilities |
RFC 2661<ref name="RFC2661" /> |
| 4 | Bearer Capabilities |
RFC 2661<ref name="RFC2661" /> |
| 5 | Tie Breaker |
RFC 2661<ref name="RFC2661" /> |
| 6 | Firmware Revision |
RFC 2661<ref name="RFC2661" /> |
| 7 | Host Name |
RFC 2661<ref name="RFC2661" /> |
| 8 | Vendor Name |
RFC 2661<ref name="RFC2661" /> |
| 9 | Assigned Tunnel ID |
RFC 2661<ref name="RFC2661" /> |
| 10 | Receive Window Size |
RFC 2661<ref name="RFC2661" /> |
| 11 | Challenge |
RFC 2661<ref name="RFC2661" /> |
| 12 | Q.931 Cause Code |
RFC 2661<ref name="RFC2661" /> |
| 13 | Response |
RFC 2661<ref name="RFC2661" /> |
| 14 | Assigned Session ID |
RFC 2661<ref name="RFC2661" /> |
| 15 | Call Serial Number |
RFC 2661<ref name="RFC2661" /> |
| 16 | Minimum BPS |
RFC 2661<ref name="RFC2661" /> |
| 17 | Maximum BPS |
RFC 2661<ref name="RFC2661" /> |
| 18 | Bearer Type |
RFC 2661<ref name="RFC2661" /> |
| 19 | Framing Type |
RFC 2661<ref name="RFC2661" /> |
| 20 | ||
| 21 | Called Number |
RFC 2661<ref name="RFC2661" /> |
| 22 | Calling Number |
RFC 2661<ref name="RFC2661" /> |
| 23 | Sub-Address |
RFC 2661<ref name="RFC2661" /> |
| 24 | Tx Connect Speed BPS |
RFC 2661<ref name="RFC2661" /> |
| 25 | Physical Channel ID |
RFC 2661<ref name="RFC2661" /> |
| 26 | Initial Received LCP CONFREQ |
RFC 2661<ref name="RFC2661" /> |
| 27 | Last Sent LCP CONFREQ |
RFC 2661<ref name="RFC2661" /> |
| 28 | Last Received LCP CONFREQ |
RFC 2661<ref name="RFC2661" /> |
| 29 | Proxy Authen Type |
RFC 2661<ref name="RFC2661" /> |
| 30 | Proxy Authen Name |
RFC 2661<ref name="RFC2661" /> |
| 31 | Proxy Authen Challenge |
RFC 2661<ref name="RFC2661" /> |
| 32 | Proxy Authen ID |
RFC 2661<ref name="RFC2661" /> |
| 33 | Proxy Authen Response |
RFC 2661<ref name="RFC2661" /> |
| 34 | Call Errors |
RFC 2661<ref name="RFC2661" /> |
| 35 | ACCM |
RFC 2661<ref name="RFC2661" /> |
| 36 | Random Vector |
RFC 2661<ref name="RFC2661" /> |
| 37 | Private Group ID |
RFC 2661<ref name="RFC2661" /> |
| 38 | Rx Connect Speed |
RFC 2661<ref name="RFC2661" /> |
| 39 | Sequencing Required |
RFC 2661<ref name="RFC2661" /> |
| 40 | Rx Minimum | RFC 3301<ref name="RFC3301" /> |
| 41 | Rx Maximum | RFC 3301<ref name="RFC3301" /> |
| 42 | Service Category | RFC 3301<ref name="RFC3301" /> |
| 43 | Service Name | RFC 3301<ref name="RFC3301" /> |
| 44 | Calling Sub-Address | RFC 3301<ref name="RFC3301" /> |
| 45 | VPI/VCI Identifier | RFC 3301<ref name="RFC3301" /> |
| 46 | PPP Disconnect Cause Code | RFC 3145<ref name="RFC3145" /> |
| 47 | CCDS | RFC 3308<ref name="RFC3308" /> |
| 48 | SDS | RFC 3308<ref name="RFC3308" /> |
| 49 | LCP Want Options | RFC 3437<ref name="RFC3437" /> |
| 50 | LCP Allow Options | RFC 3437<ref name="RFC3437" /> |
| 51 | LNS Last Sent LCP Confreq | RFC 3437<ref name="RFC3437" /> |
| 52 | LNS Last Received LCP Confreq | RFC 3437<ref name="RFC3437" /> |
| 53 | Modem On-Hold Capable | RFC 3573<ref name="RFC3573" /> |
| 54 | Modem On-Hold Status | RFC 3573<ref name="RFC3573" /> |
| 55 | PPPoE Relay | RFC 3817<ref name="RFC3817" /> |
| 56 | PPPoE Relay Response Capability | RFC 3817<ref name="RFC3817" /> |
| 57 | PPPoE Relay Forward Capability | RFC 3817<ref name="RFC3817" /> |
| 58 | Extended Vendor ID | |
| 59 | Message Digest | |
| 60 | Router ID | |
| 61 | Assigned Control Connection ID | |
| 62 | Pseudowire Capabilities List | |
| 63 | Local Session ID | |
| 64 | Remote Session ID | |
| 65 | Assigned Cookie | |
| 66 | Remote End ID | |
| 67 | Application Code | |
| 68 | Pseudowire Type | |
| 69 | L2-Specific Sublayer | |
| 70 | Data Sequencing | |
| 71 | Circuit Status | |
| 72 | Preferred Language | |
| 73 | Control Message Authentication Nonce | |
| 74 | Tx Connect Speed | |
| 75 | Rx Connect Speed | |
| 76 | Failover Capability | |
| 77 | Tunnel Recovery | |
| 78 | Suggested Control Sequence | |
| 79 | Failover Session State | |
| 80 | Multicast Capability | RFC 4045<ref name="RFC4045" /> |
| 81 | New Outgoing Sessions | RFC 4045<ref name="RFC4045" /> |
| 82 | New Outgoing Sessions Acknowledgement | RFC 4045<ref name="RFC4045" /> |
| 83 | Withdraw Outgoing Sessions | RFC 4045<ref name="RFC4045" /> |
| 84 | Multicast Packets Priority | RFC 4045<ref name="RFC4045" /> |
RFCs für L2TP
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
Weblinks
- Übersicht über L2TP. (PDF; 110 kB) adsl.cutw.net
Einzelnachweise
<references> <ref name="RFC2661"> Vorlage:RFC-Internet </ref> <ref name="RFC3145"> Vorlage:RFC-Internet </ref> <ref name="RFC3301"> Vorlage:RFC-Internet </ref> <ref name="RFC3308"> Vorlage:RFC-Internet </ref> <ref name="RFC3437"> Vorlage:RFC-Internet </ref> <ref name="RFC3573"> Vorlage:RFC-Internet </ref> <ref name="RFC3817"> Vorlage:RFC-Internet </ref> <ref name="RFC4045"> Vorlage:RFC-Internet </ref> </references>