Udostępnij za pośrednictwem


Praca z translatorami adresów sieciowych i zaporami

Klient i serwer połączenia sieciowego często nie mają bezpośredniej i otwartej ścieżki komunikacji. Pakiety są filtrowane, kierowane, analizowane i przekształcane zarówno na maszynach punktu końcowego, jak i przez maszyny pośrednie w sieci. Translacje adresów sieciowych i zapory to typowe przykłady aplikacji pośrednich, które mogą uczestniczyć w komunikacji sieciowej.

Transporty programu Windows Communication Foundation (WCF) i wzorce wymiany komunikatów (MEPs) reagują inaczej, obecność sieciowych i zapór. W tym temacie opisano sposób działania sieciowych i zapór w typowych topologiach sieci. Rekomendacje dla konkretnych kombinacji transportów WCF i posłów do parlamentu, które pomagają zwiększyć niezawodność aplikacji dla sieciowych i zapór.

Jak sieci dostępu do sieci wpływają na komunikację

Translator adresów sieciowych został utworzony w celu umożliwienia kilku maszyn współużytkowania jednego zewnętrznego adresu IP. Translator adresów sieciowych mapowania portów mapuje wewnętrzny adres IP i port połączenia z zewnętrznym adresem IP z nowym numerem portu. Nowy numer portu umożliwia translatorowi adresów sieciowych skorelowanie ruchu zwrotnego z oryginalną komunikacją. Wielu użytkowników domowych ma teraz adres IP, który jest tylko prywatnie routingu i polega na translatorze adresów sieciowych w celu zapewnienia globalnego routingu pakietów.

Translator adresów sieciowych nie zapewnia granicy zabezpieczeń. Jednak typowe konfiguracje translatora adresów sieciowych uniemożliwiają bezpośrednie skierowanie maszyn wewnętrznych. Chroni to maszyny wewnętrzne przed niektórymi niechcianymi połączeniami i utrudnia pisanie aplikacji serwera, które muszą asynchronicznie wysyłać dane z powrotem do klienta. Translator adresów sieciowych ponownie zapisuje adresy w pakietach, aby wydawać się, że połączenia pochodzą z maszyny translatora adresów sieciowych. Powoduje to niepowodzenie serwera podczas próby otwarcia połączenia z powrotem do klienta. Jeśli serwer używa postrzeganego adresu klienta, kończy się niepowodzeniem, ponieważ nie można publicznie kierować adresu klienta. Jeśli serwer używa adresu NAT, nie można nawiązać połączenia, ponieważ żadna aplikacja nie nasłuchuje na tym komputerze.

Niektóre punkty dostępu do sieci obsługują konfigurację reguł przekazywania, aby umożliwić maszynom zewnętrznym łączenie się z określoną maszyną wewnętrzną. Instrukcje dotyczące konfigurowania reguł przesyłania dalej różnią się w zależności od różnych sieci sieciowych i monitowanie użytkowników końcowych o zmianę konfiguracji translatora adresów sieciowych nie jest zalecane w przypadku większości aplikacji. Wielu użytkowników końcowych nie może lub nie chce zmieniać konfiguracji translatora adresów sieciowych dla określonej aplikacji.

Jak zapory wpływają na komunikację

Zapora to oprogramowanie lub urządzenie sprzętowe, które stosuje reguły do ruchu przechodzącego w celu podjęcia decyzji, czy zezwolić na przejście, czy go odrzucić. Zapory można skonfigurować do sprawdzania przychodzących i/lub wychodzących strumieni ruchu. Zapora zapewnia granicę zabezpieczeń dla sieci na krawędzi sieci lub na hoście punktu końcowego. Użytkownicy biznesowi tradycyjnie przechowywali swoje serwery za zaporą, aby zapobiec złośliwym atakom. Od czasu wprowadzenia zapory osobistej w systemie Windows XP liczba użytkowników domowych za zaporą znacznie się zwiększyła. To sprawia, że prawdopodobnie jeden lub oba końce połączenia mają zaporę badającą pakiety.

