Azure Load Balancer giden bağlantı sorunlarını giderme

Azure Load Balancer'da giden bağlantılarla ilgili sorun giderme kılavuzlarını öğrenin. Bu, kaynak ağ adresi çevirisini (SNAT) anlamayı ve bağlantılar üzerindeki etkisini, VM'lerde tek tek genel IP'leri kullanmayı ve SNAT bağlantı noktası tükenmesini önlemek için bağlantı verimliliği için uygulamalar tasarlamayı içerir. Müşterilerin yaşadığı 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ükenmesi 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 amacıyla 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 kesinlikle ö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ı önleyebilir 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ı çözmeye yardımcı olur. Azure NAT Ağ Geçidi 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 de düzensiz trafik desenleri belirli bir sanal makinenin daha yüksek hacimli giden bağlantılar göndermesine neden oluyorsa SNAT tükenmesine yol açabilir. 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 yeni bağlantılar için kullanılabilir bağlantı noktaları havuzundan her birinin ihtiyaç duyduğu SNAT bağlantı noktası sayısını kullanmasına olanak tanır. Dinamik ayırma, SNAT tükenme riskini azaltır.

    Azure Load Balancer ve Azure NAT Gateway'in diyagramı.

  • Bağlantı noktası seçimi ve yeniden kullanım davranışı.

    NAT ağ geçidi, kullanılabilir bağlantı noktaları 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. 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 kullanamayacağınız 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 giden erişimine güvenirsiniz. Varsayılan giden erişim, arka uç havuzunuzdaki örnek sayısına bağlı olarak otomatik olarak muhafazakar sayıda bağlantı noktası ayırır. Varsayılan giden erişim, 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 giden erişim ve 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ı noktalarının 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ı noktalarının 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ı neden tükett olduğunuzu anladığınızdan emin olun.

Ayrıntılı yönergeler için bu makalenin devamında uygulamalarınızı bağlantıları verimli bir şekilde kullanacak şekilde tasarlama bölümüne bakın. Giden bağlantılara 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'yi yapılandırma

Daha küçük ölçekli dağıtımlar için vm'ye genel IP atamayı düşünebilirsiniz. Bir VM'ye genel IP atanmışsa, genel IP tarafından sağlanan tüm bağlantı noktaları VM tarafından kullanılabilir. Yük dengeleyici veya NAT ağ geçidinden farklı olarak, bağlantı noktalarına yalnızca IP adresiyle ilişkili 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ı kesinlikle ö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ızdaki trafiği İnternet yerine Azure omurga ağı üzerinden Azure hizmetlerine gönderir.

Özel Bağlantı, Azure tarafından barındırılan hizmetlere özel erişim için hizmet uç noktaları üzerinde ö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ının yeniden kullanılması 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ı engellediğinde 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ükenmeye veya kalıcılığa 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ında varsayılan olarak 100 dakikaya kadar ayarlanabilir 4 dakikalık boşta kalma zaman aşımı vardır. Boşta kalan bir akışı yenilemek ve gerekirse bu boşta kalma zaman aşımını sıfırlamak için TCP korumalarını kullanabilirsiniz. TCP korumalarını kullanırken, bağlantının bir tarafında etkinleştirmek yeterlidir.

Örneğin, bunların yalnızca akışın boşta zamanlayıcısını sıfırlamak için sunucu tarafında etkinleştirilmeleri 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 vardır. 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: