Zagadnienia dotyczące wielodostępności w usłudze Azure NAT Gateway

Usługa Azure NAT Gateway zapewnia kontrolę nad wychodzącą łącznością sieciową z zasobów hostowanych w sieci wirtualnej platformy Azure. W tym artykule opisano, jak brama translatora adresów sieciowych może ograniczyć wyczerpanie portów translatora adresów sieciowych (SNAT), co może mieć wpływ na aplikacje wielodostępne. Sprawdzimy również, jak brama translatora adresów sieciowych przypisuje statyczne adresy IP do ruchu wychodzącego z rozwiązania wielodostępnego.

Uwaga

Zapory, takie jak Azure Firewall, umożliwiają kontrolowanie i rejestrowanie ruchu wychodzącego. Azure Firewall zapewnia również podobną skalę portów SNAT i kontrolę adresów IP ruchu wychodzącego do bramy translatora adresów sieciowych. Brama translatora adresów sieciowych jest mniej kosztowna, ale ma również mniej funkcji i nie jest produktem zabezpieczającym.

Funkcje bramy translatora adresów sieciowych, które obsługują wielodostępność

Porty SNAT o dużej skali

Porty SNAT są przydzielane, gdy aplikacja wykonuje wiele współbieżnych połączeń wychodzących z tym samym publicznym adresem IP na tym samym porcie. Porty SNAT to skończony zasób w modułach równoważenia obciążenia. Jeśli aplikacja otworzy dużą liczbę oddzielnych połączeń z tym samym hostem, może korzystać ze wszystkich dostępnych portów SNAT. Ta sytuacja jest nazywana wyczerpaniem portów SNAT.

W większości aplikacji wyczerpanie portów SNAT wskazuje, że aplikacja nieprawidłowo obsługuje połączenia HTTP lub porty TCP. Jednak niektóre aplikacje wielodostępne są narażone na przekroczenie limitów portów SNAT, nawet jeśli odpowiednio ponownie korzystają z połączeń. Na przykład taka sytuacja może wystąpić, gdy aplikacja łączy się z wieloma bazami danych specyficznymi dla dzierżawy za tą samą bramą bazy danych.

Porada

Jeśli zauważysz wyczerpanie portów SNAT w aplikacji wielodostępnej, sprawdź, czy aplikacja jest zgodna z dobrymi rozwiązaniami. Upewnij się, że ponownie używasz połączeń HTTP i nie tworzysz ponownie nowych połączeń za każdym razem, gdy łączysz się z usługą zewnętrzną. Może być możliwe wdrożenie bramy translatora adresów sieciowych w celu obejścia problemu, ale jeśli kod nie będzie przestrzegał najlepszych rozwiązań, możesz ponownie napotkać problem w przyszłości.

Problem jest zaostrzony podczas pracy z usługami platformy Azure, które współużytkują alokacje portów SNAT między wieloma klientami, takimi jak Azure App Service i Azure Functions.

Jeśli ustalisz, że występuje wyczerpanie sieci SNAT i upewnij się, że kod aplikacji poprawnie obsługuje połączenia wychodzące, rozważ wdrożenie bramy translatora adresów sieciowych. Takie podejście jest często używane przez klientów, którzy wdrażają wielodostępne rozwiązania oparte na Azure App Service i Azure Functions.

Każdy publiczny adres IP dołączony do bramy translatora adresów sieciowych udostępnia 64 512 portów SNAT na potrzeby nawiązywania połączenia wychodzącego z Internetem. Brama translatora adresów sieciowych może być skalowana w celu użycia maksymalnie 16 publicznych adresów IP, które zapewniają ponad 1 milion portów SNAT. Jeśli chcesz skalować poza ten limit, możesz rozważyć wdrożenie wielu wystąpień bramy translatora adresów sieciowych w wielu podsieciach lub sieciach wirtualnych. Każda maszyna wirtualna w podsieci może używać dowolnego z dostępnych portów SNAT, jeśli ich potrzebuje.

Kontrolka wychodzącego adresu IP

Kontrolka adresów IP ruchu wychodzącego może być przydatna w aplikacjach wielodostępnych, jeśli masz wszystkie następujące wymagania:

  • Używasz usług platformy Azure, które nie zapewniają automatycznie dedykowanych statycznych adresów IP dla ruchu wychodzącego. Te usługi obejmują Azure App Service, Azure Functions, API Management (podczas uruchamiania w warstwie zużycia) i Azure Container Instances.
  • Musisz połączyć się z sieciami dzierżawców za pośrednictwem Internetu.
  • Dzierżawcy muszą filtrować ruch przychodzący na podstawie adresu IP każdego żądania.

Po zastosowaniu wystąpienia bramy translatora adresów sieciowych do podsieci każdy ruch wychodzący z tej podsieci używa publicznych adresów IP skojarzonych z bramą translatora adresów sieciowych.

Uwaga

Po skojarzeniu wielu publicznych adresów IP z jedną bramą translatora adresów sieciowych ruch wychodzący może pochodzić z dowolnego z tych adresów IP. Może być konieczne skonfigurowanie reguł zapory w miejscu docelowym. Należy zezwolić na każdy adres IP lub użyć zasobu prefiksu publicznego adresu IP , aby użyć zestawu publicznych adresów IP w tym samym zakresie.

Modele izolacji

Jeśli musisz podać różne wychodzące publiczne adresy IP dla każdej dzierżawy, musisz wdrożyć poszczególne zasoby bramy translatora adresów sieciowych. Każda podsieć może być skojarzona z pojedynczym wystąpieniem bramy translatora adresów sieciowych. Aby wdrożyć więcej bram translatora adresów sieciowych, należy wdrożyć wiele podsieci lub sieci wirtualnych. Z kolei prawdopodobnie trzeba wdrożyć wiele zestawów zasobów obliczeniowych.

Zapoznaj się z tematem Metody architektury dla sieci w rozwiązaniach wielodostępnych, aby uzyskać więcej informacji na temat projektowania topologii sieci wielodostępnej.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

  • John Downs | Główny inżynier klienta, fasttrack dla platformy Azure

Inni współautorzy:

Aby wyświetlić niepubliowe profile usługi LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki