Gre: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 31: Zeile 31:
 
| colspan="16"| Protocol Type
 
| colspan="16"| Protocol Type
 
|-
 
|-
| colspan="16"| [[Checksum]] ''(optional)''
+
| colspan="16"| Checksum ''(optional)''
 
| colspan="16" | Reserved1 ''(optional)''
 
| colspan="16" | Reserved1 ''(optional)''
 
|-
 
|-
Zeile 39: Zeile 39:
 
|}
 
|}
  
; ''C'': [[Checksum]] bit; wird auf 1 gesetzt, wenn eine Checksum enthalten ist.
+
; ''C'': Checksum bit; wird auf 1 gesetzt, wenn eine Checksum enthalten ist.
  
 
; ''K'': Key bit; wird auf 1 gesetzt, wenn ein Key vorhanden ist.
 
; ''K'': Key bit; wird auf 1 gesetzt, wenn ein Key vorhanden ist.
Zeile 49: Zeile 49:
 
; ''Version'': GRE Versionsnummer; wird auf 0 gesetzt.
 
; ''Version'': GRE Versionsnummer; wird auf 0 gesetzt.
  
; ''Protocol Type'': Enthält den [[EtherType|ether protocol type]] der übertragenen Nutzlast. (Für [[IPv4]] beträgt der Wert hex 0800.)
+
; ''Protocol Type'': Enthält den EtherType der übertragenen Nutzlast. (Für IPv4 beträgt der Wert hex 0800.)
  
 
; ''Checksum'': Vorhanden, falls das C-Bit gesetzt ist; enthält die Prüfsumme für den GRE Header und die Nutzlast.
 
; ''Checksum'': Vorhanden, falls das C-Bit gesetzt ist; enthält die Prüfsumme für den GRE Header und die Nutzlast.

Version vom 8. September 2022, 16:25 Uhr

Grundlegendes

  • Das Generic Routing Encapsulation (GRE) ist ein Netzprotokoll, welches dazu dient, andere Protokolle einzukapseln
  • Man kann so diese in Form eines Tunnels über das Internet Protocol (IP) zu transportieren.
  • GRE setzt – wie UDP und TCP – direkt auf IP auf und verwendet die IP-Protokoll-Nummer 47.

Beispiele für GRE-Anwendungen

  • VPN-Verbindungen für PPTP
  • Aufbau von Tunneln zwischen IPv6-fähigen Netzen über IPv4-Infrastruktur (und vice versa)
  • Tunnel zwischen IPsec-Endstellen, wenn die Benutzung dynamischer Routingprotokolle oder Multicastübertragungen über VPN-Verbindungen benötigt wird
  • Tunnel für Mobilitätsprotokolle wie Mobile IP oder Proxy Mobile IPv6
  • Tunnel für die Übertragung des IPX- oder des AppleTalk-Protokolls

Header-Aufbau

  • Ein GRE-Header ist mindestens 4 Byte groß. Da das GRE-Paket zusätzlich noch in ein IP-Paket eingepackt wird,
  • Diese im GRE-Tunnel übertragene Pakete mindestens 24 Byte werden größer.
  • Dies muss bei der Festlegung der maximalen Paketgröße (MTU) berücksichtigt werden.

Ein GRE-Header hat den folgenden Aufbau:

Bits 0–3 4–12 13–15 16–31
C K S Reserved0 Version Protocol Type
Checksum (optional) Reserved1 (optional)
Key (optional)
Sequence Number (optional)
C
Checksum bit; wird auf 1 gesetzt, wenn eine Checksum enthalten ist.
K
Key bit; wird auf 1 gesetzt, wenn ein Key vorhanden ist.
S
Sequence number bit; wird auf 1 gesetzt, wenn eine Sequenznummer vorhanden ist.
Reserved0
Reservierte Bits; werden auf 0 gesetzt.
Version
GRE Versionsnummer; wird auf 0 gesetzt.
Protocol Type
Enthält den EtherType der übertragenen Nutzlast. (Für IPv4 beträgt der Wert hex 0800.)
Checksum
Vorhanden, falls das C-Bit gesetzt ist; enthält die Prüfsumme für den GRE Header und die Nutzlast.
Reserved1
Vorhanden, falls das C-Bit gesetzt ist; wird auf 0 gesetzt.
Key
Vorhanden, falls das K-Bit gesetzt ist; enthält einen applikationsabhängigen Schlüsselwert.
Sequence Number
Vorhanden, falls das S-Bit gesetzt ist; enthält die Sequenznummer des GRE-Paketes.

Konfiguration

GRE-Tunnel werden in Cisco-Routern als (virtuelle) Interfaces konfiguriert. Im Beispiel die Minimalkonfiguration für einen GRE-Tunnel IPv4 in IPv4:

[...]
!
interface Tunnel0                       (lokal eindeutige Nummer von 0 bis 2147483647)
 ip address 192.168.0.1 255.255.255.0   (innere Tunneladresse)
 tunnel source 10.0.0.1                 (äußere lokale Tunneladresse)
 tunnel destination 10.0.0.2            (äußere Tunneladresse des Zielrouters)
end

Adressierung

  • GRE-Tunnel haben eigene Tunnel-Adressen, die aber nur innerhalb der beteiligten Router genutzt werden.
  • Diese Adressen entsprechen den Anforderungen des einzukapselnden Protokolls und werden am Tunnelinterface konfiguriert.
  • Um Pakete durch den Tunnel hindurch zu transportieren, benötigt der Tunnel zusätzlich äußere Adressen, die im Transportnetz, das die Tunnelendpunkte verbindet, geroutet werden
  • Diese Adressen entsprechen den Anforderungen des Internetprotokolls.

Übertragung

  • Ein zu übertragendes Paket wird am Quellrouter zuerst mit einem GRE-Header versehen.
  • Dann wird das resultierende Paket als Nutzlast in einem neuen Unicast-IP-Paket eingepackt, dessen Quelladresse die lokale äußere Tunneladresse ist.
  • Als Zieladresse wird die äußere Tunneladresse des Zielsystems (in der Regel ein Router) verwendet.
  • Am Zielrouter wird nach dem Empfang des IP-Paketes der GRE-Header entfernt und das Paket ohne GRE-Informationen unter Verwendung der Routing-Tabelle weitergeleitet.

Links