Sdílet prostřednictvím


Odchozí připojení (Classic)

Azure poskytuje odchozí připojení pro nasazení zákazníků prostřednictvím několika různých mechanismů. Tento článek popisuje, o jaké scénáře se jedná, kdy se používají, jak fungují a jak se spravují.

Poznámka

Tento článek se věnuje pouze klasickým nasazením. Projděte si téma Odchozí připojení pro všechny scénáře nasazení Resource Manager v Azure.

Nasazení v Azure může komunikovat s koncovými body mimo Azure ve veřejném adresovém prostoru IP adres. Když instance zahájí odchozí tok do cíle ve veřejném ip adresovém prostoru, Azure dynamicky mapuje privátní IP adresu na veřejnou IP adresu. Po vytvoření tohoto mapování se může zpětný provoz pro tento odchozí tok dostat také na privátní IP adresu, ze které tok pochází.

Azure k provedení této funkce používá překlad zdrojových síťových adres (SNAT). Pokud se za jednou veřejnou IP adresou maskuje několik privátních IP adres, Azure používá překlad adres portů (PAT) k maskování privátních IP adres. Dočasné porty se používají pro token PAT a jsou předem přiděleny na základě velikosti fondu.

Existuje několik odchozích scénářů. Tyto scénáře můžete podle potřeby kombinovat. Pečlivě si je projděte a seznamte se s možnostmi, omezeními a vzory, které platí pro váš model nasazení a scénář aplikace. Projděte si doprovodné materiály ke správě těchto scénářů.

Přehled scénáře

Azure poskytuje tři různé metody, jak dosáhnout klasických nasazení odchozího připojení. Ne všechna nasazení Classic mají k dispozici všechny tři scénáře:

Scenario Metoda Protokoly IP Description Role webového pracovního procesu IaaS
1. Virtuální počítač s veřejnou IP adresou na úrovni instance SNAT, maskování portů se nepoužívá TCP, UDP, ICMP, ESP Azure používá virtuální počítač přiřazený veřejnou IP adresou. Instance má k dispozici všechny dočasné porty. No Yes
2. Veřejný koncový bod s vyrovnáváním zatížení SNAT s maskováním portu (PAT) pro veřejný koncový bod TCP, UDP Azure sdílí veřejný koncový bod veřejné IP adresy s několika privátními koncovými body. Azure používá dočasné porty veřejného koncového bodu pro token PAT. Yes Yes
3. Samostatný virtuální počítač SNAT s maskováním portů (PAT) TCP, UDP Azure automaticky určí veřejnou IP adresu pro SNAT, sdílí tuto veřejnou IP adresu s celým nasazením a používá dočasné porty IP adresy veřejného koncového bodu pro token PAT. Toto je záložní scénář pro předchozí scénáře. Nedoporučujeme to, pokud potřebujete viditelnost a kontrolu. Yes Yes

Toto je podmnožina funkcí odchozího připojení, která je dostupná pro Resource Manager nasazení v Azure.

Různá nasazení v modelu Classic mají různé funkce:

Klasické nasazení Dostupné funkce
Virtuální počítač scénář 1, 2 nebo 3
Role webového pracovního procesu pouze scénář 2, 3

Stejné rozdíly mají i strategie pro zmírnění rizik.

Algoritmus používaný k předběžnému přidělení dočasných portů pro token PAT pro klasická nasazení je stejný jako pro nasazení prostředků Azure Resource Manager.

Scénář 1: Virtuální počítač s veřejnou IP adresou na úrovni instance

V tomto scénáři má virtuální počítač přiřazenou veřejnou IP adresu na úrovni instance (ILPIP). Pokud jde o odchozí připojení, nezáleží na tom, jestli má virtuální počítač koncový bod s vyrovnáváním zatížení, nebo ne. Tento scénář má přednost před ostatními. Při použití ILPIP virtuální počítač používá ILPIP pro všechny odchozí toky.

Veřejná IP adresa přiřazená k virtuálnímu počítači je vztah 1:1 (ne 1:N) a implementovaný jako bezstavový překlad adres (NAT) 1:1. Nepoužívá se maskování portů (PAT) a virtuální počítač má k dispozici všechny dočasné porty.

Pokud vaše aplikace inicializuje mnoho odchozích toků a dochází k vyčerpání portů SNAT, zvažte přiřazení ILPIP, abyste zmírnili omezení SNAT. Projděte si celou správu vyčerpání SNAT .

Scénář 2: Veřejný koncový bod s vyrovnáváním zatížení

