Kontrola Well-Architected Azure NAT Gateway v Azure Well-Architected Framework
Tento článek obsahuje osvědčené postupy pro službu Azure NAT Gateway. Pokyny vycházejí z pěti pilířů efektivity architektury: optimalizace nákladů, efektivita provozu, efektivita výkonu, spolehlivost a zabezpečení.
Předpokládáme, že máte funkční znalosti o Překlad adres služby Azure Virtual Network a Azure NAT Gateway a že máte zkušenosti s příslušnými funkcemi. Prohlédněte si úplnou sadu dokumentace k Překlad adres služby Azure Virtual Network souborů.
NAT je zkratka pro network address translation ( překlad síťových adres). Viz Úvod do překladu adres.
Optimalizace nákladů
Přístup ke službám PaaS by měl Azure Private Link koncových bodů služeb (včetně úložiště), aby se zabránilo použití služby NAT Gateway. Private Link a koncové body služby nevyžadují procházení služby NAT Gateway pro přístup ke službám PaaS. Tento přístup sníží poplatek za GB zpracovaných dat při porovnání nákladů na službu NAT Gateway s Private Link koncovými body služby. Používání koncových bodů služby nebo Private Link další výhody zabezpečení.
Efektivita výkonu
Každý prostředek služby NAT Gateway poskytuje propustnost až 50 Gb/s. Nasazení můžete rozdělit do několika podsítí a pak můžete každé podsíti nebo skupinám podsítí přiřadit bránu NAT pro horizontální navýšení velikosti.
Každá brána NAT podporuje 64 000 toků pro TCP a UDP na přiřazenou odchozí IP adresu. Bráně NAT je možné přiřadit až 16 IP adres. IP adresa může být jednotlivá standardní veřejná IP adresa, předpona veřejné IP adresy nebo obojí. Podrobnosti najdete v následující části o překladu zdrojových adres (SNAT). TCP je zkratka pro Transmission Control Protocol a UDP je zkratka pro User Datagram Protocol.
Vyčerpání SNAT
- Prostředky služby NAT Gateway mají výchozí časový limit nečinnosti protokolu TCP 4 minuty. Pokud se toto nastavení změní na vyšší hodnotu, bude na toky trvat déle a může to způsobit zbytečný tlak na inventář portů SNAT.
- Atomické požadavky (jeden požadavek na připojení) jsou špatnou volbou návrhu, protože omezuje škálování, snižuje výkon a snižuje spolehlivost. Místo toho znovu použijte připojení HTTP/S, abyste snížili počet připojení a přidružených portů SNAT. Opakované použití připojení umožní lépe škálovat aplikaci. Výkon aplikace se zlepší kvůli nižším nákladům na handshake, režii a kryptografické operace při používání protokolu TLS.
- DNS může zavést mnoho jednotlivých toků na svazku, když klient neukládá výsledek překladače DNS do mezipaměti. Pomocí ukládání do mezipaměti DNS snižte objem toků a snižte počet portů SNAT. DNS obvykle znamená Domain Name System, systém pojmenování pro prostředky, které jsou připojené k internetu nebo k privátní síti.
- Toky UDP, jako jsou vyhledávání DNS, používají porty SNAT během časového limitu nečinnosti. Čím delší je časový limit nečinnosti, tím vyšší je tlak na porty SNAT. Kratší časový limit nečinnosti, například 4 minuty, zkrátí dobu, po kterou se budou porty SNAT používat.
- K tvarování svazku připojení použijte fondy připojení.
- Nikdy bezobslužně neopouštět tok PROTOKOLU TCP a spoléhat na časovače TCP k vyčištění toku. Pokud nechcete, aby připojení explicitně zamkl přes protokol TCP, připojení TCP zůstane otevřené. Zprostředkující systémy a koncové body budou toto připojení dál používat, takže port SNAT nebude pro ostatní připojení dostupný. Tento anti-vzor může aktivovat selhání aplikací a vyčerpání SNAT.
- Neměňte hodnoty časovače související s protokolem TCP na úrovni operačního systému bez odborných znalostí o důsledcích. Zatímco se zásobník protokolu TCP obnoví, může to negativně ovlivnit výkon vaší aplikace v případě, že koncové body připojení neodpovídají očekáváním. Změna hodnot časovače je obvykle známkou základního problému s návrhem. Pokud základní aplikace používá jiné antivzory, může být vyčerpání SNAT také zvětšené, pokud dojde ke změně hodnot časovače.
Projděte si následující pokyny ke zlepšení škálování a spolehlivosti vaší služby:
- Prozkoumejte účinek snížení časového limitu nečinnosti protokolu TCP na nižší hodnoty. Výchozí časový limit nečinnosti 4 minuty může dříve volná úroveň inventáře portů SNAT.
- Zvažte asynchronní vzory dotazování pro dlouho běžící operace, abyste uchováli prostředky připojení pro jiné operace.
- Dlouhodobé toky, jako jsou opakovaná připojení TCP, by měly používat protokol TCP keepalives nebo keepalives na aplikační vrstvě, aby nedocházelo k časovému limitu přechodných systémů. Časový limit nečinnosti byste měli zvýšit pouze jako poslední možnost a nemusí se vyřešit hlavní příčina. Dlouhý časový limit může způsobit selhání s nízkou rychlostí, vypršení časového limitu a může způsobit zpoždění a zbytečná selhání.
- Pokud se chcete vyhnout agresivním opakováním nebo shlukům během přechodného selhání nebo zotavení po selhání, měli byste použít bezvýkonné vzory opakování. Antipattern, který se nazývá atomická připojení, je při vytváření nového připojení TCP pro každou operaci HTTP. Atomická připojení zabrání vaší aplikaci v dobře škálování a plýtvá prostředky. Vždy kanálu více operací do stejného připojení. Vaše aplikace bude mít užitek z rychlosti transakcí a nákladů na prostředky. Pokud vaše aplikace používá šifrování transportní vrstvy (například TLS), jsou se zpracováním nových připojení spojené značné náklady. Další osvědčené postupy najdete v tématu Vzory návrhu cloudu Azure.
Efektivita provozu
I když se naT Gateway Azure Kubernetes Service (AKS), není spravovaná jako součást AKS. Pokud přiřadíte bránu NAT podsíti CNI, povolíte podům AKS výchozí přenos dat prostřednictvím brány NAT.
Pokud používáte více bran NAT napříč zónami nebo oblastmi, udržujte odchozí IP prostředky spravovatelné pomocí předpon veřejných IP adres Azure nebo předpon BYOIP. Pokud je předpona IP adresy větší než 16 IP adres, můžete vytvořit jednotlivé IP adresy z předpony IP adresy a přiřadit je k bráně NAT.
Pomocí Azure Monitor upozornění můžete monitorovat a upozorovat na využití portů SNAT.
Pokud je podsíť nakonfigurovaná s bránou NAT, nahradí naT Gateway všechny ostatní odchozí připojení k veřejnému internetu pro všechny virtuální počítače v této podsíti. NaT Gateway bude mít přednost před nástroji pro vyrovnávání zatížení s odchozími pravidly nebo bez nich a před veřejnými IP adresami přiřazenými přímo k virtuálním počítačům. Azure sleduje směr toku a nedojde k asymetrickému směrování. Příchozí provoz, ze kterého pochází, se přeloží správně, například IP adresa front-endu nástroje pro vyrovnávání zatížení, a bude se překládat odděleně od odchozích přenosů přes bránu NAT. Toto oddělení umožňuje bezproblémové koexistenci příchozích a odchozích služeb.
Jako výchozí nastavení pro povolení odchozího připojení pro virtuální sítě se doporučuje naT Gateway. NAT Gateway je efektivnější a méně provozně složitější než jiné techniky odchozího připojení v Azure. Brány NAT přidělují porty SNAT na vyžádání a používají efektivnější algoritmus, který brání konfliktům opakovaného použití portů SNAT. Nespoléhejte na výchozí odchozí připojení (anti-pattern) pro vaše majetek. Místo toho ji explicitně definujte pomocí prostředků služby NAT Gateway.
Spolehlivost
Prostředky služby NAT Gateway jsou vysoce dostupné a zahrnují více domén selhání. To platí i v případě, že je služba NAT Gateway nasazená místně bez zón dostupnosti. Při použití zón dostupnosti pro izolaci zón je také možné zónově nasazovat brány NAT.
Izolaci zóny dostupnosti není možné izolovat, pokud každá podsíť nemá jenom prostředky v rámci konkrétní zóny. Místo toho nasaďte podsíť pro každou zónu dostupnosti, ve které jsou nasazené virtuální počítače, zarovnejte zónové virtuální počítače s odpovídajícími zónálními bránami NAT a sestavte samostatné zónové zásobníky. Například virtuální počítač v zóně dostupnosti 1 je v podsíti s dalšími prostředky, které jsou také pouze v zóně dostupnosti 1. Brána NAT je nakonfigurovaná v zóně dostupnosti 1, aby sloužila této podsíti. Podívejte se na následující diagram.

Zabezpečení
Běžným přístupem je návrh scénáře síťového virtuálního zařízení jenom pro odchozí komunikaci s bránami firewall třetích stran nebo s proxy servery. Když se brána NAT nasadí do podsítě se škálovacími sadami síťových virtuálních zařízení virtuálních počítačů, budou tato síťová virtuální zařízení pro odchozí připojení používat adresy bran NAT místo IP adresy nástroje pro vyrovnávání zatížení nebo jednotlivých IP adres. Pokud chcete tento scénář využít s Azure Firewall, podívejte se na Azure Firewall s Azure Standard Load Balancer.
Azure Security Center monitorovat jakékoli podezřelé odchozí připojení prostřednictvím služby NAT Gateway. Toto je funkce upozornění v Azure Security Center.