Zapory różnią się znacznie pod względem ich złożoności i możliwości badania pakietów. Proste zapory stosują reguły na podstawie adresów źródłowych i docelowych oraz portów w pakietach. Inteligentne zapory mogą również badać zawartość pakietów w celu podejmowania decyzji. Te zapory są dostępne w wielu różnych konfiguracjach i są często używane w wyspecjalizowanych aplikacjach.

Typową konfiguracją zapory użytkownika macierzystego jest zakaz połączeń przychodzących, chyba że połączenie wychodzące zostało wcześniej nawiązane z tym komputerem. Typową konfiguracją zapory użytkownika biznesowego jest zakaz połączeń przychodzących na wszystkich portach z wyjątkiem zidentyfikowanej grupy. Przykładem jest zapora, która zabrania połączeń na wszystkich portach z wyjątkiem portów 80 i 443 w celu zapewnienia usługi HTTP i HTTPS. Zarządzane zapory istnieją zarówno dla użytkowników domowych, jak i biznesowych, którzy zezwalają zaufanemu użytkownikowi lub procesowi na maszynie na zmianę konfiguracji zapory. Zarządzana zapora jest częściej spotykana dla użytkowników domowych, w których nie ma zasad firmowych kontrolujących użycie sieci.

Korzystanie z teredo

Teredo to technologia przejścia IPv6, która umożliwia bezpośrednią adresowanie maszyn za translatorem adresów sieciowych. Teredo opiera się na użyciu serwera, który może być publicznie i globalnie kierowany do anonsowania potencjalnych połączeń. Serwer Teredo udostępnia klientowi aplikacji i serwerowi wspólny punkt spotkania, w którym mogą wymieniać informacje o połączeniu. Następnie maszyny żądają tymczasowego adresu Teredo, a pakiety są tunelowane przez istniejącą sieć. Obsługa teredo w programie WCF wymaga włączenia obsługi protokołów IPv6 i Teredo w systemie operacyjnym. Systemy operacyjne Windows XP i nowsze obsługują teredo. System Windows Vista i nowsze systemy operacyjne domyślnie obsługują protokół IPv6 i wymagają tylko od użytkownika włączenia protokołu Teredo. System Windows XP z dodatkiem SP2 i Windows Server 2003 wymaga od użytkownika włączenia protokołów IPv6 i Teredo. Aby uzyskać więcej informacji, zobacz Teredo Overview (Omówienie teredo).

Wybieranie wzorca transportu i wymiany komunikatów

Wybór transportu i posła do PE jest procesem trzyetapowym:

  1. Analizowanie adresowalności maszyn punktów końcowych. Serwery przedsiębiorstwa często mają bezpośrednią możliwość adresowania, podczas gdy użytkownicy końcowi często mają zablokowaną możliwość adresowania przez sieci. Jeśli oba punkty końcowe znajdują się za translatorem adresów sieciowych, na przykład w scenariuszach komunikacji równorzędnej między użytkownikami końcowymi, może być potrzebna technologia, taka jak Teredo, aby zapewnić możliwość adresowania.

  2. Przeanalizuj ograniczenia protokołu i portu maszyn punktów końcowych. Serwery przedsiębiorstwa są zwykle za silnymi zaporami, które blokują wiele portów. Jednak port 80 jest często otwarty, aby zezwolić na ruch HTTP, a port 443 jest otwarty, aby zezwolić na ruch HTTPS. Użytkownicy końcowi mają mniejsze prawdopodobieństwo ograniczenia portów, ale mogą znajdować się za zaporą, która zezwala tylko na połączenia wychodzące. Niektóre zapory umożliwiają zarządzanie przez aplikacje w punkcie końcowym w celu selektywnego otwierania połączeń.

  3. Oblicz transporty i deputowanych, że adresowalność i ograniczenia portów zezwolenia na sieć.

