Použití překladu zdrojových síťových adres (SNAT) pro odchozí připojení

Některé scénáře vyžadují, aby virtuální počítače nebo výpočetní instance měly odchozí připojení k internetu. IP adresy front-endu veřejného nástroje pro vyrovnávání zatížení je možné použít k poskytování odchozího připojení k internetu pro back-endové instance. Tato konfigurace používá překlad zdrojových síťových adres (SNAT) k překladu privátní IP adresy virtuálního počítače na veřejnou IP adresu nástroje pro vyrovnávání zatížení. SNAT mapuje IP adresu back-endu na veřejnou IP adresu nástroje pro vyrovnávání zatížení. SNAT brání přímému přístupu k instancím back-endu z externích zdrojů.

Metody odchozího připojení Azure

K povolení odchozího připojení v Azure se používají následující metody:

# Metoda Typ přidělení portu Produkční třída? Rating
1 Použití front-endových IP adres nástroje pro vyrovnávání zatížení pro odchozí provoz prostřednictvím odchozích pravidel Statická, explicitní Ano, ale ne ve velkém měřítku OK
2 Přidružení brány NAT k podsíti Dynamické, explicitní Yes Nejlepší
3 Přiřazení veřejné IP adresy k virtuálnímu počítači Statická, explicitní Yes OK
4 Výchozí použití odchozího přístupu Implicitní No Nejhorší

Diagram of Azure outbound options.

1. Použijte front-endovou IP adresu nástroje pro vyrovnávání zatížení pro odchozí provoz prostřednictvím pravidel odchozích přenosů.

Diagram public load balancer with outbound rules.

Odchozí pravidla umožňují explicitně definovat SNAT (překlad zdrojových síťových adres) pro standardní veřejný nástroj pro vyrovnávání zatížení skladové položky. Tato konfigurace umožňuje použít veřejnou IP adresu nebo IP adresy vašeho nástroje pro vyrovnávání zatížení pro odchozí připojení back-endových instancí.

Tato konfigurace umožňuje:

  • Maskování IP adres

  • Zjednodušení seznamů povolených

  • Snižuje počet prostředků veřejné IP adresy pro nasazení.

U pravidel odchozích přenosů máte úplnou deklarativní kontrolu nad odchozím připojením k internetu. Odchozí pravidla umožňují škálovat a ladit tuto schopnost podle vašich konkrétních potřeb prostřednictvím ručního přidělování portů. Ruční přidělování portů SNAT na základě velikosti back-endového fondu a počtu front-endIPConfigurations může pomoct vyhnout se vyčerpání SNAT.

Porty SNAT můžete přidělit ručně buď pomocí portů na instanci, nebo maximálního počtu back-endových instancí. Pokud máte virtuální počítače v back-endu, doporučujeme přidělit porty podle portů na instanci, abyste získali maximální využití portů SNAT.

Porty na instanci by se měly vypočítat takto:

Počet IP adres front-endu * 64K / počet instancí back-endu

Pokud máte v back-endu Virtual Machine Scale Sets, doporučujeme přidělit porty maximálním počtem instancí back-endu. Pokud se do back-endu přidá více virtuálních počítačů, než jsou povolené zbývající porty SNAT, je možné, že vertikální navýšení kapacity škálovací sady virtuálních počítačů může být blokované nebo že nové virtuální počítače nebudou přijímat dostatečné porty SNAT.

Další informace o odchozích pravidlech najdete v tématu Odchozí pravidla.

2. Přidružení brány NAT k podsíti

Diagram of a NAT gateway and public load balancer.

Virtual Network překlad adres (NAT) zjednodušuje odchozí připojení k internetu pro virtuální sítě. Při konfiguraci v podsíti používá všechna odchozí připojení zadané statické veřejné IP adresy. Odchozí připojení je možné bez nástroje pro vyrovnávání zatížení nebo veřejných IP adres přímo připojených k virtuálním počítačům. Překlad adres (NAT) je plně spravovaný a vysoce odolný.

Použití služby NAT Gateway je nejlepší metodou pro odchozí připojení. Brána NAT je vysoce rozšiřitelná, spolehlivá a nemá stejné obavy o vyčerpání portů SNAT.

Další informace o překladu adres (NAT) Azure Virtual Network najdete v tématu Co je Azure Virtual Network NAT.

3. Přiřazení veřejné IP adresy virtuálnímu počítači

Diagram of virtual machines with instance level public IP addresses.