V tomto scénáři je role virtuálního počítače nebo webového pracovního procesu přidružená k veřejné IP adrese prostřednictvím koncového bodu s vyrovnáváním zatížení. Virtuální počítač nemá přiřazenou veřejnou IP adresu.

Když virtuální počítač s vyrovnáváním zatížení vytvoří odchozí tok, Azure přeloží privátní zdrojovou IP adresu odchozího toku na veřejnou IP adresu veřejného koncového bodu s vyrovnáváním zatížení. Azure k provedení této funkce používá SNAT. Azure také používá token PAT k maskování několika privátních IP adres za veřejnou IP adresou.

Dočasné porty front-endu veřejné IP adresy nástroje pro vyrovnávání zatížení slouží k rozlišení jednotlivých toků pocházejících z virtuálního počítače. SNAT při vytváření odchozích toků dynamicky používá předem přidělené dočasné porty . V tomto kontextu se dočasné porty používané pro SNAT nazývají porty SNAT.

Porty SNAT jsou předem přiděleny, jak je popsáno v části Principy SNAT a PAT . Jedná se o konečný prostředek, který se dá vyčerpat. Je důležité pochopit, jak se používají. Informace o tom, jak tuto spotřebu navrhnout a podle potřeby zmírnit, najdete v tématu Správa vyčerpání SNAT.

Pokud existuje více veřejných koncových bodů s vyrovnáváním zatížení , každá z těchto veřejných IP adres je kandidátem pro odchozí toky a jedna se vybere náhodně.

Scénář 3: Není přidružená žádná veřejná IP adresa

V tomto scénáři virtuální počítač nebo role webového pracovního procesu nejsou součástí veřejného koncového bodu s vyrovnáváním zatížení. V případě virtuálního počítače nemá přiřazenou adresu ILPIP. Když virtuální počítač vytvoří odchozí tok, Azure přeloží privátní zdrojovou IP adresu odchozího toku na veřejnou zdrojovou IP adresu. Veřejná IP adresa používaná pro tento odchozí tok není konfigurovatelná a nezapočítává se do limitu prostředků veřejných IP adres předplatného. Azure tuto adresu přiděluje automaticky.

Azure k provedení této funkce používá SNAT s maskováním portů (PAT). Tento scénář se podobá scénáři 2 s tím rozdílem, že neexistuje žádná kontrola nad použitou IP adresou. Jedná se o záložní scénář v případě, že neexistují scénáře 1 a 2. Tento scénář nedoporučujeme, pokud chcete mít kontrolu nad odchozí adresou. Pokud jsou odchozí připojení důležitou součástí vaší aplikace, měli byste zvolit jiný scénář.

Porty SNAT jsou předem přiděleny, jak je popsáno v části Principy SNAT a PAT . Počet virtuálních počítačů nebo rolí webového pracovního procesu sdílejících veřejnou IP adresu určuje počet předem přidělených dočasných portů. Je důležité pochopit, jak se používají. Informace o tom, jak tuto spotřebu navrhnout a podle potřeby zmírnit, najdete v tématu Správa vyčerpání SNAT.

Principy SNAT a PAT

Port maskující SNAT (PAT)

Když nasazení vytvoří odchozí připojení, každý zdroj odchozího připojení se přepíše. Zdroj se přepíše z adresního prostoru privátních IP adres na veřejnou IP adresu přidruženou k nasazení (na základě výše popsaných scénářů). Ve veřejném adresní prostoru IP adres musí být 5 členů toku (zdrojová IP adresa, zdrojový port, přenosový protokol IP, cílová IP adresa, cílový port) jedinečný.

Dočasné porty (porty SNAT) se používají k tomu po přepsání privátní zdrojové IP adresy, protože několik toků pochází z jedné veřejné IP adresy.

Jeden port SNAT se spotřebuje na jeden tok na jednu cílovou IP adresu, port a protokol. Pro více toků na stejnou cílovou IP adresu, port a protokol využívá každý tok jeden port SNAT. Tím se zajistí, že toky budou jedinečné, pokud pocházejí ze stejné veřejné IP adresy a přejdou na stejnou cílovou IP adresu, port a protokol.

Několik toků, z nichž každý směřuje k jiné cílové IP adrese, portu a protokolu, sdílí jeden port SNAT. Cílová IP adresa, port a protokol činí toky jedinečnými bez nutnosti dalších zdrojových portů k odlišení toků v prostoru veřejných IP adres.

Když jsou prostředky portu SNAT vyčerpány, odchozí toky selžou, dokud stávající toky neuvolní porty SNAT. Load Balancer uvolní porty SNAT, když se tok zavře a použije 4minutový časový limit nečinnosti k uvolnění portů SNAT z nečinných toků.

