Przegląd platformy Azure Well-Architected Framework dla bramy translatora adresów sieciowych platformy Azure

Azure Application Gateway
Azure Virtual Network
Azure Private Link

Ten artykuł zawiera najlepsze rozwiązania dotyczące bramy translatora adresów sieciowych platformy Azure. Wskazówki są oparte na pięciu filarach doskonałości architektury: Optymalizacja kosztów, Doskonałość operacyjna, Wydajność wydajności, Niezawodność i Bezpieczeństwo.

Zakładamy, że masz działającą wiedzę na temat usługi Azure NAT Gateway i że znasz odpowiednie funkcje. W ramach odświeżania zapoznaj się z pełnym zestawem dokumentacji usługi Azure NAT Gateway.

Translator adresów sieciowych oznacza translacja adresów sieciowych. Zobacz Wprowadzenie do tłumaczenia adresów sieciowych.

Optymalizacja kosztów

Dostęp do usług PaaS powinien być za pośrednictwem usługi Azure Private Link lub punktów końcowych usługi (w tym magazynu), aby uniknąć korzystania z bramy translatora adresów sieciowych. Punkty końcowe usługi Private Link i usługi nie wymagają przechodzenia przez bramę translatora adresów sieciowych w celu uzyskania dostępu do usług PaaS. Takie podejście zmniejszy opłatę za GB przetwarzanych danych, porównując koszty bramy translatora adresów sieciowych z usługą Private Link lub punktami końcowymi usługi. Istnieją dodatkowe korzyści zabezpieczeń dotyczące korzystania z usługi Private Link lub punktów końcowych usługi.

Efektywność wydajności

Każdy zasób bramy translatora adresów sieciowych zapewnia do 50 Gb/s przepływności. Wdrożenia można podzielić na wiele podsieci, a następnie przypisać każdą podsieć lub grupy podsieci bramy translatora adresów sieciowych w celu skalowania w poziomie.

Każdy publiczny adres IP bramy translatora adresów sieciowych zapewnia maksymalnie 64 512 portów SNAT. Do bramy translatora adresów sieciowych można przypisać maksymalnie 16 adresów IP. Adresy IP mogą być pojedynczymi publicznymi adresami IP w warstwie Standardowa, prefiksem publicznego adresu IP lub oba te adresy. W przypadku połączeń przechodzących do tego samego punktu końcowego docelowego brama translatora adresów sieciowych może obsługiwać odpowiednio maksymalnie 50 000 współbieżnych przepływów dla połączeń TCP i UDP na przypisany wychodzący adres IP. Aby uzyskać szczegółowe informacje, zapoznaj się z następującą sekcją w temacie Source Network Address Translation (SNAT). TCP to skrót od Transmission Control Protocol, a UDP oznacza User Datagram Protocol.

Wyczerpanie translatora SNAT

  • Zasoby bramy translatora adresów sieciowych mają domyślny limit czasu bezczynności protokołu TCP przez 4 minuty, które można skonfigurować do 120 minut. Jeśli to ustawienie zostanie zmienione na wyższą wartość niż domyślna, brama translatora adresów sieciowych będzie przechowywać przepływy dłużej i może spowodować niepotrzebne obciążenie spisu portów SNAT.
  • Żądania niepodzielne (jedno żądanie na połączenie) są złym wyborem projektowym, ponieważ ogranicza skalę, zmniejsza wydajność i zmniejsza niezawodność. Zamiast tego użyj ponownie połączeń HTTP/S, aby zmniejszyć liczbę połączeń i skojarzonych portów SNAT. Połączenie ponowne użycie pozwoli aplikacji na skalowanie. Wydajność aplikacji poprawi się ze względu na zmniejszenie nakładu pracy, nakładu pracy i kosztów operacji kryptograficznych podczas korzystania z protokołu TLS.
  • Wyszukiwania systemu nazw domen (DNS) mogą wprowadzać wiele pojedynczych przepływów na woluminie, gdy klient nie buforuje wyniku rozpoznawania nazw DNS. Buforowanie DNS umożliwia zmniejszenie liczby przepływów i zmniejszenie liczby portów SNAT. DNS to system nazewnictwa mapujący nazwy domen na adresy IP dla zasobów połączonych z Internetem lub z siecią prywatną.
  • Przepływy UDP, takie jak wyszukiwanie DNS, używają portów SNAT podczas limitu czasu bezczynności. Czasomierz limitu czasu bezczynności protokołu UDP jest stały o 4 minutach i nie można go zmienić.
  • Użyj pul połączeń, aby kształtować wolumin połączenia.
  • Nigdy nie porzucaj przepływu TCP w trybie dyskretnym i polegaj na czasomierzach TCP w celu oczyszczenia przepływu. Jeśli nie zezwolisz na jawne zamknięcie połączenia przez protokół TCP, połączenie TCP pozostanie otwarte. Systemy pośrednie i punkty końcowe będą utrzymywać to połączenie w użyciu, co z kolei sprawia, że port SNAT jest niedostępny dla innych połączeń. Ten antywzór może wyzwalać błędy aplikacji i wyczerpanie SNAT.
  • Nie zmieniaj wartości czasomierza powiązanego z protokołem TCP na poziomie systemu operacyjnego bez specjalistycznej wiedzy na temat implikacji. Podczas odzyskiwania stosu TCP wydajność aplikacji może mieć negatywny wpływ, gdy punkty końcowe połączenia mają niezgodne oczekiwania. Zmiana wartości czasomierza jest zwykle oznaką podstawowego problemu projektowego. Jeśli aplikacja bazowa ma inne anty-wzorce, wyczerpanie SNAT może być również wzmocnione, jeśli wartości czasomierza są zmieniane.

