Protokół GRE w routerach przemysłowych
Protokół GRE (Generic Routing Encapsulation) to protokół komunikacyjny używany do nawiązywania bezpośredniego połączenia typu punkt-punkt między węzłami sieciowymi. GRE przyjmuje technologię tunelową, która jest protokołem tunelowania warstwy 3 VPN (Virtual Private Network) i kapsułkuje wiadomości danych niektórych protokołów warstwy sieciowej (takich jak IP i IPX), tak aby te kapsułkowane wiadomości danych mogły być przesyłane w innym protokole warstwy sieciowej (takim jak IP), rozwiązując w ten sposób problem krzyżowo-rozproszonej sieci. Kapsułuje wiadomości danych niektórych protokołów warstwy sieciowej (takich jak IP i IPX), tak aby te kapsułkowane wiadomości danych mogły być przesyłane w innym protokole warstwy sieciowej (takim jak IP), rozwiązując w ten sposób problem transmisji przez heterogeniczne sieci. GRE jest zdefiniowany w RFC 2784.
Protokół GRE ma następujące zalety.
W ramach jednego protokołu szkieletowego stosuje się wiele protokołów.
Konstrukcję sieci można zbudować przy ograniczonej liczbie przeskoków
Sieciowanie nieciągłych podsieci
Niższe wymagania dotyczące zasobów w porównaniu z alternatywami (np. sieciami VPN IPsec)
Zasada działania
System kieruje dane do punktów końcowych GRE za pośrednictwem tras ustalonych w tabeli routingu. Gdy punkt końcowy GRE odbiera pakiet, jest on dekapsulowany i przekierowywany do adresu docelowego. Tunele GRE są bezstanowe, a punkty końcowe tunelu nie zawierają żadnych informacji o stanie lub dostępności zdalnych punktów końcowych tunelu. Dlatego przełącznik działający jako router źródłowy tunelu nie może wyłączyć interfejsu tunelu GRE, jeśli zdalny punkt końcowy jest nieosiągalny.
Przepływ transmisji wiadomości GRE
Jeśli wiadomość z Hosta A jest przesyłana z RouteraA do RouteraB, dane GRE są kapsułkowane na RouterzeA i dekapsulowane na RouterzeB. Ścieżka, którą kapsułkowana wiadomość danych przechodzi przez sieć, to tunel GRE.
1. Wiadomość enkapsulacji
1) Gdy router A odbiera pakiet od hosta A 192.168.10.10 z adresem IP docelowym 192.172.1.10 (host B), kapsułkuje oryginalny pakiet jako pakiet danych w protokole GRE i dodaje nagłówek GRE ze źródłem IP 1.1.1.2 i adresem IP docelowym 1.1.1.3 na przeciwległym końcu tunelu.
2) Zakończ enkapsulację pakietu GRE
3) Router A kontynuuje dodawanie adresu IP źródłowego tunelu GRE 113.113.11.11 i adresu IP docelowego 113.113.10.10 na zewnątrz pakietu i wysyła go do Internetu.
2. Rozpakowywanie wiadomości
1) Po wysłaniu pakietu do Internetu wszystkie routery będą przekazywać pakiet wyłącznie zgodnie z zewnętrznym publicznym adresem IP, dopóki pakiet nie zostanie przekazany do rzeczywistego adresu IP docelowego 113.113.10.10 (router B).
2) Router B najpierw rozszyfruje nagłówek publicznego adresu IP pakietu, a następnie zorientuje się, że docelowy adres IP w nagłówku GRE to 1.1.1.3, czyli dokładnie to samo.
3) Router B będzie kontynuował rozpakowywanie pakietu GRE i stwierdzi, że docelowy adres IP to 192.172.1.10, a następnie ostatecznie wyśle pakiet do adresu 192.172.1.10 (host B).