Vzory pro zmírnění podmínek, které běžně vedou k vyčerpání portů SNAT, najdete v části Správa SNAT .

Dočasné umístění portu pro maskování portů SNAT (PAT)

Azure používá algoritmus k určení počtu dostupných předem přidělených portů SNAT na základě velikosti back-endového fondu při použití portu maskujícího SNAT (PAT). Porty SNAT jsou dočasné porty dostupné pro konkrétní veřejnou zdrojovou IP adresu.

Azure předem přidělí porty SNAT při nasazení instance na základě toho, kolik instancí rolí virtuálního počítače nebo role webového pracovního procesu sdílí danou veřejnou IP adresu. Při vytváření odchozích toků pat dynamicky spotřebovává (až do předem přiděleného limitu) a uvolní tyto porty, když se tok zavře nebo dojde k vypršení časových limitů nečinnosti.

Následující tabulka ukazuje předběžná umístění portů SNAT pro vrstvy velikostí back-endových fondů:

Instance Předem přidělené porty SNAT na instanci
1-50 1,024
51-100 512
101-200 256
201-400 128

Nezapomeňte, že počet dostupných portů SNAT se nepřekládá přímo na počet toků. Jeden port SNAT je možné znovu použít pro více jedinečných cílů. Porty se spotřebovávají jenom v případě, že je to nutné k tomu, aby toky byly jedinečné. Pokyny k návrhu a zmírnění rizik najdete v části věnované správě tohoto vyčerpatelného prostředku a v části, která popisuje pat.

Změna velikosti nasazení může mít vliv na některé z vašich zavedených toků. Pokud se velikost back-endového fondu zvýší a přejde do další úrovně, polovina předem přidělených portů SNAT se uvolní během přechodu na další větší úroveň back-endového fondu. Toky, které jsou přidružené k uvolněným portům SNAT, vyprší časový limit a je nutné je znovu vytvořit. Pokud se pokusíte o nový tok, bude tok okamžitě úspěšný, pokud jsou k dispozici předem přidělené porty.

Pokud se velikost nasazení zmenší a přejde na nižší úroveň, zvýší se počet dostupných portů SNAT. V tomto případě nejsou ovlivněny stávající přidělené porty SNAT a jejich příslušné toky.

Pokud se cloudová služba znovu nasadí nebo změní, infrastruktura může dočasně hlásit, že back-endový fond bude až dvakrát větší než skutečný, a Azure pak na instanci předem přidělí méně portů SNAT, než se čekalo. To může dočasně zvýšit pravděpodobnost vyčerpání portů SNAT. Nakonec velikost fondu přejde na skutečnou velikost a Azure automaticky zvýší předem přidělené porty SNAT na očekávaný počet podle výše uvedené tabulky. Toto chování je záměrně a nedá se konfigurovat.

Přidělení portů SNAT jsou specifické pro přenosový protokol IP (protokol TCP a UDP se spravují samostatně) a vydávají se za následujících podmínek:

Vydání portu TCP SNAT

  • Pokud server nebo klient odešle fin/ACK, port SNAT se uvolní po 240 sekundách.
  • Pokud se zobrazí RST, port SNAT se uvolní po 15 sekundách.
  • Bylo dosaženo časového limitu nečinnosti

Vydání portu UDP SNAT

  • Bylo dosaženo časového limitu nečinnosti

Řešení problémů

Tato část má pomoct zmírnit vyčerpání SNAT a další scénáře, ke kterým může dojít u odchozích připojení v Azure.

Správa vyčerpání portů SNAT (PAT)

Dočasné porty používané pro pat jsou vyčerpatelným prostředkem, jak je popsáno v části Žádný veřejný koncový bod s vyrovnáváním zatížení a žádná veřejná IP adresa přidružená.

Pokud víte, že na stejné cílové IP adrese a portu spouštíte mnoho odchozích připojení TCP nebo UDP, a zjistíte, že selhávající odchozí připojení nebo vám podpora doporučí, že vyčerpáváte porty SNAT (předem přidělené dočasné porty používané patem), máte několik obecných možností zmírnění rizik. Projděte si tyto možnosti a rozhodněte, co je dostupné a nejlepší pro váš scénář. Je možné, že jeden nebo více může pomoct spravovat tento scénář.

Pokud máte potíže s pochopením chování odchozího připojení, můžete použít statistiku zásobníku IP adres (netstat). Nebo může být užitečné sledovat chování připojení pomocí zachytávání paketů.

