Das Generic Routing Encapsulation (GRE, RFC1701) ist ein Netzwerkprotokoll, das von der Firma Cisco Systems entwickelt wurde. Es dient dazu, andere Protokolle einzukapseln und so in Form von IP-Tunneln zu transportieren.
Beispiele für GRE-Anwendungen:
- VPN-Verbindungen für PPTP,
- Aufbau von Tunneln zwischen IPv6-fähigen Netzwerken über IPv4-Infrastruktur oder
- Als Tunnel zwischen IPSec-Endstellen, um dynamische Routingprotokolle oder Multicastübertragungen über VPN-Grenzen fahren zu können.
- Als Tunnel für die Übertragung des IPX oder des AppleTalk-Protokolls.
GRE verwendet das IP-Protokoll 47, ein GRE-Header hat folgenden Aufbau:
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 ┌─┬─┬─┬─┬─┬─────┬─────────┬─────┬───────────────────────────────┐ │C│R│K│S│s│Recur│ Flags │ Ver │ Protocol Type │ ├─┴─┴─┴─┴─┴─────┴─────────┴─────┼───────────────────────────────┤ │ Checksum (optional) │ Offset (optional) │ ├───────────────────────────────┴───────────────────────────────┤ │ Key (optional) │ ├───────────────────────────────────────────────────────────────┤ │ Sequence Number (optional) │ ├───────────────────────────────────────────────────────────────┤ │ Routing (optional) │ └───────────────────────────────────────────────────────────────┘
- Checksum Present (Bit 0)
- Routing Present (Bit 1)
- Key Present (Bit 2)
- Sequence Number Present (Bit 3)
- Strict Source Route (Bit 4)
- Recursion Control (Bits 5-7)
- Version Number (Bits 13-15)