title: Generic Routing Encapsulation
text: # Generic Routing Encapsulation
  
  In informatica e telecomunicazioni il Generic Routing Encapsulation, in sigla GRE, è un protocollo di rete progettato nel 1994 (documentato con RFC 1701).
  
  ## Caratteristiche
  
  Il GRE è in grado di incapsulare fino a 20 tipi di protocolli. Si fa carico, inoltre, di tre altri tipi di protocolli: - passenger protocol - carrier protocol - protocollo di trasporto; in quest'ultimo si occupa del trasporto dei due precedenti protocolli.
  
  Le fasi di lavoro sono le seguenti:
  
  * Il computer host sorgente crea su una LAN un pacchetto, utilizzando un proprio protocollo nativo e lo spedisce sulla rete.
  * Il router di default, poiché il computer di destinazione non è locale, prende il pacchetto e lo incapsula usando il carrier protocol per creare il tunnel GRE: in questo modo si stabilisce una connessione virtuale punto a punto con un router presente all'altro capo di Internet.
  * Quando giunge a destinazione, il pacchetto viene spogliato dell'header IP e lasciato con il protocollo nativo nella LAN di destinazione.
  
  ## Header del pacchetto
  
  L'header del pacchetto GRE è rappresentato nel diagramma sottostante. RFC 2784 e RFC 2890
  
  | Bits 0–3 | Bits 0–3 | Bits 0–3 | Bits 0–3 | 4–12 | 4–12 | 4–12 | 4–12 | 4–12 | 4–12 | 4–12 | 4–12 | 4–12 | 13–15 | 13–15 | 13–15 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 |
  | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
  | C | | K | S | Reserved0 | Reserved0 | Reserved0 | Reserved0 | Reserved0 | Reserved0 | Reserved0 | Reserved0 | Reserved0 | Version | Version | Version | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type | Protocol Type |
  | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Checksum (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) | Reserved1 (optional) |
  | Key (optional) ||||||||||||||||||||||||||||||||
  | Sequence Number (optional) ||||||||||||||||||||||||||||||||
  