Generic Routing Encapsulation (GRE) é um protocolo de encapsulamento desenvolvido pela Cisco Systems que pode encapsular uma ampla variedade de protocolos de Camada de rede dentro de conexões virtuais ponto-a-ponto através de uma rede IP.
| Camada no Modelo OSI | Protocolo |
|---|---|
| 5. Sessão | X.225 |
| 4. Transporte | UDP |
| 3. Rede (GRE-encapsulated) | IPv6 |
| Encapsulamento | GRE |
| 3. Rede | IPv4 |
| 2. Enlace | Ethernet |
| 1. Físical | 100BASE-TX |
Com base nos princípios de camadas de protocolo do Modelo OSI, o encapsulamento de protocolo, não especificamente GRE, quebra a ordem de estratificação. Pode ser visto como um separador entre duas pilhas de protocolos diferentes, um atuando como portadora pra outra.
Pacotes GRE que são encapsulados dentro de IP usam o protocolo IP do tipo 47.
A estrutura do cabeçalho GRE padrão, como definido em RFC 2784 e RFC 2890, é representada no diagrama abaixo.
| 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) | |||||||||||||||||||||||||||||||
O Point-to-Point Tunneling Protocol (PPTP), definido na RFC 2637, usa uma variante da estrutura GRE como cabeçalho, representada abaixo. PPTP cria um túnel GRE através do qual os pacotes PPTP GRE são enviadas.
| Bits 0–4 | 5–7 | 8 | 9-12 | 13–15 | 16–31 | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | R | K | S | s | Recur | A | Flags | Version | Protocol Type | ||||||||||||||||||||||
| Key Payload Length | Key Call ID | ||||||||||||||||||||||||||||||
| Sequence Number (optional) | |||||||||||||||||||||||||||||||
| Acknowledgement Number (optional) | |||||||||||||||||||||||||||||||