Das Generic Routing Encapsulation (GRE) ist ein Netzprotokoll, das von der Firma Cisco Systems entwickelt wurde. Es dient dazu, andere Protokolle einzukapseln und so in Form eines Tunnels über das Internet Protocol (IP) zu transportieren.
Beispiele für GRE-Anwendungen:
- VPN-Verbindungen für PPTP,
- Aufbau von Tunneln zwischen IPv6-fähigen Netzen ü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 | Bits 1-12 | 13-15 | 16–31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
C | Reserved0 | Version | Protocol Type | ||||||||||||||||||||||||||||
Checksum (optional) | Reserved1 (optional) |
- C (Bit 0) – Checksum Present - wenn dieses Bit 1 ist, sind die Felder checksum und reserved1 vorhanden.
- Ver (Bits 13–15) – Version Number
- Reserved0, Reserved1 – Diese Felder werden in der aktuellen Version nicht verwendet und sollten alle auf 0 gesetzt sein, ist dies nicht der Fall, ist das ein Hinweis darauf, dass eine ältere Version (RFC 1701) implementiert ist.