Tunel (informatyka)
Tunel – zestawienie połączenia między dwoma odległymi hostami tak, by stworzyć wrażenie, że są połączone bezpośrednio.
W miarę rozwoju sieci komputerowych najpierw lokalnych, a następnie rozległych, powstało zapotrzebowanie na łączenie ze sobą różnych sieci lokalnych za pośrednictwem publicznych sieci rozległych. Sieci lokalne korzystają jednak z innych protokołów sieciowych, niż sieci rozległe. Na przykład popularne sieci lokalne firmy Novell pracują w protokole IPX, sieci rozległe wykorzystują natomiast protokoły Frame Relay, ATM, X.25, a na nich często IP (np. Internet). Łączenie sieci wykorzystujących inny protokół niż sieć rozległa, poprzez sieć rozległą w wirtualną sieć prywatną (VPN), nie jest jedynym przesłaniem wykorzystywania tunelowania. Drugim i często istotniejszym jest bezpieczeństwo. Szczególnie ostatnio tunelowanie bywa często łączone z wykorzystaniem metod kryptograficznych. Często zwykli użytkownicy Internetu stosują tę technikę do własnych potrzeb. Przykładem jest korzystanie z dostępnego w Internecie oprogramowania szyfrującego o nazwie SSH. Oprogramowanie to, oprócz bezpiecznej pracy zdalnej, umożliwia tworzenie dodatkowego kanału szyfrowanego, przez który użytkownik może „tunelować” dowolną inną – potencjalnie narażoną na niebezpieczeństwo podsłuchu – usługę TCP/IP (np. FTP, telnet, IRC). Warunkiem jest jedynie zainstalowane SSH na obu końcach połączenia.
Generalnie można stwierdzić, iż tunelowanie umożliwia przesyłanie pewnych usług sieciowych za pośrednictwem innych, często odmiennych usług sieci, pracujących w różnych standardach.
Niezależnie od rodzaju używanych protokołów i celu, do jakiego tunelowanie ma służyć, jego podstawowa technika pozostaje taka sama. Zwykle jeden protokół służy do ustanowienia połączenia z miejscem zdalnym a drugi do opakowywania danych i instrukcji w celu przesyłania ich przez tunel.
Przykładem wykorzystania tunelu do obejścia niezgodności między protokołami i adresami jest zestaw SIT (z ang Simple Internet Transition) który dołączony jest do protokołu IPv6. Technika tunelowania wykorzystana jest na przykład jako narzędzie dostarczone przez grupę roboczą do spraw Internetu ułatwiające przechodzenie od wersji 4 protokołu Internetu do jego wersji 6. Wersje IPv4 i IPv6 różnią się od siebie na tyle, że ich bezpośrednie współdziałanie nie jest możliwe. Współdziałanie umożliwia im dopiero zastosowanie tunelowania protokołu IPv4 przez protokół IPv6 i na odwrót.
Tunelowanie służy również zabezpieczaniu danych przez utworzenie wokół nich osłony przydatnej podczas przesyłania ich przez domeny pozbawione mechanizmów bezpieczeństwa. Protokołem tunelowania zaprojektowanym specjalnie w celu realizacji tej funkcji jest protokół PPTP (z ang. Point to Point Tunneling Protocol).
Tunele oparte na SSH
Tunelowanie, czyli inaczej przekierowywanie portów polega na przesyłaniu niezabezpieczonych pakietów protokołów TCP (POP3, SMTP czy HTTP) przez bezpieczny protokół SSH.
Istnieją dwa rodzaje przekierowania portów: lokalne (wychodzące) oraz zdalne (przychodzące).
- Lokalne – przekierowuje ruch przychodzący na port lokalny na odpowiedni port zdalny. Na przykład ruch przychodzący na lokalny port 5000 może zostać przekierowany na port 80 na serwerze.
- Zdalne – przekierowuje ruch przychodzący na port na serwerze na odpowiedni port lokalny. Na przykład ruch przychodzący na port 1234 na serwerze może zostać przekierowany na port 23 na komputerze lokalnym.
Tunele GRE
GRE czyli Generic Routing Encapsulation jest to protokół, który został opracowany przez firmę CISCO.
Tunele IPsec
IPsec, czyli Internet Protocol security udostępnia mechanizmy silnej kryptografii, które umożliwiają uwierzytelnianie oraz szyfrowanie. Uwierzytelnienie gwarantuje, że pakiety pochodzą od właściwego nadawcy oraz że nie zostały zmienione podczas transmisji. Szyfrowanie zapobiega przeglądaniu pakietów przez nieuprawnionych użytkowników.
Tunele IP in IP
Ten rodzaj tunelowania istnieje w Linuksie od dawna. Działa tylko dla IPv4, nie jest kompatybilny z innymi systemami operacyjnymi.
Linki zewnętrzne
Media użyte na tej stronie
(c) Pankrecik2 z polskiej Wikipedii, CC BY-SA 3.0
Redirect local port by remote host to destination host using ssh tuneling