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 die IP-Protokoll Nummer 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) │ └───────────────────────────────────────────────────────────────┘
- C (Bit 0) - Checksum Present
- R (Bit 1) - Routing Present
- K (Bit 2) - Key Present
- S (Bit 3) - Sequence Number Present
- s (Bit 4) - Strict Source Route
- Recur (Bits 5-7) - Recursion Control
- Ver (Bits 13-15) - Version Number