Generic Routing Encapsulation - Generic Routing Encapsulation
| Kommunikationsprotokoll | |
| Ändamål | Nätverkstunnel |
|---|---|
| Utvecklare | Cisco Systems |
| Introducerad | 1994 |
| RFC (s) | RFC1701, RFC1702, RFC2784 |
Generic Routing Encapsulation ( GRE ) är ett tunnlingsprotokoll som utvecklats av Cisco Systems , som kan inkapsla en mängd olika nätverkslagerprotokoll inuti virtuella punkt-till-punkt-länkar eller punkt-till-multi länkar över ett Internet Protocol nätverk.
Exempel på användningsområden
- I kombination med PPTP för att skapa VPN .
- I kombination med IPsec VPN: er för att tillåta överföring av routningsinformation mellan anslutna nätverk.
- I rörlighetsprotokoll .
- I A8/A10 -gränssnitt för att inkapsla IP -data till/från Packet Control Function (PCF).
- Linux och BSD kan etablera ad-hoc IP över GRE-tunnlar som är kompatibla med Cisco-utrustning.
- Distribuerad denial of service (DDoS) skyddad apparat till en oskyddad slutpunkt .
Exempel på protokollstack
| OSI -modellskikt | Protokoll |
|---|---|
| 5. Session | X.225 |
| 4. Transport | UDP |
| 3. Nätverk (GRE-inkapslat) | IPv4 |
| Inkapsling | GRE |
| 3. Nätverk | IPv6 |
| 2. Datalänk | Ethernet |
| 1. Fysisk | Ethernet fysiskt lager |
Baserat på principerna för protokollskiktning i OSI bryter protokollinkapsling, inte specifikt GRE, lagringsordningen. Det kan ses som en separator mellan två olika protokollstackar, en fungerar som bärare för en annan.
IP som leveransprotokoll
GRE -paket som är inkapslade inom IP använder IP -protokoll typ 47 .
Paketrubrik
Utökat GRE -pakethuvud (RFC 2890)
Den utökade versionen av GRE -pakethuvudet enligt RFC 2890 .
| Bit 0–3 | 4-12 | 13-15 | 16–31 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | K | S | Reserverad0 | Version | Protokollstyp | ||||||||||||||||||||||||||
| Checksumma (valfritt) | Reserverad 1 (valfritt) | ||||||||||||||||||||||||||||||
| Nyckel (valfritt) | |||||||||||||||||||||||||||||||
| Sekvensnummer (valfritt) | |||||||||||||||||||||||||||||||
- C
- Checksumma lite. Ställ in på 1 om en kontrollsumma finns.
- K
- Nyckelbit. Ställ in på 1 om en nyckel finns.
- S
- Sekvensnummer bit. Ställ in på 1 om ett sekvensnummer finns.
- Reserverad0
- Reserverade bitar; inställt på 0.
- Version
- GRE Versionsnummer; inställt på 0.
- Protokollstyp
- Indikerar eterprotokollstypen för den inkapslade nyttolasten. (För IPv4 skulle detta vara hex 0800.)
- Checksumma
- Närvarande om C -biten är inställd; innehåller kontrollsumman för GRE -huvudet och nyttolasten.
- Reserverad 1
- Närvarande om C -biten är inställd; är inställt på 0.
- Nyckel
- Presentera om K -biten är inställd; innehåller ett applikationsspecifikt nyckelvärde.
- Sekvensnummer
- Presentera om S -biten är inställd; innehåller ett sekvensnummer för GRE -paketet.
Standard GRE -pakethuvud (RFC 2784)
En standard GRE -pakethuvudstruktur , enligt definitionen i RFC 2784 och RFC 2890 , representeras i diagrammet nedan.
| 0 | Bit 1–12 | 13–15 | 16–31 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | Reserverad0 | Version | Protokollstyp | ||||||||||||||||||||||||||||
| Checksumma (valfritt) | Reserverad1 (valfritt) | ||||||||||||||||||||||||||||||
- C
- Checksumma lite. Ställ in på 1 om en kontrollsumma finns.
- Reserverad0
- Reserverade bitar; inställt på 0.
- Version
- GRE Versionsnummer; inställt på 0.
- Protokollstyp
- Indikerar eterprotokollstypen för den inkapslade nyttolasten. (För IPv4 skulle detta vara hex 0800.)
- Checksumma
- Närvarande om C -biten är inställd; innehåller kontrollsumman för GRE -huvudet och nyttolasten.
- Reserverad 1
- Närvarande om C -biten är inställd; är inställt på 0.
Standard GRE -pakethuvud (RFC 1701, föråldrat)
Den nyare strukturen ersatte den ursprungliga strukturen enligt definitionen i RFC 1701 :
| Bit 0–4 | 5–7 | 8-12 | 13–15 | 16–31 | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | R | K | S | s | Upprepas | Flaggor | Version | Protokollstyp | |||||||||||||||||||||||
| Checksumma (valfritt) | Förskjutning (tillval) | ||||||||||||||||||||||||||||||
| Nyckel (valfritt) | |||||||||||||||||||||||||||||||
| Sekvensnummer (valfritt) | |||||||||||||||||||||||||||||||
| Routing (valfritt, variabel längd) | |||||||||||||||||||||||||||||||
Den ursprungliga GRE RFC definierade ytterligare fält i pakethuvudet som blev föråldrade i den nuvarande standarden:
- R
- Routing Bit. Ställ in på 1 om information om routning och förskjutning finns.
- K
- Nyckelbit. Ställ in på 1 om en nyckel finns.
- S
- Sekvensnummer bit. Ställ in på 1 om ett sekvensnummer finns.
- s
- Strikt källvägsbit.
- Upprepas
- Rekursionskontrollbitar .
- Flaggor
- Reserverad för framtida bruk, inställt på 0.
- Offset
- Presentera om R -bit eller C -bit är inställd; innehåller giltig information, endast om R -bit är inställd. Ett förskjutningsfält som anger förskjutningen inom ruttfältet till den aktiva källvägsposten
- Nyckel
- Presentera om K -biten är inställd; innehåller ett applikationsspecifikt nyckelvärde.
- Sekvensnummer
- Presentera om S -biten är inställd; innehåller ett sekvensnummer för GRE -paketet.
- Routing
- Närvarande om R -bit är inställd; innehåller en lista med källvägsposter, därför av variabel längd
PPTP GRE -pakethuvud
Den Point-to-Point Tunneling Protocol (PPTP), definierad i RFC 2637 , använder en variant GRE pakethuvud struktur, representeras nedan. PPTP skapar en GRE -tunnel genom vilken PPTP GRE -paketen skickas.
| Bit 0–4 | 5–7 | 8 | 9-12 | 13–15 | 16–31 | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | R | K | S | s | Upprepas | A | Flaggor | Version | Protokollstyp | ||||||||||||||||||||||
| Nyckellastlängd | Nyckelsamtal -ID | ||||||||||||||||||||||||||||||
| Sekvensnummer (valfritt) | |||||||||||||||||||||||||||||||
| Kvittensnummer (valfritt) | |||||||||||||||||||||||||||||||
- C
- Checksumma lite. För PPTP GRE -paket är detta inställt på 0.
- R
- Routing bit. För PPTP GRE -paket är detta inställt på 0.
- K
- Nyckelbit. För PPTP GRE -paket är detta inställt på 1. (Alla PPTP GRE -paket har en nyckel.)
- S
- Sekvensnummer bit. Ställ in på 1 om ett sekvensnummer tillhandahålls, vilket indikerar ett PPTP GRE -datapaket.
- s
- Strikt källvägsbit. För PPTP GRE -paket är detta inställt på 0.
- Upprepas
- Rekursionskontrollbitar . För PPTP GRE -paket är dessa inställda på 0.
- A
- Kvittensnummer finns. Ställ in på 1 om ett kvittensnummer tillhandahålls, vilket indikerar ett PPTP GRE -bekräftelsepaket.
- Flaggor
- Flagga bitar. För PPTP GRE -paket är dessa inställda på 0.
- Version
- GRE Versionsnummer. För PPTP GRE -paket är detta inställt på 1.
- Protokollstyp
- För PPTP GRE -paket är detta inställt på hex 880B.
- Nyckellastlängd
- Innehåller storleken på nyttolasten, exklusive GRE -rubriken.
- Nyckelsamtal -ID
- Innehåller Peer's Call ID för den session som paketet tillhör.
- Sekvensnummer
- Presentera om S -biten är inställd; innehåller GRE nyttolast sekvensnummer.
- Kvittensnummer
- Presentera om A -biten är inställd; innehåller sekvensnumret för det högsta GRE -nyttolastpaketet som mottagits av avsändaren.
Standarder
- RFC 1701 : Generic Routing Encapsulation (GRE) (informativ)
- RFC 1702 : Generic Routing Encapsulation via IPv4 -nätverk (informativ)
- RFC 2637 : Point to Point Tunneling Protocol (informativt)
- RFC 2784 : Generic Routing Encapsulation (GRE) (föreslagen standard, uppdaterad av RFC 2890)
- RFC 2890 : Utökningar av nyckel- och sekvensnummer till GRE (föreslagen standard)
- RFC 8086 : GRE-in-UDP-inkapsling (föreslagen standard)
Se även
- Nätverksvirtualisering med Generic Routing Encapsulation - bär L2 -paket över GRE
Referenser
externa länkar
- Generic Routing Encapsulation , Hemsida för subprotokoll på Cisco
- Generic Routing Encapsulation , Entry in Cisco DocWiki (tidigare känd som "Internetworking Technology Handbook")