Upravte aplikaci tak, aby mohla připojení používat opakovaně.

Opětovným použitím připojení ve vaší aplikaci můžete snížit poptávku po dočasných portech používaných pro SNAT. To platí zejména pro protokoly, jako je HTTP/1.1, kde je výchozí opakované použití připojení. A další protokoly, které jako přenos používají PROTOKOL HTTP (například REST), můžou zase těžit.

Opakované použití je vždy lepší než jednotlivá atomická připojení TCP pro každý požadavek. Opakované použití vede k výkonnějším a velmi efektivním transakcím TCP.

Upravte aplikaci tak, aby využívala sdružování připojení.

Ve své aplikaci můžete použít schéma sdružování připojení, ve kterém se požadavky interně distribuují napříč pevnou sadou připojení (pokud je to možné, všechna se opakovaně používají). Toto schéma omezuje počet dočasných portů, které se používají, a vytváří předvídatelnější prostředí. Toto schéma může také zvýšit propustnost požadavků tím, že povolí více současných operací, když jedno připojení blokuje odpověď na operaci.

Sdružování připojení už může existovat v rámci architektury, kterou používáte k vývoji aplikace, nebo v nastavení konfigurace vaší aplikace. Sdružování připojení můžete kombinovat s opětovným použitím připojení. Několik požadavků pak využívá pevný a předvídatelný počet portů na stejnou cílovou IP adresu a port. Požadavky také těží z efektivního využití transakcí TCP, které snižuje latenci a využití prostředků. Transakce UDP můžou být také užitečné, protože správa počtu toků UDP může zase zabránit vyčerpání a spravovat využití portů SNAT.

Upravte aplikaci tak, aby využívala méně agresivní logiku opakování.

Pokud jsou předem přidělené dočasné porty používané pro PAT vyčerpány nebo dojde k selhání aplikací, agresivní opakování nebo hrubou silou bez rozpadu a logiky zpochybnění způsobí vyčerpání nebo přetrvává. Poptávku po dočasných portech můžete snížit pomocí méně agresivní logiky opakování.

Dočasné porty mají 4minutový časový limit nečinnosti (nedají se upravit). Pokud jsou opakované pokusy příliš agresivní, nemá vyčerpání možnost se sama o sobě vyčistit. Proto je důležité zvážit, jak a jak často aplikace opakuje transakce.

Přiřazení veřejné IP adresy na úrovni instance každému virtuálnímu počítači

PřiřazeníM ILPIP se váš scénář změní na veřejnou IP adresu na úrovni instance virtuálního počítače. Virtuálnímu počítači jsou k dispozici všechny dočasné porty veřejné IP adresy, které se používají pro každý virtuální počítač. (Na rozdíl od scénářů, kdy se dočasné porty veřejné IP adresy sdílejí se všemi virtuálními počítači přidruženými k příslušnému nasazení.) Existují kompromisy, které je třeba zvážit, například potenciální dopad zařazení velkého počtu jednotlivých IP adres na seznam povolených.

Poznámka

Tato možnost není dostupná pro role webového pracovního procesu.

Pomocí příkazu keepalives obnovte časový limit nečinnosti odchozího připojení.

Odchozí připojení mají 4minutový časový limit nečinnosti. Tento časový limit není možné upravit. K aktualizaci nečinných toků ale můžete použít transport (například tcp keepalives) nebo keepalives aplikační vrstvy a v případě potřeby tento časový limit nečinnosti resetovat. Obraťte se na dodavatele jakéhokoli zabaleného softwaru a zjistěte, jestli je tento software podporovaný nebo jak ho povolit. Obecně platí, že k resetování časového limitu nečinnosti je potřeba vygenerovat pouze jednu stranu.

Zjištění veřejné IP adresy, kterou virtuální počítač používá

Existuje mnoho způsobů, jak zjistit veřejnou zdrojovou IP adresu odchozího připojení. OpenDNS poskytuje službu, která vám může zobrazit veřejnou IP adresu vašeho virtuálního počítače.

Pomocí příkazu nslookup můžete odeslat dotaz DNS na název myip.opendns.com do překladače OpenDNS. Služba vrátí zdrojovou IP adresu, která byla použita k odeslání dotazu. Když z virtuálního počítače spustíte následující dotaz, bude odpovědí veřejná IP adresa použitá pro tento virtuální počítač:

nslookup myip.opendns.com resolver1.opendns.com

Další kroky

  • Přečtěte si další informace o Load Balancer používaných v nasazeních Resource Manager.
  • Seznamte se s režimem odchozího připojení dostupným v Resource Manager nasazeních.