Azure Load Balancer giden bağlantı sorunlarını giderme
Azure Load Balancer'da giden bağlantılar için sorun giderme kılavuzlarını öğrenin. Bu, kaynak ağ adresi çevirisini (SNAT) anlama ve bağlantılar üzerindeki etkisini anlama, VM'lerde tek tek genel IP'leri kullanma ve SNAT bağlantı noktası tükenmesini önlemek için bağlantı verimliliği için uygulamalar tasarlamayı içerir. Müşterilerin karşılaştığı giden bağlantı sorunlarının çoğu SNAT bağlantı noktası tükenmesi ve bırakılan paketlere yol açan bağlantı zaman aşımlarından kaynaklanır.
SNAT bağlantı noktaları hakkında daha fazla bilgi edinmek için bkz . Giden bağlantılar için Kaynak Ağ Adresi Çevirisi.
SNAT bağlantı noktası kullanımınızı anlama
Mevcut yük dengeleyicinizin SNAT bağlantı noktası kullanımını ve ayırmasını izlemek için ölçümler, uyarılar ve kaynak durumu ile Standart yük dengeleyici tanılamalarını izleyin. SNAT tükenme riskini onaylamak veya belirlemek için izleyin. Giden bağlantı davranışınızı anlamakta sorun yaşıyorsanız IP yığını istatistiklerini (netstat) kullanın veya paket yakalamaları toplayın. Bu paket yakalamalarını örneğinizin konuk işletim sisteminde gerçekleştirebilir veya paket yakalama için Ağ İzleyicisi kullanabilirsiniz. Çoğu senaryoda Azure, SNAT tükenme riskini azaltmak üzere giden bağlantı için nat ağ geçidi kullanılmasını önerir. Hizmetiniz aynı hedefe yinelenen TCP veya UDP giden bağlantıları başlatıyorsa NAT ağ geçidi önerilir.
Azure dağıtımlarınızı giden bağlantı için iyileştirme
Azure dağıtımlarınızı giden bağlantı için iyileştirmeniz önemlidir. İyileştirme, giden bağlantıyla ilgili sorunları engelleyebilir veya hafifletebilir.
Giden İnternet bağlantısı için NAT ağ geçidi dağıtma
Azure NAT Gateway, sanal ağınızdan İnternet'e giden bağlantı sağlayan yüksek oranda dayanıklı ve ölçeklenebilir bir Azure hizmetidir. NAT ağ geçidinin benzersiz SNAT bağlantı noktalarını kullanma yöntemi, yaygın SNAT tükenmesi ve bağlantı sorunlarının çözülmesine yardımcı olur. Azure NAT Gateway hakkında daha fazla bilgi için bkz . Azure NAT Gateway nedir?.
NAT ağ geçidi SNAT bağlantı noktası tükenme riskini nasıl azaltır?
Azure Load Balancer, bir arka uç havuzundaki her sanal makine örneğine sabit miktarlarda SNAT bağlantı noktası ayırır. Bu ayırma yöntemi, özellikle düzensiz trafik desenleri belirli bir sanal makinenin daha yüksek hacimli giden bağlantılar göndermesine neden oluyorsa SNAT tükenmesine neden olabilir. Yük dengeleyiciden farklı olarak NAT ağ geçidi, bir alt ağ içindeki tüm VM örnekleri arasında SNAT bağlantı noktalarını dinamik olarak ayırır.
NAT ağ geçidi, kullanılabilir SNAT bağlantı noktalarını bir alt ağdaki her örnek için erişilebilir hale getirir. Bu dinamik ayırma, VM örneklerinin her birinin yeni bağlantılar için kullanılabilir bağlantı noktaları havuzundan ihtiyaç duyduğu SNAT bağlantı noktası sayısını kullanmasına olanak tanır. Dinamik ayırma, SNAT tükenme riskini azaltır.
Bağlantı noktası seçimi ve yeniden kullanım davranışı.
NAT ağ geçidi, kullanılabilir bağlantı noktası havuzundan rastgele bağlantı noktalarını seçer. Kullanılabilir bağlantı noktası yoksa SNAT bağlantı noktaları, aynı hedef genel IP'ye ve bağlantı noktasına var olan bir bağlantı olmadığı sürece yeniden kullanılır. Bir NAT ağ geçidinin bu bağlantı noktası seçimi ve yeniden kullanım davranışı, bağlantı zaman aşımlarıyla karşılaşma olasılığını düşürür.
NAT ağ geçidinde SNAT ve bağlantı noktası kullanımının nasıl çalıştığı hakkında daha fazla bilgi edinmek için bkz . SNAT temelleri. Giden bağlantılar için NAT ağ geçidini kullanamamanıza neden olan birkaç koşul vardır. NAT ağ geçidi sınırlamaları hakkında daha fazla bilgi için bkz . NAT Ağ Geçidi sınırlamaları.
Giden bağlantı için NAT ağ geçidi kullanamıyorsanız, bu makalede açıklanan diğer geçiş seçeneklerine bakın.
VM başına SNAT bağlantı noktalarını en üst düzeye çıkarmak için yük dengeleyici giden kurallarını yapılandırma
Genel standart yük dengeleyici kullanıyorsanız ve SNAT tükenmesi veya bağlantı hataları yaşıyorsanız, el ile bağlantı noktası ayırma ile giden kuralları kullandığınızdan emin olun. Aksi takdirde, büyük olasılıkla yük dengeleyicinin varsayılan bağlantı noktası ayırmasını kullanırsınız. Varsayılan bağlantı noktası ayırma, arka uç havuzunuzdaki örnek sayısına bağlı olarak otomatik olarak muhafazakar sayıda bağlantı noktası atar. Varsayılan bağlantı noktası ayırma, giden bağlantıları etkinleştirmek için önerilen bir yöntem değildir. Arka uç havuzunuz ölçeklendirildiğinde, bağlantı noktalarının yeniden yerleştirilmesi gerekiyorsa bağlantılarınız etkilenebilir.
Varsayılan bağlantı noktası ayırma hakkında daha fazla bilgi edinmek için bkz . Giden bağlantılar için Kaynak Ağ Adresi Çevirisi.
VM başına kullanılabilir SNAT bağlantı noktası sayısını artırmak için, yük dengeleyicinizde el ile bağlantı noktası ayırma ile giden kuralları yapılandırın. Örneğin, arka uç havuzunuzda en fazla 10 VM olduğunu biliyorsanız, varsayılan 1.024 yerine VM başına en fazla 6.400 SNAT bağlantı noktası ayırabilirsiniz. Daha fazla SNAT bağlantı noktası gerekiyorsa, kullanılabilir SNAT bağlantı noktası sayısını çarpmak için giden bağlantılar için birden çok ön uç IP adresi ekleyebilirsiniz. Daha fazla ön uç IP adresi eklemeden önce SNAT bağlantı noktalarının neden tükendiğini anladığınızdan emin olun.
Ayrıntılı yönergeler için bu makalenin devamında yer alan Uygulamalarınızı bağlantıları verimli bir şekilde kullanacak şekilde tasarlama konusuna bakın. Giden bağlantılar için daha fazla IP adresi eklemek için her yeni IP için bir ön uç IP yapılandırması oluşturun. Giden kuralları yapılandırıldığında, arka uç havuzu için birden çok ön uç IP yapılandırması seçebilirsiniz. Gelen ve giden bağlantı için farklı IP adreslerinin kullanılması önerilir. Farklı IP adresleri, gelişmiş izleme ve sorun giderme için trafiği yalıtıyor.
VM'de tek bir genel IP yapılandırma
Daha küçük ölçekli dağıtımlar için vm'ye genel IP atamayı düşünebilirsiniz. Vm'ye genel IP atanmışsa, genel IP tarafından sağlanan tüm bağlantı noktaları VM tarafından kullanılabilir. Yük dengeleyicinin veya NAT ağ geçidinin aksine, bağlantı noktalarına yalnızca IP adresiyle ilişkilendirilmiş tek vm erişilebilir.
Tek tek genel IP adresleri atamak ölçeklenebilir bir çözüm olmadığından, bunun yerine NAT ağ geçidini kullanmayı göz önünde bulundurmanızı öneririz.
Not
Azure sanal ağınızı Azure Depolama, Azure SQL, Azure Cosmos DB veya diğer kullanılabilir Azure hizmetleri gibi Azure PaaS hizmetlerine bağlamanız gerekiyorsa, SNAT'yi tamamen önlemek için Azure Özel Bağlantı kullanabilirsiniz. Azure Özel Bağlantı, sanal ağınızdan Azure hizmetlerine İnternet üzerinden değil Azure omurga ağı üzerinden trafik gönderir.
Özel Bağlantı, Azure'da barındırılan hizmetlere özel erişim için hizmet uç noktaları üzerinden önerilen seçenektir. Özel Bağlantı ve hizmet uç noktaları arasındaki fark hakkında daha fazla bilgi için bkz. Özel Uç Noktaları ve Hizmet Uç Noktalarını Karşılaştırma.
Bağlantı verimli uygulamalar tasarlama
Uygulamalarınızı tasarlarken bağlantıları verimli bir şekilde kullandıklarına emin olun. Bağlantı verimliliği, dağıtılan uygulamalarınızda SNAT bağlantı noktası tükenmesini azaltabilir veya ortadan kaldırabilir.
Uygulamanızı, bağlantıları yeniden kullanacak şekilde değiştirin
Her istek için tek tek atomik TCP bağlantıları oluşturmak yerine, uygulamanızı bağlantıları yeniden kullanacak şekilde yapılandırmanızı öneririz. Bağlantının yeniden kullanılması daha yüksek performanslı TCP işlemleriyle sonuçlanır ve özellikle bağlantı yeniden kullanımı varsayılan olan HTTP/1.1 gibi protokoller için geçerlidir. Bu yeniden kullanım, REST gibi aktarımları olarak HTTP kullanan diğer protokoller için geçerlidir.
Uygulamanızı, bağlantı havuzu kullanacak şekilde değiştirin
Uygulamanızda, isteklerin sabit bir bağlantı kümesine dahili olarak dağıtıldığı ve mümkün olduğunda yeniden kullanıldığı bir bağlantı havuzu düzeni kullanın. Bu düzen, kullanımdaki SNAT bağlantı noktalarının sayısını kısıtlar ve daha öngörülebilir bir ortam oluşturur.
Bu düzen, tek bir bağlantı bir işlemin yanıtını engellerken birden çok eşzamanlı işleme izin vererek isteklerin aktarım hızını artırabilir.
Bağlantı havuzu, uygulamanızı veya uygulamanızın yapılandırma ayarlarını geliştirmek için kullandığınız çerçeve içinde zaten mevcut olabilir. Bağlantı havuzunu bağlantı yeniden kullanımıyla birleştirebilirsiniz. Birden çok isteğiniz daha sonra aynı hedef IP adresine ve bağlantı noktasına sabit, tahmin edilebilir sayıda bağlantı noktası kullanır.
İstekler TCP işlemlerinin verimli bir şekilde kullanılmasından yararlanarak gecikme süresini ve kaynak kullanımını azaltır. UDP işlemleri de yararlı olabilir. UDP akışlarının sayısının yönetimi, egzoz koşullarını önleyebilir ve SNAT bağlantı noktası kullanımını yönetebilir.
Uygulamanızı, daha az agresif bir yeniden deneme mantığı kullanacak şekilde değiştirin
SNAT bağlantı noktaları tükendiğinde veya uygulama hataları oluştuğunda, bozulma ve geri alma mantığı olmadan agresif veya deneme yanılma yeniden denemeleri tükenmenin oluşmasına veya kalıcı hale gelmesine neden olur. Daha az agresif bir yeniden deneme mantığı kullanarak SNAT bağlantı noktalarına olan talebi azaltabilirsiniz.
Yapılandırılan boşta kalma zaman aşımına bağlı olarak, yeniden denemeler çok agresifse, bağlantıların yeniden kullanım için SNAT bağlantı noktalarını kapatmak ve serbest bırakmak için yeterli zamanı olmayabilir.
Giden boşta kalma zaman aşımını sıfırlamak için etkin tutmaları kullanma
Yük dengeleyici giden kuralları varsayılan olarak 4 dakikalık boşta kalma zaman aşımına sahiptir ve bu süre 100 dakikaya kadar ayarlanabilir. Tcp keepalives kullanarak boşta kalan bir akışı yenileyebilir ve gerekirse bu boşta kalma zaman aşımını sıfırlayabilirsiniz. TCP korumalarını kullanırken, bağlantının bir tarafında etkinleştirmek yeterlidir.
Örneğin, yalnızca akışın boşta kalma süreölçerini sıfırlamak için sunucu tarafında bunları etkinleştirmek yeterlidir ve her iki tarafın da TCP korumalarını başlatması gerekmez. Veritabanı istemci-sunucu yapılandırmaları da dahil olmak üzere uygulama katmanı için benzer kavramlar mevcuttur. Uygulamaya özgü korumalar için hangi seçeneklerin mevcut olduğunu sunucu tarafında denetleyin.
Sonraki adımlar
SNAT bağlantı noktası tükenmesi, giden bağlantı seçenekleri ve varsayılan giden erişim hakkında daha fazla bilgi için bkz: