Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Niektóre scenariusze wymagają, aby maszyny wirtualne lub wystąpienia obliczeniowe miały łączność wychodzącą z Internetem. Adresy IP publicznego modułu równoważenia obciążenia mogą być używane do zapewnienia łączności wychodzącej z Internetem dla instancji zaplecza. Ta konfiguracja używa źródłowego tłumaczenia adresów sieciowych (SNAT) do tłumaczenia prywatnego adresu IP maszyny wirtualnej na publiczny adres IP modułu równoważenia obciążenia. SNAT mapuje adres IP zaplecza na publiczny adres IP modułu równoważenia obciążenia. SNAT uniemożliwia źródłom zewnętrznym otrzymanie bezpośredniego adresu dostępu do wystąpień serwera zaplecza.
Wybierz metodę łączności wychodzącej
Wybierz konkretną metodę łączności wychodzącej przed wdrożeniem obciążenia:
- Użyj Azure NAT Gateway do skalowalnej, wychodzącej łączności wyłącznie z podsieci.
- Używaj publicznego IP na poziomie instancji, gdy maszyna wirtualna potrzebuje własnego adresu publicznego.
- Używaj reguł wychodzących , gdy instancje backendowe używają frontendowego IP load balancera do łączności wychodzącej.
- Unikaj domyślnego dostępu wychodzącego dla obciążeń produkcyjnych. Nowe sieci wirtualne domyślnie używają prywatnych podsieci.
metody łączności wychodzącej Azure
Następujące metody są najczęściej używane metody Azure do włączania łączności wychodzącej, wymienione w kolejności priorytetu, gdy są używane wiele metod:
| # | Metoda | Typ alokacji portów | Gotowe do produkcji? | Ocena |
|---|---|---|---|---|
| 1 | Skojarz usługę Azure NAT Gateway z podsiecią | Dynamiczne, jawne | Tak | Najlepsze |
| 2 | Przypisywanie publicznego adresu IP do maszyny wirtualnej | Statyczne, jawne | Tak | OK |
| 3 | Użyj adresów IP frontendowych równoważnika obciążenia do komunikacji wychodzącej zgodnie z regułami ruchu wychodzącego. | Statyczne, jawne | Tak, ale nie na dużą skalę | OK |
| 4 | Użyj adresów IP warstwy frontowej modułu równoważenia obciążenia dla ruchu wychodzącego bez reguł wyjściowych. | Statyczne, niejawne | Nie. | Najgorzej |
| 5 | Domyślny dostęp wychodzący | Niejawnie | Nie. | Najgorzej |
1. Przypisz Azure NAT Gateway do podsieci
Azure NAT Gateway upraszcza łączność internetową wyłącznie wychodzącą dla sieci wirtualnych. Gdy konfigurujesz go w podsieci, cała łączność wychodząca korzysta z określonych statycznych publicznych adresów IP. Możesz mieć łączność wychodzącą bez load balancera lub publicznych adresów IP bezpośrednio podłączonych do maszyn wirtualnych. Brama NAT jest w pełni zarządzana i wysoko odporna.
Używanie bramki NAT to najlepsza metoda łączności wychodzącej na zewnątrz. NAT Gateway jest bardzo rozszerzalny, niezawodny i nie ma takich problemów z wyczerpaniem portów SNAT.
Brama NAT ma pierwszeństwo przed innymi metodami łączności wychodzącej, w tym load balancerem, publicznymi adresami IP na poziomie instancji oraz Azure Firewall.
Aby uzyskać więcej informacji na temat Azure NAT Gateway, zobacz Co to jest Azure NAT Gateway. Aby uzyskać szczegółowe informacje na temat działania SNAT z bramą translatora adresów sieciowych, zobacz SNAT z bramą translatora adresów sieciowych.
2. Przypisywanie publicznego adresu IP do maszyny wirtualnej
| Stowarzyszenia | Metoda | Protokoły IP |
|---|---|---|
| Publiczny adres IP na karcie sieciowej maszyny wirtualnej | Funkcja SNAT (źródłowe tłumaczenie adresów sieciowych) nie jest używana. |
TCP (Transmission Control Protocol) UDP (User Datagram Protocol) ICMP (Internet Control Message Protocol) ESP (hermetyzowanie ładunku zabezpieczeń) |
Ruch wraca do klienta wysyłającego żądanie z publicznego adresu IP maszyny wirtualnej (adres IP na poziomie instancji).
Azure używa publicznego adresu IP przypisanego do konfiguracji adresu IP karty sieciowej wystąpienia dla wszystkich przepływów wychodzących. Wystąpienie ma dostępne wszystkie tymczasowe porty. Nie ma znaczenia, czy maszyna wirtualna jest obciążona równomiernie, czy nie. Ten scenariusz ma pierwszeństwo przed innymi, z wyjątkiem bramy NAT.
Publiczny adres IP przypisany do maszyny wirtualnej jest relacją 1:1 (a nie 1: wiele) i zaimplementowana jest jako bezstanowa translacja adresów sieciowych 1:1.
3. Użyj adresu IP frontowego modułu równoważenia obciążenia dla ruchu wychodzącego przy użyciu reguł ruchu wychodzącego
Reguły ruchu wychodzącego umożliwiają jawne zdefiniowanie źródłowego tłumaczenia adresów sieciowych (SNAT) dla publicznego modułu równoważenia obciążenia w warstwie standardowej SKU. Ta konfiguracja umożliwia korzystanie z publicznego adresu IP lub adresów IP modułu równoważenia obciążenia dla łączności wychodzącej instancji zaplecza.
Ta konfiguracja umożliwia:
Maskowanie adresów IP
Upraszczanie list dopuszczeń
Zmniejsza liczbę zasobów publicznych adresów IP na potrzeby wdrożenia
W przypadku reguł ruchu wychodzącego masz pełną deklaratywną kontrolę nad wychodzącą łącznością internetową. Reguły ruchu wychodzącego umożliwiają skalowanie i dostrajanie tej możliwości do określonych potrzeb za pośrednictwem ręcznej alokacji portów. Ręczne przydzielanie portu SNAT na podstawie rozmiaru puli zaplecza i liczby frontendIPConfigurations może pomóc uniknąć wyczerpania SNAT.
Porty SNAT można przydzielić ręcznie, korzystając z opcji „porty na wystąpienie” lub „maksymalna liczba wystąpień zaplecza”. Jeśli w zapleczu znajdują się maszyny wirtualne, zaleca się przypisanie portów według zasady "porty na wystąpienie", aby zmaksymalizować wykorzystanie portów SNAT.
Oblicz liczbę portów na instancję w następujący sposób:
Liczba adresów IP frontend * 64K / Liczba wystąpień backend
Jeśli masz Virtual Machine Scale Sets w warstwie zaplecza, zaleca się przydzielać porty według "maksymalnej liczby instancji zaplecza". Jeśli więcej maszyn wirtualnych zostanie dodanych do zaplecza niż pozostałe dozwolone porty SNAT, skalowanie w poziomie Virtual Machine Scale Sets może zostać zablokowane lub nowe maszyny wirtualne nie otrzymają wystarczających portów SNAT.
Uwaga
Jeśli wiele adresów IP frontendowych jest skonfigurowanych przy użyciu zasad wychodzących, połączenia wychodzące mogą pochodzić z dowolnego adresu IP frontendowego skonfigurowanego dla instancji zaplecza. Nie zalecamy tworzenia żadnych zależności, na których można wybrać adres IP frontonu dla połączeń.
Aby uzyskać więcej informacji na temat reguł ruchu wychodzącego, zobacz Reguły ruchu wychodzącego.
4. Użyj adresu(-ów) IP interfejsu zewnętrznego modułu równoważenia obciążenia dla ruchu wychodzącego bez reguł dla ruchu wychodzącego
Ta opcja jest podobna do poprzedniej, z wyjątkiem sytuacji, gdy nie są tworzone żadne reguły wychodzące. W takim przypadku interfejsy zewnętrzne równoważnika obciążenia są nadal używane dla ruchu wychodzącego, ale odbywa się to automatycznie, bez reguł określających, które interfejsy będą używane. Nieużywanie reguł ruchu wychodzącego zmniejsza również skalowalność ruchu wychodzącego, ponieważ niejawna łączność wychodząca ma stałą liczbę portów SNAT na adres IP frontonu, co może prowadzić do wyczerpania portów w scenariuszach o dużym natężeniu ruchu.
5. Domyślny dostęp wychodzący
W Azure maszyny wirtualne utworzone w sieci wirtualnej bez jawnej zdefiniowanej łączności wychodzącej są przypisywane do domyślnego publicznego adresu IP ruchu wychodzącego. Ten adres IP umożliwia łączność wychodzącą z zasobów do Internetu. Ten dostęp jest określany jako domyślny dostęp wychodzący. Ta metoda dostępu nie jest zalecana , ponieważ jest niezabezpieczona, a adresy IP mogą ulec zmianie.
Ważne
31 marca 2026 r. nowe sieci wirtualne domyślnie korzystają z podsieci prywatnych. Więcej informacji znajdziesz w oficjalnym ogłoszeniu. Użyj jednej z jawnych form łączności, jak pokazano w opcjach 1–3 powyżej.
Azure Load Balancer SNAT porty
Porty generują unikatowe identyfikatory, które utrzymują odrębne przepływy. Internet używa pięciokrotki, aby zapewnić to rozróżnienie.
Jeśli używasz portu do połączeń przychodzących, na tym porcie działa proces nasłuchujący na żądania połączeń przychodzących. Tego portu nie można używać w przypadku połączeń wychodzących. Aby ustanowić połączenie wychodzące, użyj portu efemerycznego , aby zapewnić miejsce docelowe portowi, na którym można komunikować się i obsługiwać odrębny przepływ ruchu. Gdy te porty efemeryczne są używane dla protokołu SNAT, są nazywane portami SNAT.
Z definicji każdy adres IP ma 65 535 portów. Każdy port może służyć do połączeń przychodzących lub wychodzących dla protokołu TCP (Transmission Control Protocol) i UDP (User Datagram Protocol). Po dodaniu publicznego adresu IP jako adresu IP frontonu do modułu równoważenia obciążenia 64 000 portów kwalifikuje się do korzystania z protokołu SNAT.
Każdy port używany w równoważeniu obciążenia lub regule NAT dla ruchu przychodzącego korzysta z zakresu ośmiu portów z 64 000 dostępnych portów SNAT. To użycie zmniejsza liczbę portów kwalifikujących się do SNAT, jeśli ten sam adres IP frontonu jest używany do łączności wychodzącej. Jeśli porty używane przez reguły równoważenia obciążenia lub reguły NAT dla ruchu przychodzącego znajdują się w tym samym bloku, który składa się z ośmiu portów używanych przez inną regułę, to te reguły nie wymagają dodatkowych portów.
Uwaga
Jeśli musisz nawiązać połączenie z dowolnymi obsługiwanymi usługami paaS Azure, takimi jak Azure Storage, Azure SQL lub Azure Cosmos DB, użyj Azure Private Link, aby całkowicie uniknąć SNAT. Azure Private Link wysyła ruch z sieci wirtualnej do usług Azure za pośrednictwem sieci szkieletowej Azure zamiast przez Internet.
Private Link jest zalecaną opcją dla punktów końcowych usługi w celu uzyskania prywatnego dostępu do usług hostowanych Azure. Aby uzyskać więcej informacji na temat różnic między Private Link i punktami końcowymi usługi, zobacz Compare Private Endpoints and Service Endpoints.
Domyślne zachowanie SNAT w Azure Load Balancer
Gdy maszyna wirtualna tworzy przepływ wychodzący, Azure tłumaczy źródłowy adres IP na efemeryczny adres IP. Azure wykonuje to tłumaczenie za pośrednictwem protokołu SNAT.
Jeśli używasz protokołu SNAT bez reguł ruchu wychodzącego za pośrednictwem publicznego modułu równoważenia obciążenia, system wstępnie przydziela porty SNAT zgodnie z opisem w poniższej domyślnej tabeli alokacji portów SNAT:
Domyślna tabela alokacji portów
Po włączeniu domyślnej alokacji portów system przydziela porty SNAT na podstawie rozmiaru puli zaplecza. Każde zaplecze otrzymuje liczbę portów określoną w tabeli dla każdego adresu IP frontonu, maksymalnie 1 024 porty. Nie używaj domyślnego przydziału portów w przypadku obciążeń produkcyjnych, ponieważ przydziela on minimalną liczbę portów do każdego wystąpienia zaplecza i zwiększa ryzyko wyczerpania portów SNAT. Zamiast tego rozważ użycie Azure NAT Gateway lub ręczne przydzielanie portów w regułach wychodzących load balancera.
Możesz włączyć domyślną alokację portów na wiele sposobów:
- Skonfiguruj regułę równoważenia obciążenia z
disableOutboundSnatustawioną wartościąfalselub wybierz domyślną opcję alokacji portów w regule modułu równoważenia obciążenia w portalu Azure. - Skonfiguruj regułę wychodzącą, ale ustaw właściwość
allocatedOutboundPortsna wartość0lub wybierz pozycję Włącz domyślny przydział portów w portalu Azure.
Na przykład przy 100 maszynach wirtualnych w puli zaplecza i tylko jednym adresie IP frontendu każda maszyna wirtualna otrzymuje 512 portów. W przypadku dodania drugiego adresu IP frontonu każda maszyna wirtualna otrzyma dodatkowe 512 portów. Ta alokacja oznacza, że każda maszyna wirtualna jest przydzielana łącznie na 1024 porty. W rezultacie dodanie trzeciego adresu IP frontendu nie zwiększa liczby przydzielonych portów SNAT powyżej 1 024.
Orientacyjnie liczbę przydzielanych portów SNAT przy zastosowaniu domyślnej alokacji portów można obliczyć następująco: MIN(# of default SNAT ports provided based on pool size * number of frontend IPs associated with the pool, 1024).
W poniższej tabeli przedstawiono wstępną alokację portów SNAT dla pojedynczego adresu IP front-endu w zależności od rozmiaru puli back-endu.
| Rozmiar puli (instancje maszyn wirtualnych) | Domyślne porty SNAT |
|---|---|
| 1-50 | 1,024 |
| 51–100 | 512 |
| 101–200 | 256 |
| 201–400 | 128 |
| 401-800 | 64 |
| 801-1,000 | 32 |
Wyczerpanie portów
Każde połączenie z tym samym docelowym adresem IP i portem docelowym używa portu SNAT. To połączenie utrzymuje odrębny przepływ ruchu z wystąpienia zaplecza lub klienta do serwera. Ten proces zapewnia serwerowi odrębny port, na którym ma być kierowany ruch. Bez tego procesu maszyna kliencka nie zna przepływu pakietu.
Wyobraź sobie, że masz otwarte wiele przeglądarek prowadzących do https://www.microsoft.com, co oznacza:
Docelowy adres IP = 23.53.254.142
Port docelowy = 443
Protokół = TCP
Bez portów SNAT dla ruchu powrotnego klient nie ma możliwości oddzielenia jednego wyniku zapytania od drugiego.
Połączenia wychodzące mogą być nagle zwiększone. Instancja zaplecza może mieć niewystarczającą liczbę portów. Użyj funkcji ponownego użycia połączenia w aplikacji. Bez ponownego użycia połączenia zwiększa się ryzyko wyczerpania portów SNAT.
Aby uzyskać więcej informacji na temat buforowania połączeń z Azure App Service, zobacz Rozwiązywanie problemów z sporadycznymi błędami połączeń wychodzących w Azure App Service.
Nowe połączenia wychodzące z docelowym adresem IP kończą się niepowodzeniem, gdy wystąpi wyczerpanie portów. Połączenia kończą się powodzeniem, gdy port stanie się dostępny. To wyczerpanie występuje, gdy 64 000 portów z adresu IP jest nierównomiernie rozłożonych na wielu serwerach zaplecza. Aby uzyskać wskazówki dotyczące ograniczania wyczerpania portów SNAT, zobacz Support i rozwiązywanie problemów dotyczących Azure Load Balancer.
Ponowne użycie portu
W przypadku protokołu TCP każde aktywne połączenie wymaga odrębnej przetłumaczonej krotki źródłowej dla określonej krotki docelowej, na którą składają się docelowy adres IP i docelowy port. Możesz ponownie użyć portu SNAT do połączenia z innym adresem IP docelowym lub innym portem docelowym. Nie możesz go ponownie użyć do innego aktywnego połączenia z poziomu tej samej instancji backendu do tego samego adresu IP i tego samego portu docelowego.
W przypadku połączeń UDP moduł równoważenia obciążenia używa algorytmu NAT z ograniczeniami portów, który zużywa jeden port SNAT na docelowy adres IP, niezależnie od portu docelowego.
Można ponownie użyć pojedynczych portów dla nieograniczonej liczby połączeń, gdy ponowne użycie jest dozwolone (gdy docelowy adres IP lub port jest inny).
W przykładzie w poniższej tabeli instancja zaplecza z prywatnym adresem IP 10.0.0.1 nawiązuje połączenia TCP z docelowymi adresami IP 23.53.254.142 i 26.108.254.155, podczas gdy moduł równoważenia obciążenia skonfigurowano z adresem IP frontendu 192.0.2.0. Ponieważ docelowe adresy IP są różne, ten sam port SNAT może być ponownie używany dla wielu połączeń.
| Flow | Krotka źródłowa | Krotka źródłowa po zastosowaniu SNAT | Krotka docelowa |
|---|---|---|---|
| 1 | 10.0.0.1:80 | 192.0.2.0:1 | 23.53.254.142:80 |
| 2 | 10.0.0.1:80 | 192.0.2.0:1 | 26.108.254.155:80 |
Ograniczenia
Poniższe ograniczenia dotyczą Azure Load Balancer SNAT. Indywidualne ograniczenia określają, kiedy dotyczą wyłącznie TCP, UDP, reguł wychodzących lub konfiguracji publicznych IP na poziomie instancji.
Gdy połączenie jest bezczynne bez konieczności wysyłania nowych pakietów, porty są zwalniane po 4 do 120 minut.
Tę wartość progową można skonfigurować za pomocą reguł ruchu wychodzącego.
Każdy adres IP zawiera 64 000 portów, których można użyć dla protokołu SNAT.
Każdy port może być używany zarówno dla połączeń TCP, jak i UDP z docelowym adresem IP.
Potrzebny jest port SNAT protokołu UDP niezależnie od tego, czy port docelowy jest unikatowy, czy nie. Dla każdego połączenia UDP z docelowym adresem IP jest używany jeden port UDP SNAT.
Port SNAT protokołu TCP może być używany dla wielu połączeń z tym samym docelowym adresem IP, o ile porty docelowe są różne.
Do wyczerpania portów SNAT dochodzi, gdy instancja zaplecza wyczerpie przydzielone porty SNAT. Moduł równoważenia obciążenia nadal może mieć nieużywane porty SNAT. Jeśli liczba portów SNAT używanych przez wystąpienie zaplecza przekracza liczbę przydzielonych mu portów SNAT, nie może ono nawiązywać nowych połączeń wychodzących.
System odrzuca fragmentowane pakiety, chyba że ruch wychodzący odbywa się przez publiczny adres IP na poziomie instancji skonfigurowany na karcie sieciowej maszyny wirtualnej.
Reguły wychodzące nie obsługują dodatkowych konfiguracji IPv4 interfejsu sieciowego. Aby uzyskać łączność wychodzącą w konfiguracjach wtórnych IPv4, należy dołączyć publiczne adresy IP na poziomie instancji lub użyć Azure NAT Gateway zamiast tego.
Następne kroki
- Support i rozwiązywanie problemów dotyczących Azure Load Balancer
- Przejrzyj metryki SNAT i zapoznaj się z prawidłowym sposobem filtrowania, dzielenia i wyświetlania ich.
- Dowiedz się, jak przenieść istniejącą metodę połączenia wychodzącego do Azure NAT Gateway.