Dlaczego przechodzenie NAT ma znaczenie, gdy sieci utrudniają bezpośrednie połączenia

Niektóre problemy z połączeniem nie są spowodowane przez używaną aplikację. Pochodzą ze ścieżki sieciowej pomiędzy urządzeniami.

Możesz to zauważyć, gdy połączenie zostaje nawiązane natychmiast w domu Wi-Fi, ale ma problemy w hotelu Wi-Fi, gdy lobby gier działa dla jednego gracza, a nie dla innego, lub gdy narzędzie ochrony prywatności zachowuje się inaczej po przełączeniu z komórkowej transmisji danych na sieć biurową. Jednym z częstych powodów jest NAT: warstwa translacji adresów sieciowych, która umożliwia wielu urządzeniom współdzielenie jednego publicznego adresu internetowego.

W tym artykule wyjaśniono, czym jest przechodzenie NAT, dlaczego istnieje dziurkowanie UDP, kiedy przydatne stają się rezerwowe przekaźniki i dlaczego czytelnicy VPN Satelites powinni traktować te koncepcje jako kontekst połączenia, a nie magiczne gwarancje.

Co NAT robi w codziennych sieciach

Większość ludzi korzysta z sieci prywatnych, nie myśląc o nich. Twój laptop, telefon, tablet i telewizor mogą znajdować się za jednym routerem. Wewnątrz domu każde urządzenie ma swój prywatny adres. W szerszym Internecie często wydaje się, że mają ten sam adres publiczny.

To tłumaczenie jest przydatne. Pomaga sieciom chronić publiczne adresy IPv4 i umożliwia zarządzanie normalnym routingiem domowym. Ale stwarza to również problem praktyczny: urządzenie poza siecią zwykle nie może po prostu otworzyć bezpośredniego połączenia z urządzeniem w sieci, chyba że router wie, dokąd powinien kierować ruch przychodzący.

W przypadku zwykłego przeglądania Internetu zwykle jest to w porządku. Twoje urządzenie rozpoczyna połączenie na zewnątrz, router zapamiętuje mapowanie, a odpowiedzi wracają tą tymczasową ścieżką. W przypadku aplikacji, które wymagają dwóch punktów końcowych do bardziej bezpośredniej komunikacji, zwłaszcza za pośrednictwem UDP, sytuacja może być mniej przewidywalna.

Jest to podstawowe ustawienie przesuwu NAT.

Co to jest przejście NAT?

Traversal NAT to ogólna nazwa technik, które pomagają aplikacjom komunikować się w sieciach, w których jeden lub oba punkty końcowe znajdują się za NAT.

Mówiąc prosto, aplikacja próbuje odpowiedzieć na praktyczne pytanie: „Czy te dwa urządzenia mogą znaleźć do siebie działającą ścieżkę, mimo że ich routery tłumaczą adresy i filtrują ruch przychodzący?”

Nie ma jednej uniwersalnej odpowiedzi, ponieważ zachowanie NAT jest różne. Standardy takie jak IETF RFC 4787 opisują zachowanie NAT dla UDP i wyjaśniają, dlaczego spójność ma znaczenie w przypadku aplikacji czasu rzeczywistego, takich jak komunikacja multimedialna i gry online. Ten sam szeroki problem pojawia się w wielu kategoriach nowoczesnych aplikacji: połączenia, narzędzia do współpracy, gry, narzędzia zdalnego dostępu, systemy typu peer-to-peer i aplikacje podobne do VPN mogą mieć wpływ na sposób, w jaki sieci obsługują ruch.

W przypadku czytników VPN Satelites wniosek jest prosty: jeśli połączenie zachowuje się inaczej w różnych sieciach, może to odzwierciedlać zachowanie routera, NAT klasy operatorskiej, zasady zapory sieciowej, filtrowanie pakietów, przeciążenie lub inne warunki na ścieżce. Nie powinno to być automatycznie odczytywane jako dowód, że jedno z ustawień aplikacji jest uszkodzone.