Zapoznaj się z poniższymi wskazówkami, aby zwiększyć skalę i niezawodność usługi:

  • Zapoznaj się z efektem zmniejszenia limitu czasu bezczynności protokołu TCP w celu obniżenia wartości. Domyślny limit czasu bezczynności 4 minuty może zwolnić spis portów SNAT wcześniej.
  • Rozważ asynchroniczne wzorce sondowania dla długotrwałych operacji, aby zwolnić zasoby połączenia dla innych operacji.
  • Długotrwałe przepływy, takie jak ponowne użycie połączeń TCP, powinny używać utrzymywania tcp keepalives lub utrzymywania warstwy aplikacji, aby uniknąć przekroczenia limitu czasu systemów pośrednich. Należy zwiększyć limit czasu bezczynności tylko w ostateczności i może nie rozwiązać głównej przyczyny. Długi limit czasu może powodować błędy o niskiej szybkości, gdy limit czasu wygaśnie i może powodować opóźnienia i niepotrzebne błędy. Elementy utrzymania tcp można włączyć z jednej strony połączenia w celu zachowania aktywności połączenia z obu stron.
  • W przypadku długotrwałych przepływów z ruchem UDP można włączyć elementy utrzymania protokołu UDP, aby zachować aktywne połączenia. Należy pamiętać, że elementy UDP są włączone po jednej stronie połączenia, a połączenie jest aktywne tylko po jednej stronie. Elementy utrzymania protokołu UDP muszą być włączone po obu stronach połączenia w celu zachowania aktywności połączenia.
  • Bezpieczne wzorce ponawiania prób należy używać, aby uniknąć agresywnych ponownych prób/serii podczas przejściowych awarii lub odzyskiwania po awarii. Antywzorzec nazywany połączeniami niepodzielnych jest tworzony podczas tworzenia nowego połączenia TCP dla każdej operacji HTTP. Połączenia niepodzielne uniemożliwią aplikacji skalowanie dobrze i zmarnują zasoby. Zawsze potokuj wiele operacji do tego samego połączenia. Twoja aplikacja będzie korzystać z szybkości transakcji i kosztów zasobów. Gdy aplikacja korzysta z szyfrowania warstwy transportu (na przykład protokołu TLS), wiąże się ze znaczącym kosztem przetwarzania nowych połączeń. Zobacz Wzorce projektowe chmury platformy Azure, aby uzyskać więcej wzorców najlepszych rozwiązań.

Doskonałość operacyjna

Chociaż brama translatora adresów sieciowych może być używana z usługą Azure Kubernetes Service (AKS), nie jest ona zarządzana w ramach usługi AKS. Jeśli przypiszesz bramę translatora adresów sieciowych do podsieci interfejsu sieci kontenera (CNI), włączysz zasobniki usługi AKS do ruchu wychodzącego za pośrednictwem bramy translatora adresów sieciowych.

W przypadku korzystania z wielu bram NAT w różnych strefach lub w różnych regionach należy zachować możliwość zarządzania infrastrukturą adresów IP dla ruchu wychodzącego przy użyciu prefiksów publicznych adresów IP platformy Azure lub prefiksów BYOIP. Rozmiar prefiksu IP, który jest większy niż 16 adresów IP (/28 rozmiar prefiksu) nie może być przypisany do bramy translatora adresów sieciowych.

Alerty usługi Azure Monitor umożliwiają monitorowanie i zgłaszanie alertów dotyczących użycia portów SNAT, przetworzonych lub porzuconych pakietów oraz ilości przesyłanych danych. Użyj dzienników przepływu sieciowej grupy zabezpieczeń, aby monitorować przepływ ruchu wychodzącego z wystąpień maszyn wirtualnych w skonfigurowanej podsieci bramy translatora adresów sieciowych.

