Gre
Zur Navigation springen
Zur Suche springen
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.
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.
Schaubild
- Wir haben hier die öffentlichen Ip Adressen 10.82.1.195 und 10.82.1.211
- Diese sind von aussen erreichbar
- Wir bilden nun einen Virtuellen GRE Tunnel mit den IPs 172.30.30.1 und 172.30.30.2
- Diesen fahren wir hoch
- Am Schluss werden die Routen zu den Lans jeweils gegenüber auf die GRE Tunnel IP gesetzt.
Konfiguration
- Manuelles Beispiel auf 2 Linux Rechnern
garlic
- ip tunnel add gretun mode gre remote 10.82.1.195 local 10.82.1.211 ttl 255
- ip address add dev gretun 172.30.30.1 peer 172.30.30.2/32
- ip link set gretun up
- ip route add 192.168.55.0/24 via 172.30.30.2
hubsi
- ip tunnel add gretun mode gre remote 10.82.1.211 local 10.82.1.195 ttl 255
- ip address add dev gretun 172.30.30.2 peer 172.30.30.1/32
- ip link set gretun up
- ip route add 192.168.33.0/24 via 172.30.30.1