W. Schulte
WAN – Wide Area Network
1
1.6.2 Tunneling
Tunneling Protokolle RFC 2784 GRE Einkapselung eines Protokolls auf der
Internetschicht RFC 2516 Point-to-Point over Ethernet (PPPoE) RFC 2637 Point-to-Point Tunneling Protocol (PPTP) RFC 2661 Layer Two Tunneling Protocol (L2TP) RFC 4380 IP v.4 Host hinter NAT über IP v.6 Teredo RFC 5246 TLS WinScP
Tabelle 16 Tunneling Protokolle
W. Schulte 2
Lernziele:
Die verschiedenen Protokolle fürs Tunneling kennen Den Protokollstapel für die Tunneling-Protokolle
benennen Die Anwendungen für das Tunneling kennen Die entsprechenden Traces analysieren
W. Schulte 3
Bild 72 Der Protokollstapel
CSMA/CD
Ethernet Andere
Teilnetze
TCP PID 6
UDP PID 17
IP mit Ethertype 0x0800 MPLS mit Ethertype 0x8847/48
PPPoE mit Ethertype 0/x8863/64
GRE PID 47
PPTP Port 1723
Teredo Port 3544
Protokoll X
L2TP Port 1701
TLS Port 443
PID 115
W. Schulte 4
0 7 8 15 16 23 24 31
C Reserviert Vers Protokoll Typ Prüfsumme Reserviert
Bit
Frame Header IP v.4 Paket
Header PID 47
GRE Header
Nutzlast DA SA
Type x0800
Bild 73 Das Frame-Format für GRE
W. Schulte 5
2001:12:12:12::1/64
T0 R1
R3
T0 R1
10.20.20.20/30
10.20.20.21/30 Interface
2001:12:12:12::2/64 Tunnel
R2
Bild 74 Tunnel-Beispiel zwischen zwei Netzen
W. Schulte 6
R2 mit Tunnel Destination Adresse für IPv-6 Adresse
#interface Tunnel 0
if)#ip address 2001:12:12:12::2/64 Tunnel Adresse
if)#tunnel source GigabitEthernet 0/0
if)#tunnel destination 10.20.20.21 255.255.255.252
if)#tunnel mode gre IPv6
#interface GigabitEthernet 0/0
if)#ip address 10.20.20.20 255.255.255.252 Interface Adresse
W. Schulte 7
0 7 8 15 16 23 24 31
C Reserviert Vers Protokoll Typ X0800 = IPv.4
Prüfsumme Reserviert
Bit
Frame Header IP v.4 Paket
Header PID 47
GRE Header
Nutzlast IPv.4
DA SA Type x0800
Bild 75 Das Frame-Format für GRE
W. Schulte 8
No. Time Source Destination Protocol Length Info 1 0.000000 192.168.0.2 192.168.0.4 GRE mit ICMP 138 Echo (ping) request
Ethernet II, Src: c2:02:37:97:00:00 (c2:02:37:97:00:00), Dst: c2:05:37:c9:f1:02 Destination: c2:05:37:c9:f1:02 (c2:05:37:c9:f1:02) Source: c2:02:37:97:00:00 (c2:02:37:97:00:00) Type: IP (0x0800) Internet Protocol Version 4, Src: 172.16.25.2 (172.16.25.2), Dst: 172.16.15.2 Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT ) Total Length: 124 Identification: 0x001c (28) Flags: 0x00 Fragment offset: 0 Time to live: 255 Protocol: GRE (47) Header checksum: 0x3b12 [correct] Source: 172.16.25.2 (172.16.25.2) Destination: 172.16.15.2 (172.16.15.2) Generic Routing Encapsulation (IP) Flags and Version: 0x0000 Protocol Type: IP (0x0800) Internet Protocol Version 4, Src: 192.168.0.2 (192.168.0.2), Dst: 192.168.0.4 Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT ) Total Length: 100 Identification: 0x001e (30) Flags: 0x00 Fragment offset: 0 Time to live: 255 Protocol: ICMP (1) Header checksum: 0x3a24 [correct] Source: 192.168.0.2 (192.168.0.2) Destination: 192.168.0.4 (192.168.0.4) Internet Control Message Protocol Type: 8 (Echo (ping) request) Code: 0 Checksum: 0x03d4 [correct] Identifier (BE): 6 (0x0006) Identifier (LE): 1536 (0x0600) Sequence number (BE): 0 (0x0000) Sequence number (LE): 0 (0x0000) [Response In: 3] Data (72 bytes) Data: 0000000000187a58abcdabcdabcdabcdabcdabcdabcdabcd... [Length: 72] Adr. DA SA Type 0000 c2 05 37 c9 f1 02 c2 02 37 97 00 00 08 00 45 00
0010 00 7c 00 1c 00 00 ff 2f 3b 12 ac 10 19 02 ac 10
0020 0f 02 00 00 08 00 45 00 00 64 00 1e 00 00 ff 01
0030 3a 24 c0 a8 00 02 c0 a8 00 04 08 00 03 d4 00 06
0040 00 00 00 00 00 00 00 18 7a 58 ab cd ab cd ab cd
0050 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd
0060 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd
0070 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd
0080 ab cd ab cd ab cd ab cd ab cd
MAC-Header
äußerer IPv.4-Header
GRE-Header
IPv.4-Header
MAC-Header
ICMP-Header
äußerer IP-Header
PID=GRE
GRE-Header
innerer IP-Header
PID=ICMP
ICMP Request
Traceanalyse GRE mit IP-ICMP
W. Schulte 9
Teredo (RFC 4380) ist eine Tunnel-Technik von Microsoft, die IPv6-Datenpakete in IPv4-UDP-Datenpakete kapselt, damit Windows-PCs und die XBox (Spielekonsole) die NAT-Schranke von Teilnehmer-Router von innen überwinden und so miteinander reden können. Teredo kommt dabei ohne Anwendereingriffe aus. Als IPv6-Tunnelmechanismus soll Teredo den Übergang von IPv4 auf IPv6 vereinfachen und an Rechnern in lokalen (IPv4-)Netzen eine global gültige IPv6-Adresse vergeben. Dazu baut Teredo einen IPv6-Tunnel über eine IPv4-Sitzung auf.
W. Schulte 10
IP v.4 IP v.6
T-Client B
NAT
Teredo Server
Teredo Relay
Host C
T-Client A
RS
RA
Öffentliches Netz
Privates Netz
Bild 76 Komponenten eines Teredo-Tunnels
RS-Router Solicitation
RA-Router Advertisement
W. Schulte 11
Teredo ist ein IPv6-Übergangsmechanismus. Dieses Kommunikationsprotokoll für den Datenverkehr mit dem Internet ist gemäß RFC 4380 Teredo: Tunneling IPv6 over UDP through Network Address Translations (NATs) spezifiziert. Implementierungen existieren insbesondere als Bestandteil von Microsoft Windows (Teredo) und für Unix-Systeme (Miredo).
W. Schulte 12
0 7 8 15 16 23 24 31
Type Code Prüfsumme Reserviert Optionen
Bit
Type = 133 Router Solicitation
0 7 8 15 16 23 24 31
0x00 0x01 CID-Len Au-Len Client ID
Authentication Nonce
8 octets (Zufallswert) Conf
Frame Header IP v.4 Paket
Header PID 11
UDP Segment Header
Port 3544
TEREDO Auth. Hdr
IP v.6 NH x3a
ICMP v.6 D
A SA
Type x0800
Bild 77 Router Anfrage Nachricht
W. Schulte 13
IP v.4 IP v.6
T-Client B
NAT
Teredo Server
Teredo Relay
Host C
T-Client A
Request
Reply
Bild 80 Bildung des Tunnels
W. Schulte 14
Point-to-Point Protokoll• Das Point-to-Point Protocol (PPP) ist ein Teil der „Internet
Official Protocol Standards“ der ISOC und ist beschrieben in RFC 1661 (7/94) und 1570 LCP Extension.
• Es sind mehrere Protokolle für die Übertragung von Paketen zwischen „Peers“ über RS-232-/V.24-Verbindungen bzw. zwischen Routern notwendig.
• Das PPP ersetzt das ältere, einfachere SLIP (Serial Lines IP) von 1988.
W. Schulte 15
WAN
Point-to-Point (PPP) Übersicht
Wählleitung
MODEM MODEM Server
Hayes Befehle
Wählpulse
PPP Protokoll Bild 84 PPP über Wählleitungen
W. Schulte 16
Bild 85 HDLC-Rahmenformat
W. Schulte 17
Type Length x
Data
1 1
Addr. x'FF'
Protocol |
Code
ID
Length |
x'C021' = LCP
1 = Config. Req. (Opt) 2 = Config. ACK (Opt) 3 = Config. NACK (Opt) 4 = Config. Rej. (Opt) 5 = Term. Req. (Data) 6 = Term. ACK (Data)
8 = Protocol Reject (LCP) C = Identification (LCP)Data E = Reset Req. (CCP) F = Reset ACK (CCP)
1 1 1 2 1 1 2
Flag x'7E'
Protocol |
Information Padding Allg. PPP Rahmenformatg
Data or Options or Rej. Packet Info
Packet Format für LCP, IPCP und CCP
HDLC Rahmenformat
Optionsformat
FCS
HDLC 2/4
Link Control Protocol
LCP
x'8021' = IPCP
x'80FD' = CCP
Ctrl. x'03'
Flag x'7E'
1
LCP / IPCP/ CCP
1 = Challenge | REQ 2 = Response | ACK 3 = Succeed | NACK 4 = Failure |
CHAP | PAP
0 = Reserved 1 = Max. Rec. Unit x=(MRU) 2 = Asyn.Ctrl.Char.Map 3 = Auth. Protocol x=x'C023' PAP x=x'C2235' CHAP+MD5
5 = Magic Number x=Magic Number 7 = Protocol Field Compression 1 or 2 Byte 8 = Addr. & Ctrl. Field Compression F = Compound Frame
1 = IP-Addresses (nicht mehr benutzen) 2 = IP-Compress Protoc. x= x'2d'=VJ compr. 3 = IP-Address der TCP/IP Header 4 = Mobile IP x81=129= Prim. DNS x83=131= Sec. DNS x82=130=Prim NetBios WIN Server RFC1877 x84=132=Sev. NetNios WIN Server
IPCP
Type Length x
Data
x'C023' = PAP x'C223' = CHAP
CCP
0 = OUI 11 = Stac Electronics LZS
CHAP Size Value Name
PAP Peer Length Peer ID PW Length PW
Authentication Protocols
Network Control Protocols
x’8281’ = MPLSCP Multi protocol label switching control protocol MPLSCP
Bild 91 Detailliertes Rahmenformat für PPP
W. Schulte 18
PPP over Ethernet (PPPoE) Motivation für die Entwicklung von PPPoE war, die Möglichkeiten von PPP wie Authentifizierung und Netzkonfiguration (IP-Adresse, Gateway) auf dem schnelleren Ethernet zur Verfügung zu stellen. PPPoE ist die Standardisierung des Netzprotokolls Point-to-Point Protocol (PPP) über eine Ethernet-Verbindung. Das Protokoll definiert zwei Phasen: PPPoE Discovery und PPP Sessionund ist in RFC 2516 beschrieben.
W. Schulte 19
Bild 92 Kommunikation bei PPPoE
Server (not selected)
Server (selected)
Client
Initialisierung
INITIATION INITIATION
OFFER
OFFER
Konfigurations- bestimmung
Konfigurations- bestimmung
REQUEST REQUEST
Confirmation
Terminate
Abbau der Verbindung
Übertragung der Konfigurationsparameter
Initialisierung beendet
Zeit
PADI
PADO
PADR
PADS
PADT
PPP Session 0x8864
Broadcast
Unicast
W. Schulte 20
PADI steht für PPPoE Active Discovery InitiationMöchte sich ein Internetnutzer über DSL einwählen, so muss sein Rechner erst einmal feststellen, ob ein PoP Point-of Presence (DSL-AC) vorhanden ist. Eine Kommunikation ist nur über die MAC-Adressen möglich. Da aber der Rechner des Nutzers die MAC-Adresse des PoP nicht kennt, sendet er das PADI-Paket über einen Ethernet-Broadcast (MAC: ff:ff:ff:ff:ff:ff).
PADO steht für PPPoE Active Discovery Offer.
PADR steht für PPPoE Active Discovery Request.
PADS steht für PPPoE Active Discovery Session-confirmation.
PADT steht für PPPoE Active Discovery Termination.
W. Schulte 21
Point-to-Point Tunneling Protocol (PPTP)Der RFC 2637 PPTP wurde 7/1996 vom PPTP-Forum entwickelt. Es kommt hauptsächlich in Microsoft-Betriebssystemen zum Einsatz und ist jetzt weitgehend von RFC 2661 L2TP abgelöst worden. Es stellt eine Erweiterung des Point-to-Point-Protokolls (PPP) dar, und zwar wird das PPP durch ein IP Netz getunnelt und bietet darüber hinaus Verfahren zur Authentifizierung, Komprimierung und Verschlüsselung an.PPTP ist ausschließlich für die Übertragung von IP, IPX und NetBEUI über IP vorgesehen.
W. Schulte 22
PSTN / ISDN
PPTP Access Concentrator (PAC)
PAC-Client
PPTP Network Server (PNS)
Lokales Netz
PPTP-Verbindung
Datenverkehr
TCP 3-Wege Handshake
Start Control Connection Req. Start Control Connection Reply
Outgoing Call Request Outgoing Call Reply
Set Link Info.
PPP Protokoll Req./Reply
IP-GRE Datenübertragung
PPTP Control Message
PPTP Call Mgmt
PPTP Session Control
Erstellung des PPP Tunnels
Bild 94 PPTP Kommunikation
W. Schulte 23
Layer-2-Tunneling-Protocol (L2TP)Mit dem RFC 2661 (RFC 3931 v.3) Layer-2-Tunneling-Protocol (L2TP) wurde die Aufgabe der Erstellung einer PPP-Verbindung über ein IP-Netz zwischen zwei Netz-Stationen gegenüber dem PPTP-Protokoll erweitert. Nicht nur IP, IPX und Net BEUI, sondern jedes beliebige Protokoll sollte jetzt den Tunnel benutzen können. Anstelle einer reellen Punkt-zu-Punkt-Verbindung, z. B. über PSTN oder ISDN, besteht die Übertragungsstrecke aus mehreren Routern, die miteinander verbunden sind. Für dieses Szenario gibt es zwei Protokolle:• L2F – Layer-2-Forwarding (RFC 2341)• PPTP – Point-to-Point Tunneling Protocol (RFC 2637)Diese beiden Protokolle bilden die Basis für das Layer-2-Tunneling Protocol. L2TP bietet selbst keinen Authentifizierungs-, Integritäts- und Verschlüsselungsmechanismus. Ein Schutz der zu übertragenden, getunnelten Daten sollte z. B. mit IPsec erfolgen.
W. Schulte 24
PSTN / ISDN mit PPP
L2TP Access Concentrator (LAC)
L2TP Network Server (LNS)
Lokales Netz Tunnel Client
LAC-Client
Frame Relay
Paket Transport IP, UDP Port 1701 oder FR
L2TP Control Channel L2TP Data Channel
L2TP Control Message L2TP Data Message
PPP
Internet
Bild 97 L2TP Kommunikation
W. Schulte 25
L2TP-ArchitekturDie L2TP-Architektur definiert zwei logische Systeme: 1. Den L2TP Access Concentrator (LAC) und 2. 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. Ein Network Access Server (NAS) stellt einen temporären Zugang für Remote-Systeme zur Verfügung. Der NAS kann alternativ im LAC oder im LNS implementiert sein.
W. Schulte 26
No. Time Source Destination Protocol Length Info 2 0.158 3.3.3.3 2.2.2.2 0x001c 98 Frame 2: 98 bytes on wire (784 bits), 98 bytes captured (784 bits) Ethernet II, Src: ca:02:10:78:00:1c, Dst: ca:01:17:6c:00:38 Destination: ca:01:17:6c:00:38 (ca:01:17:6c:00:38) Source: ca:02:10:78:00:1c (ca:02:10:78:00:1c) Type: IP (0x0800) Internet Protocol Version 4, Src: 3.3.3.3 (3.3.3.3), Dst: 2.2.2.2 (2.2.2.2) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Total Length: 84 Identification: 0x0a7c (2684) Flags: 0x00 Fragment offset: 0 Time to live: 254 Protocol: Layer 2 Tunneling (115) Header checksum: 0xa7b1 [correct] Source: 3.3.3.3 (3.3.3.3) Destination: 2.2.2.2 (2.2.2.2) Layer 2 Tunneling Protocol version 3 Packet Type: Data Message Session Id=38482 Session ID: 38482 Cookie: ca031078 Default L2-Specific Sublayer .0.. .... = S-bit: False Sequence Number: 1886723 Cisco HDLC Address: Unknown (0x10) Protocol: Unknown (0x001c) Data (48 bytes) Data: 900000000100000000000000000000000000000000000000... [Length: 48] Adr. DA SA Type 0000 ca 01 17 6c 00 38 ca 02 10 78 00 1c 08 00 45 00
0010 00 54 0a 7c 00 00 fe 73 a7 b1 03 03 03 03 02 02
0020 02 02 00 00 96 52 ca 03 10 78 00 1c ca 03 10 78
0030 00 1c 90 00 00 00 01 00 00 00 00 00 00 00 00 00
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0060 00 00 ..
MAC-Header
IP-Header
L2TP-Header
HDLC
MAC-Header IP-Header
PID x73=d115= L2TP
Traceanalyse L2TP
W. Schulte 27
Transport Layer Security (TLS) v. 1.2 Das Protokoll Secure Sockets Layer (SSL) wurde als Vorgänger von Transport Layer Security (TLS) von der Firma Netscape entwickelt. Die Version 3 von SSL wurde von der IETF als TLS Version 1 spezifiziert. Der aktuelle Standard in der Version 1.2 ist in RFC 5246 beschrieben und im Jahr 2008 herausgegeben.TSL ist eine Client-Server-Anwendung, d. h., ein Client oder Webbrowser versucht mit einem Webserver eine sichere Verbindung über TCP aufzubauen. TSL wird hauptsächlich bei HTTP-Anwendungen eingesetzt die TSL zur Sicherung der Daten benutzen. Mit TSL wird aus http:// ein https://, d. h. „HTTP over TLS“.
W. Schulte 28
MAC Header IP
Header TCP
Header
TLS
Handshake Cipher Spec
Alert Appl. Data
HTTPS
DA
SA Type 0x0800
PID x6
Port # 443
Record Layer
0 7 8 15 16 23 24 31
Content Type = 22
Major / Minor Version Länge
Länge Handshake Protokoll
Session ID / Cipher Protocol / Server Name
Bit
Beispiel für das Frameformat einer Client- Handshake Hello-Nachricht.
Bild 98 Schichtenstruktur von SSL/TLS
W. Schulte 29
Client Server Protokoll Information
169.254.255.66 169.254.100.98
TCP
[SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=2
Client eröffnet eine sichere TCP-Verbindung mit Destination Port 4431 HTTPS
169.254.255.66 169.254.100.98 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 WS=8
Server bestätigt den TCP-Verbindungsaufbau
169.254.255.66 169.254.100.98 [ACK] Seq=1 Ack=1 Win=65700 Len=0
TCP-Verbindung ist aufgebaut
169.254.255.66 169.254.100.98
TLSv1
Client sendet: Im Record Layer ein TLSV Client Hello Im Handshake die Cipher und Compression Information
169.254.255.66 169.254.100.98 Server antwortet mit Hello, Certificate, Server Hello Done TLS Record Layer: Handshake Protocol: Multiple Handshake Messages z. B. Certificate, Cipher Suite
169.254.255.66 169.254.100.98 Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message Ohne Certificate
169.254.255.66 169.254.100.98 Change Cipher Spec, Encrypted Handshake Message TLS Record Layer: Change Cipher Spec Protocol: Change Cipher Spec
169.254.255.66 169.254.100.98 Application Data TLS Record Layer: Application Data Protocol: http
169.254.255.66 169.254.100.98 Application Data TLS Record Layer: Application Data Protocol: http
1 Siehe http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml
Tabelle 21 Ablaufdiagramm von TLS ohne Certificate von Client
W. Schulte 30
Zusammenfassung Tunneling
Protokoll Stapel
Begriffe
Tunnel
2 unterschiedliche Protokolle auf der gleichen Schicht (2 oder 3) werden paarweise zusammen übertragen.
Network Server
Bei PPTP und L2TP der Server auf der Empfangsseite.
Access Concentr.
Zur Erstellung und Wartung eines Tunnels zum NS bei PPTP und L2TP
Tunneling Beispiel GRE
2001:12:12:12:::1/64
Lo0 R1
R2
R3 Lo0
R1 10.20.20.20/32
10.20.20.10
2001:12:12:12:::2/64
Tunneling Protokolle
GRE Generic Routing Encapsulation TEREDO Vom Microsoft IPv.4 IPv.6 PPPoE PPP over Ethernet PPTP P-to-P Tunneling Protocol L2TP Layer 2 Tunneling Protocol TLS Transport Layer Security MPLS Multi Protocol Label Switching
CSMA/CD
Ethernet Andere
Teilnetze
TCP PID 6
UDP PID 17
IP mit Ethertype 0x0800 MPLS mit Ethertype 0x8847/48
PPPoE mit Ethertype 0/x8863/64
GRE PID 47
PPTP Port 1723
Teredo Port 3544
Protokoll X
L2TP Port 1701
TLS Port 443
PID 115
OSPF mit GRE getunnelt Sender Empfänger
4 GRE OSPF GRE OSPf 3 IP IP IP IP 2 Ethernet ISDN 1
W. Schulte 31
Noch Fragen?