Sdružení Metoda Protokoly IP
Veřejná IP adresa na síťové kartě virtuálního počítače SNAT (zdrojový překlad síťových adres)
se nepoužívá.
PROTOKOL TCP (Transmission Control Protocol)
UDP (User Datagram Protocol)
ICMP (Internet Control Message Protocol)
ESP (Zapouzdření datové části zabezpečení)

Provoz se vrátí do požadovaného klienta z veřejné IP adresy virtuálního počítače (IP adresa na úrovni instance).

Azure používá veřejnou IP adresu přiřazenou ke konfiguraci IP síťové karty instance pro všechny odchozí toky. Instance má k dispozici všechny dočasné porty. Nezáleží na tom, jestli je virtuální počítač s vyrovnáváním zatížení nebo ne. Tento scénář má přednost před ostatními.

Veřejná IP adresa přiřazená virtuálnímu počítači je vztah 1:1 (ne 1: mnoho) a implementovaný jako bezstavový překlad adres (NAT) 1:1.

4. Výchozí odchozí přístup

Diagram of default outbound access.

Poznámka

Tato metoda se nedoporučuje pro produkční úlohy, protože přidává riziko vyčerpání portů. Nepoužívejte tuto metodu pro produkční úlohy, abyste se vyhnuli možným chybám připojení.

Každý prostředek Azure, který k němu nemá přidruženou veřejnou IP adresu, nemá nástroj pro vyrovnávání zatížení s odchozími pravidly, není součástí flexibilního režimu orchestrace škálovacích sad virtuálních počítačů nebo nemá přidružený prostředek brány NAT, který je přidružený k jeho podsíti, má přidělený minimální počet portů pro odchozí provoz. Tento přístup se označuje jako výchozí odchozí přístup a je to nejhorší metoda, která poskytuje odchozí připojení pro vaše aplikace.

Mezi další příklady výchozího odchozího přístupu patří:

  • Použití základního nástroje pro vyrovnávání zatížení skladové položky
  • Virtuální počítač v Azure (bez výše uvedených přidružení) V takovém případě je odchozí připojení poskytováno výchozí IP adresou odchozího přístupu. Tato IP adresa je dynamická IP adresa přiřazená Azure, kterou nemůžete řídit. Výchozí SNAT se nedoporučuje pro produkční úlohy a může způsobit selhání připojení.
  • Virtuální počítač v back-endovém fondu nástroje pro vyrovnávání zatížení bez odchozích pravidel. V důsledku toho použijete front-endovou IP adresu nástroje pro vyrovnávání zatížení pro odchozí a příchozí připojení a je náchylnější k selhání připojení z vyčerpání portů SNAT.

Co jsou porty SNAT?

Porty se používají k vygenerování jedinečných identifikátorů, které slouží k udržování jedinečných toků. Internet používá k tomuto rozlišení pěti členů.

Pokud se port používá pro příchozí připojení, má naslouchací proces pro příchozí požadavky na připojení na daném portu. Tento port nejde použít pro odchozí připojení. K navázání odchozího připojení se dočasný port používá k poskytnutí cíle port, na kterém se má komunikovat a udržovat jedinečný tok provozu. Pokud se tyto dočasné porty používají pro SNAT, označují se jako porty SNAT.

Podle definice má každá IP adresa 65 535 portů. Každý port se dá použít pro příchozí nebo odchozí připojení pro TCP (Transmission Control Protocol) a UDP (User Datagram Protocol). Když se veřejná IP adresa přidá jako front-endová IP adresa do nástroje pro vyrovnávání zatížení, 64 000 portů má nárok na SNAT. I když je možné přidělovat všechny veřejné IP adresy, které se přidají jako IP adresy front-endu, se ip adresy front-endu spotřebují po jednom. Pokud jsou například dva back-endové instance přiděleny 64 000 portů, budou mít přístup ke dvěma IP adresám front-endu, obě back-endové instance budou využívat porty z první front-endové IP adresy, dokud se nevyčerpá všech 64 000 portů.

Port používaný pro vyrovnávání zatížení nebo příchozí pravidlo NAT využívá osm portů z 64 000 portů. Toto využití snižuje počet portů způsobilých pro SNAT. Pokud je pravidlo vyrovnávání zatížení nebo příchozího překladu adres (NAT) ve stejném rozsahu osm jako jiné, nepoužívá další porty.

Jak funguje výchozí SNAT?

