Azure Well-Architected Framework bir Azure NAT ağ geçidi incelemesi
Bu makalede bir Azure NAT ağ geçidi için en iyi yöntemler sunulmaktadır. Bu kılavuz, mimarinin en üstün beş boyutunu temel alır: maliyet Iyileştirme, Işlemsel üstün, performans verimliliği, güvenilirlik ve güvenlik.
Azure sanal ağ NAT ve Azure NAT Gateway ile ilgili bir bilginiz olduğunu ve ilgili özelliklerle iyi bir şekilde çalıştığınızı varsayalım. Yenileyici olarak, Azure sanal ağ NAT belgelerinin tam kümesini gözden geçirin.
NAT, ağ adresi çevirisiiçin temsil eder. Ağ adresi çevirisine girişbölümüne bakın.
Maliyet iyileştirmesi
Bir NAT ağ geçidi kullanmaktan kaçınmak için PaaS hizmetlerine erişimin Azure özel bağlantısı veya hizmet uç noktaları (depolama dahil) olması gerekir. Özel bağlantı ve hizmet uç noktaları, PaaS hizmetlerine erişmek için NAT ağ geçidinin çapraz geçişini gerektirmez. Bu yaklaşım, bir NAT ağ geçidinin maliyetlerini özel bağlantı veya hizmet uç noktalarına karşılaştırırken, işlenen GB veri başına ücreti azaltır. Özel bağlantı veya hizmet uç noktaları kullanmanın ek güvenlik avantajları vardır.
Performans verimliliği
Her NAT ağ geçidi kaynağı 50 Gbps 'e kadar aktarım hızı sağlar. Dağıtımlarınızı birden çok alt ağa bölebilir ve sonra ölçeği genişletmek için bir NAT ağ geçidine her alt ağı veya alt ağ grubunu atayabilirsiniz.
Her NAT ağ geçidi, atanan giden IP adresi başına sırasıyla TCP ve UDP için 64.000 akışlarını destekler. Bir NAT ağ geçidine en fazla 16 IP adresi atanabilir. IP adresleri tek tek standart genel IP adresleri, genel IP ön eki veya her ikisi olabilir. Ayrıntılar için kaynak ağ adresi çevirisi (SNAT) üzerinde aşağıdaki bölümü gözden geçirin. TCP, Iletim Denetim Protokolüve Kullanıcı Datagram Protokolüiçin UDP 'yi temsil eder.
SNAT tükenmesi
- NAT ağ geçidi kaynakları varsayılan TCP boşta kalma zaman aşımı 4 dakikadır. Bu ayar daha yüksek bir değere değiştirilirse, NAT, daha uzun bir akışa sahip olur ve SNAT bağlantı noktası envanterinde gereksiz basınç oluşmasına neden olabilir.
- Atomik istekler (bağlantı başına bir istek), ölçeklendirmenin sınırlarını, performansı azaltmasını ve güvenilirliği azalttığından, kötü bir tasarım seçiminden oluşur. Bunun yerine, bağlantı numaralarını ve ilişkili SNAT bağlantı noktalarını azaltmak için HTTP/S bağlantılarını yeniden kullanın. Bağlantı yeniden kullanımı, uygulamanın ölçeklendirilmesine daha iyi izin verir. TLS kullanırken azaltılan el sıkışmaları, ek yük ve şifreleme işlemi maliyetleri nedeniyle uygulama performansı gelişecek.
- DNS, istemci DNS çözümleyiciler sonucunu önbelleğe alırken, toplu olarak birçok ayrı akış oluşturabilir. Akış hacmini azaltmak ve SNAT bağlantı noktalarının sayısını azaltmak için DNS önbelleğe alma özelliğini kullanın. DNS genellikle etki alanı adı sistemi, Internet 'e veya özel bir ağa bağlı kaynakların adlandırma sistemini temsil eder.
- DNS aramaları gibi UDP akışları, boşta kalma zaman aşımı süresi boyunca SNAT bağlantı noktalarını kullanır. Boşta kalma zaman aşımı, SNAT bağlantı noktalarında basınç arttıkça daha uzun olur. 4 dakika gibi daha kısa bir boşta kalma zaman aşımı, SNAT bağlantı noktalarının kullanımda kalacağı süreyi azaltır.
- Bağlantı birimlerinizi şekillendirmek için bağlantı havuzlarını kullanın.
- Hiçbir şekilde hiçbir TCP akışını sessizce iptal edin ve akışı temizlemek için TCP zamanlayıcılarını güvenin. Bağlantıyı açık bir şekilde kapatmaya izin vermezseniz TCP bağlantısı açık kalır. Ara sistemler ve uç noktalar Bu bağlantıyı kullanımda tutar, bu da aynı anda SNAT bağlantı noktasını diğer bağlantılar için kullanılamaz hale getirir. Bu kenar yumuşatma, uygulama başarısızlıklarını ve SNAT tükenmesini tetikleyebilir.
- İşletim sistemi düzeyinde TCP-Close ile ilgili süreölçer değerlerini değiştirmeyin, bu da etkileri konusunda uzman bilgileri yoktur. TCP yığını kurtarılarken, bir bağlantının uç noktalarında yanlış beklentiler olduğunda uygulama performansı olumsuz etkilenebilir. Süreölçer değerlerinin değiştirilmesi genellikle temel bir tasarım sorununun bir imzadır. Temeldeki uygulamanın diğer koruma desenleri varsa, Zamanlayıcı değerleri değiştirilirse SNAT tükenmesi de dağıtılabilir.
Hizmetinizin ölçeğini ve güvenilirliğini artırmak için aşağıdaki kılavuzu gözden geçirin:
- Değerleri düşürmek için TCP boşta kalma zaman aşımını azaltmanın etkisini keşfedebilir. Varsayılan boş zaman aşımı 4 dakika, SNAT bağlantı noktası envanterini daha önce boşaltacaktır.
- Diğer işlemlere yönelik bağlantı kaynaklarınızı boşaltmak için uzun süreli işlemler için zaman uyumsuz yoklama düzenlerini göz önünde bulundurun.
- Yeniden kullanılan TCP bağlantıları gibi uzun süreli akışlar, ara sistemlerin zaman aşımına uğramasını önlemek için TCP keepcanlı veya uygulama katmanı keepcanlı tutmayı kullanmalıdır. Yalnızca boşta kalma zaman aşımını son çare olarak artırmanız gerekir ve bu, kök nedeni çözemeyebilir. Uzun bir zaman aşımı düşük hız hatasına neden olabilir, zaman aşımı süresi dolduğunda gecikme ve gereksiz hatalara yol açabilir.
- Geçici hata veya hata kurtarma sırasında agresif yeniden denemeler/bursts önlemek için düzgün yeniden deneme desenleri kullanılmalıdır. Atomik bağlantılaradlı bir antimodel, her HTTP işlemi için yenı bir TCP bağlantısı oluşturduğunuz bir işlemdir. Atomik bağlantılar, uygulamanızın düzgün ölçeklendirilmesini ve kaynakları boşa almasını engeller. Her zaman ardışık düzen birden çok işlem aynı bağlantıya sahiptir. Uygulamanız işlem hızı ve kaynak maliyetlerinde yarar olacaktır. Uygulamanız aktarım katmanı şifrelemesini (örneğin, TLS) kullandığında, yeni bağlantıların işlenmesiyle ilişkili önemli bir maliyet vardır. Daha iyi uygulama desenleri için bkz. Azure bulut tasarım desenleri .
Operasyonel Mükemmellik
NAT ağ geçidi Azure Kubernetes hizmeti (AKS) ile kullanılabilse de, AKS 'in bir parçası olarak yönetilmez. CNI alt ağına bir NAT ağ geçidi atarsanız, aks Pod 'yi NAT ağ geçidi üzerinden çıkış olarak etkinleştirecektir.
Bölgeler veya bölgeler arasında birden çok NAT ağ geçidi kullanırken, Azure genel IP öneklerini veya KCG IP öneklerini kullanarak giden IP 'yi yönetilebilir durumda tutun. IP öneki 16 IP adreslerinden fazlaysa IP önekinden ayrı IP adresleri oluşturabilir ve bunları NAT ağ geçidine atayabilirsiniz.
Azure Izleyici uyarılarını, SNAT bağlantı noktası kullanımını izlemek ve uyarı almak için kullanın.
Bir alt ağ bir NAT ağ geçidiyle yapılandırıldığında, NAT ağ geçidi bu alt ağdaki tüm VM 'Ler için diğer tüm giden bağlantıları genel Internet ile değiştirir. NAT ağ geçidi, giden kuralları olan veya olmayan bir yük dengeleyiciden ve doğrudan VM 'lere atanan genel IP adreslerinden önceliklidir. Azure bir akışın yönünü izler ve asimetrik yönlendirme gerçekleşmeyecektir. Gelen kaynaklı trafik, yük dengeleyici ön uç IP 'si gibi doğru şekilde çevrilir ve bir NAT ağ geçidi aracılığıyla giden kaynaklı trafikten ayrı olarak çevrilir. Bu ayrım, gelen ve giden hizmetlerin sorunsuz bir şekilde birlikte kullanılmasına olanak tanır.
NAT Gateway, sanal ağlar için giden bağlantıyı etkinleştirmek üzere varsayılan olarak önerilir. NAT Gateway, Azure 'daki diğer giden bağlantı tekniklerinden daha verimlidir ve daha karmaşıktır. NAT ağ geçitleri, isteğe bağlı olarak SNAT bağlantı noktaları ayırır ve SNAT bağlantı noktası yeniden kullanım çakışmalarını engellemek için daha verimli bir algoritma kullanır. Sizin için Varsayılan giden bağlantıya (bir anti-model) güvenmeyin. Bunun yerine, bunu NAT Gateway kaynaklarıyla açıkça tanımlayın.
Güvenilirlik
NAT ağ geçidi kaynakları yüksek oranda kullanılabilir ve birden çok hata etki alanına yayılabilir. Bu, bir NAT ağ geçidi bölge içinde kullanılabilirlik alanları olmadan dağıtılsa bile geçerlidir. Bölge yalıtımı için kullanılabilirlik alanları kullanılırken, NAT ağ geçitleri de bölge olarak dağıtılabilir.
Her alt ağın yalnızca belirli bir bölgedeki kaynakları yoksa kullanılabilirlik alanı yalıtımı sağlanamaz. Bunun yerine, VM 'lerin dağıtıldığı her bir kullanılabilirlik bölgesinin her biri için bir alt ağ dağıtın, eşleşen bölgesel NAT ağ geçitleriyle birlikte VM 'leri hizalayın ve ayrı bir zikzak yığını oluşturun. Örneğin, kullanılabilirlik alanı 1 ' deki bir sanal makine, yalnızca kullanılabilirlik bölgesi 1 ' de olan diğer kaynakları içeren bir alt ağda bulunur. Bir NAT ağ geçidi, bu alt ağa yönelik kullanılabilirlik bölgesi 1 ' de yapılandırılır. Aşağıdaki diyagrama bakın.

Güvenlik
Yaygın bir yaklaşım, üçüncü taraf güvenlik duvarları veya proxy sunucularıyla yalnızca giden ağ sanal gereci (NVA) senaryosunu tasarlamanızı sağlar. Bir NAT ağ geçidi, sanal makine ölçek kümesi NVA 'lar olan bir alt ağa dağıtıldığında, bu NVA 'lar, bir yük dengeleyicinin veya ayrı IP 'Lerin IP 'si yerine giden bağlantı için NAT ağ geçidi adreslerini kullanır. Bu senaryoyu Azure Güvenlik Duvarı ile birlikte kullanmak için bkz. Azure güvenlik duvarını azure standart Load Balancer tümleştirme.
Bulut için Microsoft Defender, bir NAT ağ geçidi aracılığıyla tüm şüpheli giden bağlantıları izleyebilir. Bu, bulut Için Microsoft Defender'daki bir uyarı özelliğidir.