Ogólna enkapsulacja routingu — Generic Routing Encapsulation

Ogólna enkapsulacja routingu
Protokół komunikacyjny
Cel, powód Tunelowanie sieci
Deweloper(zy) Systemy Cisco
Wprowadzono 1994
RFC RFC1701, RFC1702, RFC2784

Generic Routing Encapsulation ( GRE ) to protokół tunelowania opracowany przez firmę Cisco Systems, który umożliwia hermetyzację szerokiej gamy protokołów warstwy sieci w wirtualnych łączach typu punkt-punkt lub łączach punkt-wielopunkt w sieci protokołu internetowego .

Przykładowe zastosowania

  • W połączeniu z PPTP do tworzenia VPN .
  • W połączeniu z IPsec VPN, aby umożliwić przekazywanie informacji o routingu między połączonymi sieciami.
  • W protokołach mobilności .
  • W interfejsach A8/A10 do enkapsulacji danych IP do/z funkcji kontroli pakietów (PCF).
  • Linux i BSD mogą ustanawiać ad-hoc IP przez tunele GRE, które są kompatybilne ze sprzętem Cisco.
  • Urządzenie chronione rozproszoną odmową usługi (DDoS) do niechronionego punktu końcowego .

Przykładowy stos protokołów

Warstwa modelu OSI Protokół
5. Sesja X.225
4. Transport UDP
3. Sieć (enkapsulacja GRE) IPv4
Kapsułkowanie GRE
3. Sieć IPv6
2. Łącze danych Ethernet
1. Fizyczne Warstwa fizyczna Ethernet

W oparciu o zasady tworzenia warstw protokołu w OSI, enkapsulacja protokołu, a nie konkretnie GRE, łamie porządek warstw. Może być postrzegany jako separator między dwoma różnymi stosami protokołów, z których jeden działa jako nośnik dla drugiego.

IP jako protokół dostarczania

Pakiety GRE, które są enkapsulowane w IP, korzystają z protokołu IP typu 47 .

Nagłówek pakietu

Rozszerzony nagłówek pakietu GRE (RFC 2890)

Rozszerzona wersja nagłówka pakietu GRE zgodnie z definicją RFC 2890 .

Bity 0–3 4-12 13-15 16–31
C K S Zarezerwowane0 Wersja Typ protokołu
Suma kontrolna (opcjonalnie) Zarezerwowane 1 (opcjonalnie)
Klucz (opcjonalnie)
Numer porządkowy (opcjonalnie)
C
Bit sumy kontrolnej . Ustaw na 1, jeśli suma kontrolna jest obecna.
K
Kluczowy bit. Ustaw na 1, jeśli klucz jest obecny.
S
Bit numeru sekwencyjnego. Ustaw na 1, jeśli obecny jest numer sekwencji.
Zarezerwowane0
Zarezerwowane bity; ustawiony na 0.
Wersja
Numer wersji GRE; ustawiony na 0.
Typ protokołu
Wskazuje typ protokołu ether kapsułkowanego ładunku. (W przypadku IPv4 będzie to szesnastkowy 0800.)
Suma kontrolna
Obecny, jeśli ustawiony jest bit C; zawiera sumę kontrolną nagłówka i ładunku GRE.
Zarezerwowane1
Obecny, jeśli ustawiony jest bit C; jest ustawiony na 0.
Klucz
Obecny, jeśli ustawiony jest bit K; zawiera wartość klucza specyficznego dla aplikacji.
Numer sekwencji
Obecny, jeśli ustawiony jest bit S; zawiera numer sekwencyjny pakietu GRE.

Standardowy nagłówek pakietu GRE (RFC 2784)

Na poniższym schemacie przedstawiono standardową strukturę nagłówka pakietu GRE , określoną w dokumentach RFC 2784 i RFC 2890 .

0 Bity 1–12 13-15 16–31
C Zarezerwowane0 Wersja Typ protokołu
Suma kontrolna (opcjonalnie) Zarezerwowane1 (opcjonalnie)
C
Bit sumy kontrolnej . Ustaw na 1, jeśli suma kontrolna jest obecna.
Zarezerwowane0
Zarezerwowane bity; ustawiony na 0.
Wersja
Numer wersji GRE; ustawiony na 0.
Typ protokołu
Wskazuje typ protokołu ether kapsułkowanego ładunku. (W przypadku IPv4 będzie to szesnastkowy 0800.)
Suma kontrolna
Obecny, jeśli ustawiony jest bit C; zawiera sumę kontrolną nagłówka i ładunku GRE.
Zarezerwowane1
Obecny, jeśli ustawiony jest bit C; jest ustawiony na 0.

Standardowy nagłówek pakietu GRE (RFC 1701, przestarzały)

Nowsza struktura zastąpiła oryginalną strukturę zdefiniowaną w RFC  1701 :

