GRE

De la Wikipedia, enciclopedia liberă
Jump to navigation Jump to search

Generic Routing Encapsulation (prescurtat GRE, în română Încapsulare Generică pentru Rutare) este un protocol de tunelare dezvoltat de Cisco Systems care poate încapsula numeroase protocoale de nivel rețea în legături punct-la-punct virtuale peste o rețea IP.

Exemple de utilizare[modificare | modificare sursă]

  • Împreună cu PPTP pentru a crea VPN-uri.
  • În VPN-uri cu IPsec permite transmiterea informațiilor de rutare între retelele conectate.
  • În protocoalele din rețelele mobile.
  • În interfețele A8/A10 încapsulează informația IP de la/către PCF (Packet Control Function).
  • Linux și BSD pot stabilit tunele IP peste GRE ad-hoc care sunt interoperabile cu echipamentele Cisco.
  • Tunelare de la un dispozitiv protejat împotriva DDoS către un echipament neprotejat.

Exemple de stivă de protocoale[modificare | modificare sursă]

Nivel OSI Protocol
5. Sesiune X.225
4. Transport UDP
3. Rețea (încapsulat în GRE) IPv6
Încapsulare GRE
3. Rețea IPv4
2. Legătură de date Ethernet
1. Fizic Nivelul fizic Ethernet

Protocoalele de încapsulare, cum este și GRE, strică stivuirea protocoalelor din OSI. Ele pot fi văzute ca separatoare între 2 stive diferite de protocoale, una din acestea transportând-o pe cealalată.

IP ca protocol de rețea[modificare | modificare sursă]

Pachetele GRE care sunt încapsulate în IP folosesc tipul de protocol 47.[1]

Antetul pachetului[modificare | modificare sursă]

Antetului pachetului GRE standard[modificare | modificare sursă]

Antetul unui pachet GRE standard, așa cum este el definit în RFC 2784 și RFC 2890, este reprezentat în figura de mai jos.

Biți 0–3 4–12 13–15 16–31
C K S Rezervat0 Versiune Tip de protocol
Sumă de control (opțional) Rezervat1 (opțional)
Cheie (opțional)
Număr de secvență (opțional)
C
Bitul pentru sumă de control. Setat dacă este prezentă suma de control.
K
Bitul pentru cheie. Setat dacă este prezentă o cheie.
S
BItul pentru numărul de secvența. Setat dacă este prezent un număr de secvență.
Rezervat0
Biți rezervați; setați la 0.
Versiune
Versiunea de GRE; în prezent, setat la 0.
Tip de protocol
Indică tipul de protocol al pachetului încapsulat. Este tipul folosit de Ethernet (Pentru IPv4, acesta ar fi 0x0800.)
Sumă de control
Prezent dacă bitul C este setat; conține suma de control pentru antetul GRE și payload.
Rezervat1
Prezent dacă bitul C este setat; valoarea este 0.
Cheie
Prezent dacă bitul K este setat; conține o cheie specifică aplicației curente.
Număr de secvență
Prezent dacă bitul S este setat; conține numărul de secvență al pachetului GRE.

Antetul pachetului GRE pentru PPTP[modificare | modificare sursă]

Protocolul PPTP, definit în RFC 2637, folosește o variantă a antetului GRE preentată mai jos. PPTP creează un tunel GRE prin care sunt trimise pachetele PPP.

Biți 0–4 5–7 8 9-12 13–15 16–31
C R K S s Recur A Flaguri Versiune Tip de protocol
Lungimea cheii pentru conținut Cheie Call ID
Număr de secvență (opțional)
Număr de confirmare (opțional)
C
Sumă de control. Pentru PPTP, este setat la 0.
R
Bit de rutare. Pentru PPTP, este setat la 0.
K
Bit pentru cheie. Pentru PPTP, este setat la 1 (toate pachetele GRE de PPTP au o cheie)
S
Identificatorul pentru numărul de secvență. Setat la 1 pentru pachetele de date, unde există un număr de secvență.
s
Bitul pentru rutarea strictă după sursă. Pentru pachetele de PPTP, este setat la 0.
Recur
Biți pentru controlul recursivității. Sunt setați la 0.
A
Setat la 1 când este prezent un număr de confirmare, ceea ce indică un pachet GRE de confirmare.
Flaguri
Setate la 0.
Versiune
Versiunea protocolului GRE. Pentru pachete PPTP, versiunea este 1.
Tip de protocol
Pentru  PPTP valoarea este 0x880B.
Lungimea payloadului
Conține mărimea payloadului, fără antetul GRE.
Call ID
Conține identificatorul de sesiune al partenerului pentru conexiunea curentă.
Număr de secvență
Prezent dacă este setat bitul S; conține numărul de secvență al pachetului GRE.
Număr de confirmare
Prezent dacă este setat bitul A; conține numărul de secvență al ultimului pachet GRE primit de transmițător.

Standarde[modificare | modificare sursă]

  • RFC 1701: GRE (informațional)
  • RFC 1702: GRE în rețele IPv4 (informațional)
  • RFC 2637: PPTP (informațional)
  • RFC 2784: Propunere pentru standardul GRE, actualizat de  RFC 2890
  • RFC 2890: Extensii pentru chei și numere de secvență în GRE (standard propus)

Note[modificare | modificare sursă]

  1. ^ RFC 1702: Generic Routing Encapsulation over IPv4 networks.

Legături externe[modificare | modificare sursă]