Co to jest dziurkowanie UDP?

UDP jest często używany w aplikacjach czasu rzeczywistego, ponieważ pozwala uniknąć niektórych opóźnień i narzutów związanych z ruchem zorientowanym na połączenie. Jednak UDP nie tworzy długotrwałej sesji w taki sam sposób, w jaki wiele osób wyobraża sobie tradycyjne połączenie.

Dziurkowanie UDP to technika przechodzenia NAT, w której każdy z dwóch punktów końcowych wysyła wychodzące pakiety UDP, dzięki czemu ich urządzenia NAT tworzą tymczasowe mapowania. Jeśli synchronizacja i zachowanie NAT są zgodne, ruch z drugiej strony może powrócić przez te mapowania.

Wyrażenie brzmi agresywnie, ale koncepcja jest bardziej zwyczajna, niż sugeruje nazwa. Chodzi o pracę z istniejącymi regułami routera dla ruchu wychodzącego i powrotnego. Podstawowe badania przeprowadzone w Bryan Ford, Pyda Srisuresh i Dan Kegel opisują dziurkowanie jako praktyczne podejście stosowane w aplikacjach opartych na UDP, podkreślając jednocześnie kluczowe ograniczenie: żadna technika przechodzenia nie działa w każdej konfiguracji NAT.

To ograniczenie ma znaczenie. Niektóre sieci ponownie wykorzystują mapowania w przydatny sposób. Inni tworzą mapowania ściślej powiązane z konkretnym miejscem docelowym. Niektóre sieci dodają funkcję zapory ogniowej do NAT. W przypadku niektórych sieci komórkowych i dostawców usług internetowych użytkownicy pozostają w tyle za NAT klasy operatorskiej, w którym użytkownik w ogóle nie kontroluje warstwy translacji nadrzędnej.

Kiedy więc ktoś pyta, co to jest dziurkowanie UDP, krótka odpowiedź brzmi: jest to sposób, w jaki aplikacje mogą próbować bezpośredniej ścieżki UDP poprzez mapowania utworzone przez NAT. Ostrożna odpowiedź brzmi: może dobrze działać w wielu środowiskach, ale nie jest to gwarancją.

Dlaczego bezpośrednie połączenia czasami zawodzą

Bezpośrednia łączność może zakończyć się niepowodzeniem z kilku typowych powodów:

  • Router może nie używać tego samego mapowania portów zewnętrznych, gdy aplikacja łączy się z różnymi miejscami docelowymi.
  • Sieć może filtrować przychodzące pakiety UDP bardziej rygorystycznie niż inna sieć.
  • Warstwa NAT klasy operatorskiej może znajdować się pomiędzy użytkownikiem a publicznym Internetem.
  • Sieć miejsc pracy, szkół, hoteli lub obiektów może ograniczać ruch zgodnie ze swoimi własnymi zasadami.
  • Sieć komórkowa może zmieniać ścieżki w miarę zmiany jakości sygnału lub przyłącza sieciowego.
  • Produkt zabezpieczający lub lokalna zapora sieciowa może blokować ruch, zanim dotrze do aplikacji.

Żaden z tych przypadków nie oznacza, że ​​użytkownicy powinni próbować ominąć reguły, nad którymi nie mają kontroli. Praktycznym punktem jest zrozumienie, że zachowanie połączenia zależy od więcej niż jednej preferencji aplikacji. Jeśli sieć celowo blokuje lub ogranicza pewien rodzaj ruchu, następnym właściwym krokiem jest zazwyczaj skorzystanie z dozwolonej sieci, sprawdzenie warunków świadczenia usługi lub rozmowa z administratorem sieci.

Gdzie pasują rezerwowe przekaźniki

Gdy bezpośrednie połączenie jest zawodne, niektóre systemy korzystają z przekaźnika: oba punkty końcowe łączą się na zewnątrz z serwerem pośrednim, a serwer przekazuje ruch między nimi. IETF RFC 5766 opisuje TURN, skrót od przejścia za pomocą przekaźników wokół NAT, jako protokół komunikacji wspomaganej przekaźnikiem, gdy bezpośrednia komunikacja równorzędna nie jest możliwa w niektórych sytuacjach NAT.

Przekaźniki rozwiązują inny problem niż bezpośrednie przejście NAT. Przekaźnik może poprawić osiągalność, ponieważ oba urządzenia muszą jedynie połączyć się z usługą przekaźnika. Kompromis polega na tym, że ruch odbywa się dodatkową ścieżką, co może zwiększyć opóźnienia, koszt przepustowości i złożoność operacyjną.

Z tego powodu wiele projektów łączności woli najpierw wypróbować ścieżkę bezpośrednią, a następnie w razie potrzeby cofnąć się. IETF RFC 8445 opisuje ICE jako podejście oparte na standardach dla przemierzania NAT dla komunikacji opartej na UDP, która wykorzystuje koncepcje STUN i TURN do odkrywania i testowania możliwych ścieżek. Nie oznacza to, że każde narzędzie związane z VPN wykorzystuje ICE, STUN lub TURN. Pokazuje po prostu typowy wzorzec inżynieryjny: przetestuj, która ścieżka działa, a następnie użyj rozwiązania awaryjnego, jeśli bezpośrednia łączność nie jest dostępna.

Dla czytelników ważną lekcją jest realistyczne ustalanie oczekiwań. Awaria przekaźnika może umożliwić połączenie w sytuacjach, gdy zawiedzie trasa bezpośrednia, ale to nie to samo, co spowodowanie zniknięcia wszystkich warunków sieciowych.

Co to oznacza dla czytelników VPN Satelites

Treść VPN Satelites często dotyczy takich tematów, jak prywatność, łączność, routing internetowy i oczekiwania użytkowników. Traversal NAT należy do tego samego obszaru edukacyjnego, ponieważ wyjaśnia, dlaczego sieć wokół aplikacji może mieć równie duże znaczenie jak sama aplikacja.

W tym temacie ważne jest, aby połączenie produktu było skromne. W tym artykule nie twierdzono, że VPN Satelites wykorzystuje jakąkolwiek konkretną metodę przechodzenia NAT, architekturę przekaźnika, konfigurację przekierowania portów, opcję statycznego adresu IP lub stos protokołów. Wartością jest tutaj praktyczna umiejętność czytania i pisania: zrozumienie terminów pomaga dokładniej przeczytać wskazówki dotyczące rozwiązywania problemów i ocenić problemy z połączeniem, nie spodziewając się, że jakakolwiek aplikacja związana z VPN zastąpi każdą regułę sieciową.

Jeśli połączenie jest niestabilne, kilka kontroli niskiego ryzyka może pomóc w oddzieleniu zachowania aplikacji od zachowania sieci:

  • Wypróbuj inną dozwoloną sieć, np. domową Wi-Fi lub mobilną transmisję danych, i sprawdź, czy problem dotyczy aplikacji czy sieci.
  • Uruchom ponownie router lokalny, jeśli nim sterujesz, a normalna łączność będzie obniżona.
  • Sprawdź, czy siecią zarządza miejsce pracy, szkoła, hotel, miejsce lub dostawca usług internetowych, w którym obowiązują ograniczenia ruchu.
  • Aktualizuj aplikację i system operacyjny, ponieważ obsługa połączeń może się różnić w zależności od wersji.
  • Unikaj zmiany zaawansowanych ustawień routera lub zapory sieciowej, chyba że rozumiesz wpływ lub masz zgodę administratora.

Te kroki nie omijają ograniczeń. Pomagają określić, skąd może pochodzić problem z połączeniem.

Jak uważnie czytać oświadczenia dotyczące przejścia NAT

Jeśli zobaczysz, że produkt, protokół lub aplikacja mówi o przechodzeniu przez NAT, przeczytaj dokładnie informację.