Bity 0–4 5–7 8-12 13-15 16–31
C r K S s Powtarzać się Flagi Wersja Typ protokołu
Suma kontrolna (opcjonalnie) Przesunięcie (opcjonalnie)
Klucz (opcjonalnie)
Numer porządkowy (opcjonalnie)
Trasowanie (opcjonalne, zmienna długość)

Oryginalny GRE RFC zdefiniował kolejne pola w nagłówku pakietu, które stały się przestarzałe w obecnym standardzie:

r
Bit routingu. Ustaw na 1, jeśli dostępne są informacje o trasowaniu i odsunięciu.
K
Kluczowy bit. Ustaw na 1, jeśli klucz jest obecny.
S
Bit numeru sekwencyjnego. Ustaw na 1, jeśli obecny jest numer sekwencji.
s
Ścisły bit trasy źródłowej.
Powtarzać się
Bity kontrolne rekurencji .
Flagi
Zarezerwowane do wykorzystania w przyszłości, ustawione na 0.
Zrównoważyć
Obecny, jeśli ustawiony jest bit R lub C; zawiera prawidłowe informacje, tylko jeśli ustawiony jest bit R. Pole przesunięcia wskazujące przesunięcie w polu Routing do aktywnego wpisu trasy źródłowej
Klucz
Obecny, jeśli ustawiony jest bit K; zawiera wartość klucza specyficznego dla aplikacji.
Numer sekwencji
Obecny, jeśli ustawiony jest bit S; zawiera numer sekwencyjny pakietu GRE.
Rozgromienie
Obecny, jeśli ustawiony jest bit R; zawiera listę wpisów trasy źródłowej, dlatego ma zmienną długość

Nagłówek pakietu PPTP GRE

Point-to-Point Protocol tunelowania (PPTP), zdefiniowane w RFC 2637 , wykorzystuje się strukturę nagłówka pakietu wariant GRE przedstawioną poniżej. PPTP tworzy tunel GRE, przez który wysyłane są pakiety PPTP GRE.

Bity 0–4 5–7 8 9-12 13-15 16–31
C r K S s Powtarzać się A Flagi Wersja Typ protokołu
Długość ładowności klucza Kluczowy identyfikator połączenia
Numer porządkowy (opcjonalnie)
Numer potwierdzenia (opcjonalnie)
C
Bit sumy kontrolnej . Dla pakietów PPTP GRE jest to ustawione na 0.
r
Bit routingu. Dla pakietów PPTP GRE jest to ustawione na 0.
K
Kluczowy bit. W przypadku pakietów PPTP GRE jest to ustawione na 1. (Wszystkie pakiety PPTP GRE zawierają klucz).
S
Bit numeru sekwencyjnego. Ustaw na 1, jeśli podano numer sekwencyjny, wskazując pakiet danych PPTP GRE.
s
Ścisły bit trasy źródłowej. Dla pakietów PPTP GRE jest to ustawione na 0.
Powtarzać się
Bity kontrolne rekurencji . W przypadku pakietów PPTP GRE są one ustawione na 0.
A
Obecny numer potwierdzenia. Ustaw na 1, jeśli podano numer potwierdzenia, wskazując pakiet potwierdzenia PPTP GRE.
Flagi
Bity flagowe. W przypadku pakietów PPTP GRE są one ustawione na 0.
Wersja
Numer wersji GRE. W przypadku pakietów PPTP GRE jest to ustawione na 1.
Typ protokołu
Dla pakietów PPTP GRE jest to ustawione na 880B w systemie szesnastkowym.
Długość ładowności klucza
Zawiera rozmiar ładunku, bez nagłówka GRE.
Kluczowy identyfikator połączenia
Zawiera identyfikator połączenia peera dla sesji, do której należy pakiet.
Numer sekwencji
Obecny, jeśli ustawiony jest bit S; zawiera numer sekwencji ładunku GRE.
Numer potwierdzenia
Obecny, jeśli ustawiony jest bit A; zawiera numer sekwencyjny najwyższego pakietu danych GRE odebranego przez nadawcę.

Normy

  • RFC  1701 : Generic Routing Encapsulation (GRE) (informacyjny)
  • RFC  1702 : Generic Routing Encapsulation w sieciach IPv4 (informacyjne)
  • RFC  2637 : Protokół tunelowania punkt-punkt (informacyjny)
  • RFC  2784 : Generic Routing Encapsulation (GRE) (proponowany standard, zaktualizowany przez RFC 2890)
  • RFC  2890 : Rozszerzenia kluczy i numerów sekwencji do GRE (proponowany standard)
  • RFC  8086 : Enkapsulacja GRE-in-UDP (proponowany standard)

Zobacz też

Bibliografia

Zewnętrzne linki