Generic Routing Encapsulation

***Generic Routing Encasulation*** (*GRE*) ir tunelēšanas protokols, kuru izstrādāja *[[Cisco Systems]]*. Tā galvenais mērķis ir OSI modeļa tīkla slāņa protokolu iekapsulēšana Interneta protokola (IP) paketē. *GRE* ir savs IP numurs - 47. Piemērs, kā divi maršrutētāji tiek savienoti ar ''GRE'' tuneli Interneta vidē tā, it kā tie būtu savienoti tieši viens ar otru.|thumb|600px|right

Iekapsulēšanas procesā piedalās trīs protokoli:
# Iekapsulējamais protokols
# Iekapsulēšanas protokols (*GRE*)
# Transporta protokols IP

## Pielietojums
** GRE ** tunelēšanas protokols ļauj savienot divus tīkla maršrutētājus loģiskajā topoloģijā punkts—punkts, izmantojot IP kā transporta protokolu, tādā veidā paslēpjot iekapsulējamo protokolu.

Kā iekapsulējamie protokoli var būt dažādi *[[OSI modelis|OSI]]* modeļa tīkla slāņa protokoli, piemēram — *[[IPv4]]*, *[[IPv6]]*, *[[IPX]]*, *[[AppleTalk]]*, *[[CLNP]]*, *[[PPP]]* u.c.

## Protokolu steks

Tabulā ir attēlots veids, kā tiek veikta *GRE* iekapsulēšana.

## ''GRE IP'' pakas struktūra
** GRE ** pakas sastāv no trīs iesākumiem (*header*) un vērtuma (*payload*). 

## ''GRE'' pakas iesākums
*GRE* pakas iesākuma diagramma

*0 bits(C) ja uzstādīts kā 1 - Iekļauta kontrolsumma.
*1 bits(R) ja uzstādīts kā 1 - Iekļauti atkāpes (offset) un maršrutēšanas (routing) lauki.
*2 bits(K) ja uzstādīts kā 1 - Iekļauts atslēgas (key) lauks.
*3 bits(S) ja uzstādīts kā 1 - Iekļauts secības (sequence).
*4 bits(s) ja uzstādīts kā 1 - Stingra maršruta avots (Strict sorce route) bits ir atrunāts citā dokumentā un tiek ieteikts (s) bitu uzstādīt kā 1 tikai, ja visa maršrutēšanas informācija sastāv no stingra maršruta avota.
* **Rekursijas kontroles (Recur) lauks** - (3 biti) iekļauj atļauto papildu iekapsulēšanas skaitu.
* **Karodziņu lauks** - (5 biti) ir rezervēts un tam jābūt uzstādītam kā 0.
* **Versijas lauks** - (3 biti) satur GRE protokola versiju.
* **Protokola tipa lauks** - (16 biti) iekļauj sevī vērtuma paketes protokola tipu. Kopumā tas būs paketes *[[Ethernet]]* protokola tips.
* **Kontrolsummas lauks** - (16 biti) Satur IP pakas kontrolsummu.
* **Atkāpes (Offset) lauks** - (16 biti) norāda baitu atkāpi, sākot ar maršrutēšanas lauku līdz pirmajam aktīva stingrā maršrutēšanas avota lauka baitam.  
* **Atslēgas lauks** - (32 biti) Satur iekapsulēšanas procesā uzstādītu numuru, kurš var tikt izmantots kā avota autentifikācijas pārbaudes parametrs.
* **Secības lauks** - (32 biti) Satur iekapsulēšanas procesā uzstādītu secības numuru, saņēmējs var izmantot, lai kontrolēt paku saņemšanas secību.
* **Maršrutēšanas lauks** - satur maršrutēšanas avotu ierakstus (Source Route Entry).
* **Maršrutēšanas avotu ieraksti (SRE)**

* **Address family** - (16 biti) Norāda maršrutēšanas informācijas lauka sintaksi un semantiku.  
* **SRE atkāpe** - (8 biti) norāda baitu atkāpi, sākot ar maršrutēšanas lauku līdz pirmajam aktīva stingrā maršrutēšanas avota lauka baitam.
* **SRE garums** - (8 biti) norāda *SRE* garumu baitos, ja uzstādīts kā 0, tad šis *SRE* ir pēdējais.
* **Maršrutēšanas informācija** - satur informāciju, kura var noderēt šīs pakas maršrutēšanā.

## Ārējās saites
*  RFC-1701
* RFC-1702 (GRE over IPv4)
* RFC-2784