Typową topologią aplikacji klient-serwer jest posiadanie klientów, którzy znajdują się za translatorem adresów sieciowych bez teredo z zaporą tylko dla ruchu wychodzącego i serwerem, który jest bezpośrednio adresowany z silną zaporą. W tym scenariuszu transport TCP z dwudupleksowym deputowanym i transportem HTTP z deputowanym do pep odpowiedzi na żądanie działa dobrze. Typową topologią aplikacji równorzędnych jest posiadanie obu punktów końcowych za zaporami i punktami dostępu do sieci. W tym scenariuszu i w scenariuszach, w których topologia sieci jest nieznana, należy wziąć pod uwagę następujące zalecenia:

  • Nie należy używać transportu podwójnego. Podwójny transport otwiera więcej połączeń, co zmniejsza prawdopodobieństwo pomyślnego nawiązania połączenia.

  • Obsługa ustanawiania kanałów zwrotnych za pośrednictwem połączenia źródłowego. Użycie kanałów zaplecza, takich jak w przypadku dwukierunkowego protokołu TCP, powoduje otwarcie mniejszej liczby połączeń, co zwiększa prawdopodobieństwo pomyślnego nawiązania połączenia.

  • Zastosuj dostępną usługę do rejestrowania punktów końcowych lub przekazywania ruchu. Użycie globalnie dostępnej usługi połączenia, takiej jak serwer Teredo, znacznie zwiększa prawdopodobieństwo pomyślnego nawiązania połączenia, gdy topologia sieci jest restrykcyjna lub nieznana.

W poniższych tabelach przedstawiono jednokierunkowe, żądania i dupleksowe deputowanych oraz standardowe tcp, TCP z teredo oraz standardowe i podwójne transporty HTTP w usłudze WCF.

Adresowalność Serwer bezpośredni Bezpośredni serwer z przechodzeniem translatora adresów sieciowych Translator adresów sieciowych serwera Translator adresów sieciowych serwera z przechodzeniem translatora adresów sieciowych
Bezpośredni klient Każdy transport i poseł do PE Każdy transport i poseł do PE Nieobsługiwane. Nieobsługiwane.
Bezpośredni klient z przechodzeniem translatora adresów sieciowych Każdy transport i poseł do PE. Każdy transport i poseł do PE. Nieobsługiwane. Protokół TCP z teredo i dowolnym deputowanym. System Windows Vista ma opcję konfiguracji dla całej maszyny do obsługi protokołu HTTP z teredo.
Translator adresów sieciowych klienta Każdy transport inny niż podwójny i poseł do PE. Dwukierunkowy protokół MEP wymaga transportu TCP. Każdy transport inny niż podwójny i poseł do PE. Dwukierunkowy protokół MEP wymaga transportu TCP. Nieobsługiwane. Nieobsługiwane.
Translator adresów sieciowych klienta z przechodzeniem translatora adresów sieciowych Każdy transport inny niż podwójny i poseł do PE. Dwukierunkowy protokół MEP wymaga transportu TCP. Wszystkie, ale podwójne HTTP i każdy poseł do PE. Dwukierunkowy protokół MEP wymaga transportu TCP. Podwójny transport TCP wymaga teredo. System Windows Vista ma opcję konfiguracji dla całej maszyny do obsługi protokołu HTTP z teredo. Nieobsługiwane. Protokół TCP z teredo i dowolnym deputowanym. System Windows Vista ma opcję konfiguracji dla całej maszyny do obsługi protokołu HTTP z teredo.
Ograniczenia zapory Serwer otwarty Serwer z zarządzaną zaporą Serwer z zaporą tylko protokołu HTTP Serwer z zaporą tylko dla ruchu wychodzącego
Klient otwarty Każdy transport i poseł do PE. Każdy transport i poseł do PE. Każdy transport HTTP i mep. Nieobsługiwane.
Klient z zarządzaną zaporą Każdy transport inny niż podwójny i poseł do PE. Dwukierunkowy protokół MEP wymaga transportu TCP. Każdy transport inny niż podwójny i poseł do PE. Dwukierunkowy protokół MEP wymaga transportu TCP. Każdy transport HTTP i mep. Nieobsługiwane.
Klient z zaporą tylko http Każdy transport HTTP i mep. Każdy transport HTTP i mep. Każdy transport HTTP i mep. Nieobsługiwane.
Klient z zaporą tylko dla ruchu wychodzącego Każdy transport inny niż podwójny i poseł do PE. Dwukierunkowy protokół MEP wymaga transportu TCP. Każdy transport inny niż podwójny i poseł do PE. Dwukierunkowy protokół MEP wymaga transportu TCP. Każdy transport HTTP i dowolny niedupleksowy poseł DO PE. Nieobsługiwane.