Przydatne pytania obejmują:

  • Czy twierdzenie dotyczy ogólnej techniki tworzenia sieci, czy potwierdzonej cechy produktu?
  • Czy wyjaśnia, które warunki sieciowe są obsługiwane, a które nie?
  • Czy wspomina o zachowaniu awaryjnym, nie obiecując doskonałej osiągalności?
  • Czy unika sugestii, że użytkownicy mogą ignorować ograniczenia w miejscu pracy, szkole, dostawcy usług internetowych, platformie lub ograniczenia prawne?
  • Czy oddziela roszczenia dotyczące prywatności od roszczeń dotyczących łączności?

Ten ostatni punkt łatwo przeoczyć. Funkcja ułatwiająca połączenie dwóch punktów końcowych nie gwarantuje automatycznie prywatności. Funkcja prywatności nie gwarantuje automatycznie łączności. Dobra dokumentacja powinna oddzielać te pomysły.

Często zadawane pytania

Czy przechodzenie NAT jest takie samo jak VPN?

Nie. Traversal NAT to zestaw technik sieciowych do obsługi translacji adresów i filtrowania pomiędzy punktami końcowymi. VPN to szersza kategoria technologii do tworzenia chronionych tuneli sieciowych. Niektóre aplikacje podobne do VPN mogą wymagać uwzględnienia zachowania NAT, ale koncepcje nie są takie same.

Czy dziurkowanie UDP zawsze działa?

Nie. Dziurkowanie UDP zależy od zachowania NAT, reguł filtrowania, taktowania i topologii sieci. Zarówno badania, jak i dyskusje na temat standardów wskazują na tę samą praktyczną rzeczywistość: zachowanie NAT jest zróżnicowane, dlatego mogą być potrzebne ścieżki awaryjne.

Czy rezerwowe przekaźniki są lepsze niż połączenia bezpośrednie?

Są inni. Przekaźnik może pomóc, gdy bezpośrednia komunikacja nie jest możliwa, ale może zwiększyć opóźnienia, wykorzystanie przepustowości i koszty operacyjne. Ścieżka bezpośrednia może być bardziej wydajna, jeśli działa, ale może nie działać w bardziej rygorystycznych sieciach.

Czy w tym artykule jest napisane, że VPN Satelites używa STUN, TURN, ICE, przekaźników lub przekierowania portów?

Nie. Te terminy są omawiane jako ogólne koncepcje sieciowe i tło standardów. Artykuł ten nie zawiera żadnych zastrzeżeń dotyczących implementacji specyficznej dla produktu w odniesieniu do VPN Satelites.

Czy przejście NAT może ominąć reguły sieciowe?

W tym artykule nie podano wskazówek dotyczących obejścia. Przeglądanie NAT może pomóc w wyjaśnieniu zachowania połączenia, ale użytkownicy powinni przestrzegać obowiązujących przepisów, warunków świadczenia usług i zasad sieciowych.

Konkluzja

Przechodzenie przez NAT ma znaczenie, ponieważ ścieżka internetowa między dwoma urządzeniami nie zawsze jest bezpośrednia i przewidywalna. Dziurkowanie UDP może pomóc niektórym aplikacjom w nawiązaniu bezpośredniej komunikacji poprzez NAT, natomiast rezerwowe przekaźniki mogą być pomocne w przypadku awarii ścieżek bezpośrednich. Obydwa pomysły są przydatne, ale żaden z nich nie jest uniwersalnym rozwiązaniem.

Dla czytelników VPN Satelites najbardziej praktyczną lekcją jest ustalenie realistycznych oczekiwań. Niezawodność połączenia zależy od aplikacji, urządzenia, sieci lokalnej, zasad sieci nadrzędnej i szerszej trasy między punktami końcowymi. Zrozumienie tych warstw sprawia, że ​​rozwiązywanie problemów jest spokojniejsze, a oświadczenia dotyczące produktów łatwiejsze do krytycznego odczytania.