Když virtuální počítač vytvoří odchozí tok, Azure přeloží zdrojovou IP adresu na dočasný IP adresu. Tento překlad se provádí přes SNAT.

Pokud používáte SNAT bez odchozích pravidel prostřednictvím veřejného nástroje pro vyrovnávání zatížení, porty SNAT jsou předem přidělené, jak je popsáno v následující tabulce přidělování portů SNAT.

Výchozí tabulka přidělování portů

Následující tabulka ukazuje předlokace portů SNAT pro velikosti back-endového fondu:

Velikost fondu (instance virtuálních počítačů) Výchozí porty SNAT na konfiguraci PROTOKOLU IP
1-50 1,024
51-100 512
101-200 256
201-400 128
401-800 64
801-1,000 32

Vyčerpání portů

Každé připojení ke stejné cílové IP adrese a cílovému portu bude používat port SNAT. Toto připojení udržuje jedinečný tok provozu z back-endové instance nebo klienta na server. Tento proces poskytuje serveru jedinečný port, na kterém se má adresovat provoz. Bez tohoto procesu klientský počítač neví, ke kterému toku patří paket.

Imagine mít více prohlížečů, které budou chodit , https://www.microsoft.comcož je:

  • Cílová IP adresa = 23.53.254.142

  • Cílový port = 443

  • Protokol = TCP

Bez různých cílových portů pro návratový provoz (port SNAT použitý k navázání připojení) klient nebude mít způsob, jak oddělit jeden výsledek dotazu od druhého.

Odchozí připojení se můžou roztrhnout. Back-endovou instanci je možné přidělit nedostatečné porty. Používejte funkce opakovaného použití připojení ve vaší aplikaci. Bez opakovaného použití připojení se zvyšuje riziko vyčerpání portů SNAT.

Další informace o sdružování připojení s Azure App Service najdete v tématu Řešení potíží s přerušovanými chybami odchozího připojení v Azure App Service

Nová odchozí připojení k cílové IP adrese selžou, když dojde k vyčerpání portů. Připojení budou úspěšná, jakmile bude port dostupný. K tomuto vyčerpání dochází, když se 64 000 portů z IP adresy rozloží dynamicky napříč mnoha back-endovými instancemi. Pokyny ke zmírnění vyčerpání portů SNAT najdete v průvodci odstraňováním potíží.

Pro připojení TCP bude nástroj pro vyrovnávání zatížení používat jeden port SNAT pro každou cílovou IP adresu a port. Tento multiuse umožňuje více připojení ke stejné cílové IP adrese se stejným portem SNAT. Tento multiuse je omezený, pokud připojení není k různým cílovým portům.

Pro připojení UDP používá nástroj pro vyrovnávání zatížení algoritmus NAT s omezeným portem , který využívá jeden port SNAT na cílovou IP adresu bez ohledu na cílový port.

Port se opakovaně používá pro neomezený počet připojení. Port se znovu použije jenom v případě, že se cílová IP adresa nebo port liší.

Omezení

  • Pokud je připojení nečinné bez odesílání nových paketů, porty se uvolní po 4 až 120 minutách.

  • Tuto prahovou hodnotu je možné nakonfigurovat prostřednictvím pravidel odchozích přenosů.

  • Každá IP adresa poskytuje 64 000 portů, které je možné použít pro SNAT.

  • Každý port lze použít pro připojení TCP i UDP k cílové IP adrese.

  • Port UDP SNAT je potřeba bez ohledu na to, jestli je cílový port jedinečný nebo ne. Pro každé připojení UDP k cílové IP adrese se používá jeden port UDP SNAT.

  • Port TCP SNAT lze použít pro více připojení ke stejné cílové IP adrese, pokud jsou cílové porty odlišné.

  • Vyčerpání SNAT nastane, když se back-endová instance vyčerpá z daných portů SNAT. Nástroj pro vyrovnávání zatížení může mít stále nepoužívané porty SNAT. Pokud využité porty SNAT pro back-endovou instanci překročí dané porty SNAT, nebude možné navázat nová odchozí připojení.

  • Fragmentované pakety se zahodí, pokud odchozí připojení není přes veřejnou IP adresu na úrovni instance na síťové kartě virtuálního počítače.

  • Sekundární konfigurace IP síťového rozhraní neposkytuje odchozí komunikaci (pokud k ní není přidružená veřejná IP adresa) prostřednictvím nástroje pro vyrovnávání zatížení.

Další kroky