Load Balancer TCP Sıfırlama ve Boşta Kalma Zaman Aşımı

Standart Load Balancer kullanarak belirli bir kural için Boşta TCP Sıfırlama'yı etkinleştirerek senaryolarınız için daha öngörülebilir bir uygulama davranışı oluşturabilirsiniz. Load Balancer'ın varsayılan davranışı, bir akışın boşta kalma zaman aşımına ulaşıldığında akışları sessizce bırakmaktır. TCP sıfırlamanın etkinleştirilmesi, Load Balancer'ın boşta kalma zaman aşımında çift yönlü TCP Sıfırlamaları (TCP sıfırlama paketleri) göndermesine neden olarak uygulama uç noktalarınıza bağlantının zaman aşımına uğradı ve artık kullanılamadığını bildirir. Uç noktalar gerekirse hemen yeni bir bağlantı kurabilir.

Diyagram, ağ düğümlerinin varsayılan TCP sıfırlama davranışını gösterir.

TCP sıfırlama

Bu varsayılan davranışı değiştirir ve gelen NAT kurallarında, yük dengeleme kurallarında ve giden kurallarında boşta kalma zaman aşımında TCP Sıfırlamaları göndermeyi etkinleştirirsiniz. Kural başına etkinleştirildiğinde Load Balancer, eşleşen tüm akışlar için boşta kalma zaman aşımı sırasında hem istemci hem de sunucu uç noktalarına çift yönlü TCP Sıfırlamaları (TCP RST paketleri) gönderir.

TCP rest paketlerini alan uç noktalar ilgili yuvayı hemen kapatır. Bu, uç noktanın bağlantı sürümüne anında bildirim sağlar ve aynı TCP bağlantısındaki gelecekteki tüm iletişimler başarısız olur. Yuva kapandığında ve bağlantıları gerektiğinde TCP bağlantısının zaman aşımına uğramasını beklemeden yeniden kurarken uygulamalar bağlantıları temizleyebilir.

Birçok senaryoda TCP sıfırlama, bir akışın boşta kalma zaman aşımını yenilemek için TCP (veya uygulama katmanı) korumaları gönderme gereksinimini azaltabilir.

Boşta kalma süreleriniz yapılandırma sınırlarını aşarsa veya uygulamanız TCP Sıfırlamaları etkinken istenmeyen bir davranış gösteriyorsa, TCP bağlantılarının canlılığını izlemek için TCP korumalarını veya uygulama katmanı korumalarını kullanmanız gerekebilir. Ayrıca, bağlantının, özellikle uygulama katmanı korumaları olmak üzere yolun herhangi bir yerinde proksid olduğu durumlarda da korumalar yararlı olmaya devam edebilir.

Tüm uçtan uca senaryoyu dikkatle inceleyerek TCP Sıfırlamalarını etkinleştirmenin ve boşta kalma zaman aşımını ayarlamanın avantajlarını belirleyebilirsiniz. Ardından, istenen uygulama davranışını sağlamak için daha fazla adım gerekip gerekmediğini karar verirsiniz.

Yapılandırılabilir TCP boşta kalma zaman aşımı

Azure Load Balancer Standard yük dengeleyici kuralları, giden kuralları ve gelen NAT kuralları için 4 dakika ile 100 dakika arasında bir zaman aşımı aralığına sahiptir. Varsayılan değer 4 dakikadır. Etkinlik dışı kalma süresi zaman aşımı değerinden uzunsa, istemci ile bulut hizmetiniz arasında TCP veya HTTP oturumunun korunduğunun garantisi yoktur. Azure Load Balancer Basic'in 30 dakikaya kadar zaman aşımı aralığı vardır.

Bağlantı kapatıldığında, istemci uygulamanız şu hata iletisini alabilir: "Temel alınan bağlantı kapatıldı: Canlı tutulması beklenen bir bağlantı sunucu tarafından kapatıldı."

TCP sıfırlamaları etkinse ve herhangi bir nedenle yanıtsızsa, sonraki paketler için sıfırlanır. TCP sıfırlama seçeneği etkin değilse paketler sessizce bırakılır.

Tcp etkin tutma özelliğini kullanmak yaygın bir uygulamadır. Bu uygulama, bağlantıyı daha uzun süre etkin tutar. Daha fazla bilgi için bu .NET örneklerine bakın. Etkin tutma etkinken, paketler bağlantıdaki etkinlik dışı dönemlerde gönderilir. Etkin tutma paketleri, boşta kalma zaman aşımı değerine ulaşılmadığından ve bağlantının uzun süre korundığından emin olur.

Bu ayar yalnızca gelen bağlantılar için çalışır. Bağlantıyı kaybetmemek için TCP etkin tutma ayarını boşta kalma zaman aşımı ayarından daha kısa bir aralıkla yapılandırın veya boşta kalma zaman aşımı değerini artırın. Bu senaryoları desteklemek için yapılandırılabilir boşta kalma zaman aşımı desteği sağlanır.

TCP etkin tutma, pil ömrünün kısıtlama olmadığı senaryolarda çalışır. Mobil uygulamalar için önerilmez. Mobil uygulamada TCP etkin tutma kullanmak, cihaz pilini daha hızlı tüketebilir.

Öncelik sırası

Farklı IP'ler için ayarlanan boşta kalma zaman aşımı değerlerinin etkileşim kurma olasılığı dikkate alınması önemlidir.

Gelen

  • Boşta kalma zaman aşımı değeri başvuruda bulunduğu ön uç IP'sinin boşta kalma zaman aşımından farklı ayarlanmış bir (gelen) yük dengeleyici kuralı varsa, yük dengeleyici ön uç IP boşta kalma zaman aşımı önceliklidir.
  • Boşta kalma zaman aşımı değeri başvuruda bulunduğu ön uç IP'sinin boşta kalma zaman aşımından farklı ayarlanmış bir gelen NAT kuralı varsa, yük dengeleyici ön uç IP boşta kalma zaman aşımı önceliklidir.

Giden

  • Boşta kalma zaman aşımı değeri 4 dakikadan (genel IP giden boşta kalma zaman aşımının kilitlendiği yerdir) farklı bir giden kuralı varsa, giden kuralı boşta kalma zaman aşımı önceliklidir.
  • NAT ağ geçidi her zaman yük dengeleyici giden kurallarından (ve doğrudan VM'lere atanan genel IP adresleri üzerinden) öncelikli olduğundan, NAT ağ geçidine atanan boşta kalma zaman aşımı değeri kullanılır. (Aynı satırlar boyunca, NAT GW'ye atanan IP'lerin 4 dakikalık kilitli genel IP giden boşta kalma zaman aşımları dikkate alınmaz.)

Sınırlamalar

  • TCP sıfırlama yalnızca TCP bağlantısı sırasında KURULAN durumunda gönderilir.
  • TCP boşta kalma zaman aşımı UDP protokolündeki yük dengeleme kurallarını etkilemez.
  • Tcp sıfırlama, bir ağ sanal gereci yoldayken İç Yük Dengeleyici HA bağlantı noktaları için desteklenmez. Geçici bir çözüm, Ağ Sanal Gereci'nden TCP sıfırlama ile giden kuralı kullanmak olabilir.

Sonraki adımlar