Po skonfigurowaniu podsieci z bramą translatora adresów sieciowych brama translatora adresów sieciowych zastąpi wszystkie pozostałe połączenia wychodzące z publicznym Internetem dla wszystkich maszyn wirtualnych w tej podsieci. Brama translatora adresów sieciowych będzie mieć pierwszeństwo przed modułem równoważenia obciążenia z regułami ruchu wychodzącego lub bez reguł ruchu wychodzącego oraz za pośrednictwem publicznych adresów IP przypisanych bezpośrednio do maszyn wirtualnych. Platforma Azure śledzi kierunek przepływu, a routing asymetryczny nie wystąpi. Ruch przychodzący pochodzący z ruchu zostanie poprawnie przetłumaczony, na przykład adres IP frontonu modułu równoważenia obciążenia i zostanie przetłumaczony oddzielnie od ruchu wychodzącego pochodzącego za pośrednictwem bramy translatora adresów sieciowych. Ta separacja umożliwia bezproblemowe współistnienie usług przychodzących i wychodzących.

Brama translatora adresów sieciowych jest zalecana jako domyślna opcja włączania łączności wychodzącej dla sieci wirtualnych. Brama translatora adresów sieciowych jest wydajniejsza i mniej złożona operacyjnie niż inne techniki łączności wychodzącej na platformie Azure. Bramy translatora adresów sieciowych przydzielają porty SNAT na żądanie i używają bardziej wydajnego algorytmu, aby zapobiec konfliktom ponownego użycia portów SNAT. Nie polegaj na domyślnej łączności wychodzącej (antywzór) dla twojego majątku. Zamiast tego jawnie zdefiniuj go za pomocą zasobów bramy translatora adresów sieciowych.

Niezawodność

Zasoby bramy translatora adresów sieciowych są wysoce dostępne w jednej strefie dostępności i obejmują wiele domen błędów. Bramę translatora adresów sieciowych można wdrożyć w "bez strefy", w której platforma Azure automatycznie wybiera strefę do umieszczenia bramy translatora adresów sieciowych. Brama translatora adresów sieciowych może być również odizolowana od określonej strefy przez użytkownika.

Nie można podać izolacji strefy dostępności, chyba że każda podsieć ma tylko zasoby w określonej strefie. Zamiast tego należy wdrożyć podsieć dla każdej strefy dostępności, w której są wdrażane maszyny wirtualne, wyrównać strefowe maszyny wirtualne z pasującymi bramami translatora adresów sieciowych strefowych i utworzyć oddzielne stosy strefowe. Na przykład maszyna wirtualna w strefie dostępności 1 znajduje się w podsieci z innymi zasobami, które znajdują się również w strefie dostępności 1. Brama translatora adresów sieciowych jest skonfigurowana w strefie dostępności 1 do obsługi tej podsieci. Zapoznaj się z poniższym diagramem.

Diagram przedstawiający kierunek stosu strefowego.

Sieci wirtualne i podsieci obejmują wszystkie strefy dostępności w regionie. Nie musisz dzielić ich według stref dostępności, aby pomieścić zasoby strefowe.

Zabezpieczenia

W przypadku bramy translatora adresów sieciowych poszczególne maszyny wirtualne (lub inne zasoby obliczeniowe) nie potrzebują publicznych adresów IP i mogą pozostać w pełni prywatne. Zasoby bez publicznego adresu IP mogą nadal uzyskiwać dostęp do źródeł zewnętrznych poza siecią wirtualną. Można skojarzyć prefiks publicznego adresu IP, aby upewnić się, że ciągły zestaw adresów IP będzie używany na potrzeby łączności wychodzącej. Reguły zapory docelowej można skonfigurować na podstawie tej przewidywalnej listy adresów IP.

Typowym podejściem jest zaprojektowanie scenariusza wirtualnego urządzenia sieciowego tylko dla ruchu wychodzącego (WUS) z zaporami innych firm lub serwerami proxy. Po wdrożeniu bramy translatora adresów sieciowych w podsieci z zestawem skalowania maszyn wirtualnych urządzeń WUS te urządzenia WUS będą używać adresów bramy translatora adresów sieciowych na potrzeby łączności wychodzącej, w przeciwieństwie do adresu IP modułu równoważenia obciążenia lub poszczególnych adresów IP. Aby zastosować ten scenariusz z usługą Azure Firewall, zobacz Integrowanie usługi Azure Firewall z usługą Azure usługa Load Balancer w warstwie Standardowa.

Diagram przedstawiający zapory z kanapką modułu równoważenia obciążenia i bramą translatora adresów sieciowych.

Microsoft Defender dla Chmury może monitorować wszelkie podejrzane połączenia wychodzące za pośrednictwem bramy translatora adresów sieciowych. Jest to funkcja alertu w Microsoft Defender dla Chmury.

Współautorzy

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

Główny autor:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki