Giden bağlantılar (Klasik)

Azure, çeşitli mekanizmalar aracılığıyla müşteri dağıtımları için giden bağlantı sağlar. Bu makalede senaryoların ne olduğu, ne zaman başvurduğu, nasıl çalıştığı ve bunların nasıl yönetileceğini açıklanmaktadır.

Not

Bu makale yalnızca Klasik dağıtımları kapsar. Azure'daki tüm Resource Manager dağıtım senaryoları için Giden bağlantıları gözden geçirin.

Azure'daki bir dağıtım, genel IP adresi alanında Azure dışındaki uç noktalarla iletişim kurabilir. Bir örnek genel IP adresi alanında bir hedefe giden akış başlattığında, Azure özel IP adresini dinamik olarak bir genel IP adresiyle eşler. Bu eşleme oluşturulduktan sonra, giden bu akışın dönüş trafiği de akışın kaynaklandığı özel IP adresine ulaşabilir.

Azure bu işlevi gerçekleştirmek için kaynak ağ adresi çevirisini (SNAT) kullanır. Birden çok özel IP adresi tek bir genel IP adresinin arkasında gizlendiğinde, Azure özel IP adreslerini maskelemek için bağlantı noktası adresi çevirisi (PAT) kullanır. Kısa ömürlü bağlantı noktaları PAT için kullanılır ve havuz boyutuna göre önceden ayrılmıştır .

Birden çok giden senaryo vardır. Bu senaryoları gerektiği gibi birleştirebilirsiniz. Dağıtım modelinize ve uygulama senaryonuza uygulanan özellikleri, kısıtlamaları ve desenleri anlamak için bunları dikkatle gözden geçirin. Bu senaryoları yönetmek için kılavuzu gözden geçirin.

Senaryoya genel bakış

Azure, giden bağlantı Klasik dağıtımları elde etmek için üç farklı yöntem sağlar. Tüm Klasik dağıtımlar üç senaryoya da sahip değildir:

Senaryo Yöntem IP Protokolleri Description Web Çalışanı Rolü IaaS
1. Örnek Düzeyi Genel IP adresine sahip VM SNAT, kullanılmayan bağlantı noktası maskeleme TCP, UDP, ICMP, ESP Azure, genel IP tarafından atanan Sanal Makineyi kullanır. Örnekte tüm kısa ömürlü bağlantı noktaları kullanılabilir. Hayır Yes
2. genel yük dengeli uç nokta Ortak uç noktaya gizlenen bağlantı noktası (PAT) ile SNAT TCP, UDP Azure, genel IP adresi genel uç noktasını birden çok özel uç noktayla paylaşır. Azure, PAT için genel uç noktanın kısa ömürlü bağlantı noktalarını kullanır. Yes Yes
3. Tek başına VM Bağlantı noktası maskelemeli SNAT (PAT) TCP, UDP Azure, SNAT için otomatik olarak bir genel IP adresi belirler, bu genel IP adresini dağıtımın tamamıyla paylaşır ve PAT için genel uç nokta IP adresinin kısa ömürlü bağlantı noktalarını kullanır. Bu, önceki senaryolar için bir geri dönüş senaryosudur. Görünürlük ve denetime ihtiyacınız varsa bunu önermeyiz. Yes Yes

Bu, Azure'daki Resource Manager dağıtımları için kullanılabilen giden bağlantı işlevselliğinin bir alt kümesidir.

Klasik'teki farklı dağıtımların farklı işlevleri vardır:

Klasik dağıtım İşlevsellik kullanılabilir
Sanal Makine senaryo 1, 2 veya 3
Web Çalışanı Rolü yalnızca senaryo 2, 3

Risk azaltma stratejileri de aynı farklılıklara sahiptir.

Klasik dağıtımlar için PAT için kısa ömürlü bağlantı noktalarını önceden ayırmada kullanılan algoritma, Azure Resource Manager kaynak dağıtımlarıyla aynıdır.

Senaryo 1: Örnek Düzeyi Genel IP adresine sahip VM

Bu senaryoda VM'ye bir Örnek Düzeyi Genel IP (ILPIP) atanmıştır. Giden bağlantılar söz konusu olduğunda, VM'de yük dengeli uç nokta olup olmadığı önemli değildir. Bu senaryo diğerlerinden önceliklidir. Bir ILPIP kullanıldığında, VM tüm giden akışlar için ILPIP'yi kullanır.

Vm'ye atanan genel IP, 1:1 ilişkisidir (1:çok yerine) ve durum bilgisi olmayan 1:1 NAT olarak uygulanır. Bağlantı noktası maskeleme (PAT) kullanılmaz ve VM'de tüm kısa ömürlü bağlantı noktaları kullanılabilir.

Uygulamanız birçok giden akış başlatıyorsa ve SNAT bağlantı noktası tükenmesi yaşıyorsanız, SNAT kısıtlamalarını azaltmak için bir ILPIP atamayı göz önünde bulundurun. SNAT tükenmesini tamamen yönetme bölümünü gözden geçirin.

Senaryo 2: Genel yük dengeli uç nokta

Bu senaryoda VM veya Web Çalışanı Rolü, yük dengeli uç nokta üzerinden genel IP adresiyle ilişkilendirilir. VM'ye atanmış bir genel IP adresi yok.

Yük dengeli VM bir giden akışı oluşturduğunda, Azure giden akışın özel kaynak IP adresini genel yük dengeli uç noktanın genel IP adresine çevirir. Azure bu işlevi gerçekleştirmek için SNAT kullanır. Azure ayrıca genel IP adresinin arkasında birden çok özel IP adresini maskelemek için PAT kullanır.

Yük dengeleyicinin genel IP adresi ön ucu kısa ömürlü bağlantı noktaları, VM'den kaynaklanan tek tek akışları ayırt etmek için kullanılır. Giden akışlar oluşturulduğunda SNAT dinamik olarak önceden ayrılmış kısa ömürlü bağlantı noktalarını kullanır. Bu bağlamda, SNAT için kullanılan kısa ömürlü bağlantı noktalarına SNAT bağlantı noktaları adı verilir.

SNAT bağlantı noktaları, SNAT ve PAT'yi Anlama bölümünde açıklandığı gibi önceden ayrılmıştır. Bunlar tükenebilecek sınırlı bir kaynaktır. Bunların nasıl tüketildiklerini anlamak önemlidir. Bu tüketimin nasıl tasarlanıp gerektiği gibi azaltılıp azaltılam yapılacağını anlamak için SNAT tükenmesini yönetme bölümünü gözden geçirin.

Birden çok genel yük dengeli uç nokta mevcut olduğunda, bu genel IP adreslerinden herhangi biri giden akışlar için bir adaydır ve biri rastgele seçilir.

Senaryo 3: İlişkili genel IP adresi yok

Bu senaryoda, VM veya Web Çalışanı ROle genel yük dengeli uç noktanın parçası değildir. Vm söz konusu olduğunda, vm'ye atanmış bir ILPIP adresi yoktur. VM bir giden akışı oluşturduğunda, Azure giden akışın özel kaynak IP adresini bir genel kaynak IP adresine çevirir. Bu giden akış için kullanılan genel IP adresi yapılandırılamaz ve aboneliğin genel IP kaynak sınırına göre sayılmaz. Azure bu adresi otomatik olarak ayırır.

Azure, bu işlevi gerçekleştirmek için SNAT'yi bağlantı noktası maskeleme (PAT) ile kullanır. Bu senaryo senaryo 2'ye benzer, ancak kullanılan IP adresi üzerinde denetim yoktur. Bu, 1 ve 2 senaryolarının mevcut olmadığı durumlara yönelik bir geri dönüş senaryosudur. Giden adres üzerinde denetime ihtiyacınız varsa bu senaryoyu önermeyiz. Giden bağlantılar uygulamanızın kritik bir parçasıysa başka bir senaryo seçmelisiniz.

SNAT bağlantı noktaları, SNAT ve PAT'yi Anlama bölümünde açıklandığı gibi önceden ayrılmıştır. Genel IP adresini paylaşan VM'lerin veya Web Çalışanı Rollerinin sayısı, önceden ayrılmış kısa ömürlü bağlantı noktalarının sayısını belirler. Bunların nasıl tüketildiklerini anlamak önemlidir. Bu tüketimin nasıl tasarlanıp gerektiği gibi azaltılıp azaltılam yapılacağını anlamak için SNAT tükenmesini yönetme bölümünü gözden geçirin.

SNAT ve PAT'i anlama

SNAT'yi gizleyen bağlantı noktası (PAT)

Dağıtım bir giden bağlantı yaptığında, her giden bağlantı kaynağı yeniden yazılır. Kaynak, özel IP adresi alanından dağıtımla ilişkili genel IP'ye yeniden yazılır (yukarıda açıklanan senaryolara göre). Genel IP adresi alanında, akışın 5 tanımlama grubu (kaynak IP adresi, kaynak bağlantı noktası, IP aktarım protokolü, hedef IP adresi, hedef bağlantı noktası) benzersiz olmalıdır.

Birden çok akış tek bir genel IP adresinden kaynaklandığından, özel kaynak IP adresi yeniden yazıldıktan sonra bunu başarmak için kısa ömürlü bağlantı noktaları (SNAT bağlantı noktaları) kullanılır.

Tek bir hedef IP adresine, bağlantı noktasına ve protokole akış başına bir SNAT bağlantı noktası kullanılır. Aynı hedef IP adresine, bağlantı noktasına ve protokole birden çok akış için her akış tek bir SNAT bağlantı noktası kullanır. Bu, akışların aynı genel IP adresinden kaynaklandığında ve aynı hedef IP adresine, bağlantı noktasına ve protokole gittiği zaman benzersiz olmasını sağlar.

Her biri farklı bir hedef IP adresine, bağlantı noktasına ve protokole giden birden çok akış, tek bir SNAT bağlantı noktasını paylaşır. Hedef IP adresi, bağlantı noktası ve protokol, genel IP adresi alanında akışları ayırt etmek için ek kaynak bağlantı noktalarına gerek kalmadan akışları benzersiz hale getirir.

SNAT bağlantı noktası kaynakları tükendiğinde, mevcut akışlar SNAT bağlantı noktalarını serbest bırakana kadar giden akışlar başarısız olur. Load Balancer, akış kapandığında SNAT bağlantı noktalarını geri alır ve boşta akışlardan SNAT bağlantı noktalarını geri kazanmak için 4 dakikalık boşta kalma zaman aşımı kullanır.

SNAT bağlantı noktası tükenmesine yol açan koşulları azaltmaya yönelik desenler için SNAT'yi Yönetme bölümünü gözden geçirin.

SNAT (PAT) gizleyen bağlantı noktası için kısa ömürlü bağlantı noktası ön yerleşimi

Azure, SNAT'yi gizleyen bağlantı noktası (PAT) kullanırken arka uç havuzunun boyutuna bağlı olarak önceden ayrılmış SNAT bağlantı noktalarının sayısını belirlemek için bir algoritma kullanır. SNAT bağlantı noktaları, belirli bir genel IP kaynağı adresi için kısa ömürlü bağlantı noktalarıdır.

Azure, bir örnek dağıtıldığında belirli bir genel IP adresini kaç VM veya Web Çalışanı Rolü örneğinin paylaştığına göre SNAT bağlantı noktalarını önceden ayırır. Giden akışlar oluşturulduğunda PAT dinamik olarak tüketir (önceden ayrılmış sınıra kadar) ve akış kapandığında veya boşta kalma zaman aşımları oluştuğunda bu bağlantı noktalarını serbest bırakır.

Aşağıdaki tabloda arka uç havuzu boyutlarının katmanları için SNAT bağlantı noktası ön yüklemeleri gösterilmektedir:

Örnekler Örnek başına önceden ayrılmış SNAT bağlantı noktaları
1-50 1,024
51-100 512
101-200 256
201-400 128

Kullanılabilir SNAT bağlantı noktası sayısının doğrudan akış sayısına çevrilmediğini unutmayın. Tek bir SNAT bağlantı noktası birden çok benzersiz hedef için yeniden kullanılabilir. Bağlantı noktaları yalnızca akışların benzersiz olması gerekiyorsa kullanılır. Tasarım ve risk azaltma yönergeleri için , bu kapsamlı kaynağın nasıl yönetileceğini açıklayan bölüme ve PAT'yi açıklayan bölüme bakın.

Dağıtımınızın boyutunu değiştirmek, bazı yerleşik akışlarınızı etkileyebilir. Arka uç havuzu boyutu artar ve sonraki katmana geçiş yapılırsa, bir sonraki daha büyük arka uç havuzu katmanına geçiş sırasında önceden ayrılmış SNAT bağlantı noktalarınızın yarısı geri kazanılır. Geri kazanılmış bir SNAT bağlantı noktasıyla ilişkili akışlar zaman aşımına uğrayacak ve yeniden kurulması gerekir. Yeni bir akış denenirse, önceden ayrılmış bağlantı noktaları kullanılabilir olduğu sürece akış hemen başarılı olur.

Dağıtım boyutu azalır ve daha düşük bir katmana geçirildiyse, kullanılabilir SNAT bağlantı noktalarının sayısı artar. Bu durumda, mevcut ayrılmış SNAT bağlantı noktaları ve ilgili akışları etkilenmez.

Bir bulut hizmeti yeniden dağıtılır veya değiştirilirse altyapı geçici olarak arka uç havuzunun gerçekten iki kat daha büyük olduğunu bildirebilir ve Azure da örnek başına beklenenden daha az SNAT bağlantı noktası önceden yer değiştirir. Bu, SNAT bağlantı noktası tükenme olasılığını geçici olarak artırabilir. Sonunda havuz boyutu gerçek boyuta geçecektir ve Azure yukarıdaki tabloya göre önceden ayrılmış SNAT bağlantı noktalarını otomatik olarak beklenen sayıya yükseltecektir. Bu davranış tasarım gereğidir ve yapılandırılamaz.

SNAT bağlantı noktası ayırmaları IP aktarım protokolüne özeldir (TCP ve UDP ayrı tutulur) ve aşağıdaki koşullar altında serbest bırakılır:

TCP SNAT bağlantı noktası sürümü

  • Her iki sunucu/istemci de FIN/ACK gönderirse, SNAT bağlantı noktası 240 saniye sonra serbest bırakılır.
  • RST görülürse, SNAT bağlantı noktası 15 saniye sonra serbest bırakılır.
  • boşta kalma zaman aşımına ulaşıldı

UDP SNAT bağlantı noktası sürümü

  • boşta kalma zaman aşımına ulaşıldı

Sorun çözme

Bu bölüm, Azure'da giden bağlantılarda oluşabilecek SNAT tükenmesini ve diğer senaryoları azaltmaya yardımcı olmak için tasarlanmıştır.

SNAT (PAT) bağlantı noktası tükenmesini yönetme

PAT için kullanılan kısa ömürlü bağlantı noktaları, hiçbir genel IP ile ilişkilendirilmiş ve genelyük dengeli uç noktada açıklandığı gibi, kapsamlı bir kaynaktır.

Aynı hedef IP adresine ve bağlantı noktasına birçok giden TCP veya UDP bağlantısı başlatdığınızı biliyorsanız ve giden bağlantıların başarısız olduğunu gözlemliyorsanız veya SNAT bağlantı noktalarını (PAT tarafından kullanılan önceden ayrılmış kısa ömürlü bağlantı noktaları) tüketiyor olmanız destek tarafından öneriliyorsanız, çeşitli genel azaltma seçenekleriniz vardır. Bu seçenekleri gözden geçirin ve senaryonuz için nelerin kullanılabilir ve en iyi olduğuna karar verin. Bir veya daha fazla kişi bu senaryoya yardımcı olabilir.

Giden bağlantı davranışını anlamakta sorun yaşıyorsanız IP yığını istatistiklerini (netstat) kullanabilirsiniz. Ya da paket yakalamaları kullanarak bağlantı davranışlarını gözlemlemek yararlı olabilir.

Uygulamanızı, bağlantıları yeniden kullanacak şekilde değiştirin

Uygulamanızdaki bağlantıları yeniden kullanarak SNAT için kullanılan kısa ömürlü bağlantı noktalarına olan talebi azaltabilirsiniz. Bu durum özellikle http/1.1 gibi protokoller için geçerlidir; burada bağlantı yeniden kullanımı varsayılandır. Aktarımları olarak HTTP kullanan diğer protokoller de (örneğin REST) avantajlı olabilir.

Yeniden kullanım, her istek için tek tek, atomik TCP bağlantılarından her zaman daha iyidir. Sonuçları daha performanslı ve çok verimli TCP işlemlerinde yeniden kullanın.

Uygulamanızı, bağlantı havuzu kullanacak şekilde değiştirin

Uygulamanızda, isteklerin sabit bir bağlantı kümesi (mümkün olduğunda her biri yeniden kullanılıyor) arasında dahili olarak dağıtıldığı bir bağlantı havuzu düzeni kullanabilirsiniz. Bu düzen, kullanımdaki kısa ömürlü 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ının bir işlemin yanıtını engellemesi halinde birden çok eşzamanlı işleme izin vererek isteklerin aktarım hızını da 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, gecikme süresini ve kaynak kullanımını azaltan TCP işlemlerinin verimli bir şekilde kullanılmasından da yararlanmaktadır. UDP akışlarının sayısını yönetmek de egzoz koşullarını önleyip SNAT bağlantı noktası kullanımını yönetebileceğinden UDP işlemleri de yararlı olabilir.

Uygulamanızı, daha az agresif bir yeniden deneme mantığı kullanacak şekilde değiştirin

PAT için kullanılan önceden ayrılmış kısa ömürlü bağlantı noktaları tükendiğinde veya uygulama hataları oluştuğunda, bozulma ve geri çekilme 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 kısa ömürlü bağlantı noktalarına olan talebi azaltabilirsiniz.

Kısa ömürlü bağlantı noktaları 4 dakikalık boşta kalma zaman aşımına sahiptir (ayarlanabilir değildir). Yeniden denemeler çok agresifse, tükenmenin kendi kendine temizleme fırsatı yoktur. Bu nedenle, uygulamanızın işlemleri yeniden deneme sıklıklarını ve sıklıklarını göz önünde bulundurmak tasarımın kritik bir parçasıdır.

Her VM'ye Örnek Düzeyi Genel IP'yi atama

ILPIP atamak senaryonuzu Örnek Düzeyinde Genel IP olarak vm'ye değiştirir. Her VM için kullanılan genel IP'nin kısa ömürlü tüm bağlantı noktaları VM tarafından kullanılabilir. (Genel IP'nin kısa ömürlü bağlantı noktalarının ilgili dağıtımla ilişkili tüm VM'lerle paylaşıldığı senaryoların aksine.) Çok sayıda ip adresini izin verilenler listesine eklemenin olası etkisi gibi dikkate alınması gereken dengeler vardır.

Not

Bu seçenek web çalışanı rolleri için kullanılamaz.

Giden boşta kalma zaman aşımını sıfırlamak için etkin tutmaları kullanma

Giden bağlantılarda 4 dakikalık boşta kalma zaman aşımı vardır. Bu zaman aşımı ayarlanmıyor. Ancak, bir boş akışı yenilemek ve gerekirse bu boşta kalma zaman aşımını sıfırlamak için aktarım (örneğin, TCP koruyucuları) veya uygulama katmanı koruyucuları kullanabilirsiniz. Bunun desteklenip desteklenmediğini veya nasıl etkinleştirileceği konusunda paketlenmiş yazılımların sağlayıcısına başvurun. Genellikle boşta kalma zaman aşımını sıfırlamak için yalnızca bir tarafın korumalar oluşturması gerekir.

Vm'nin kullandığı genel IP'yi bulma

Giden bağlantının genel kaynak IP adresini belirlemenin birçok yolu vardır. OpenDNS, vm'nizin genel IP adresini gösterebilen bir hizmet sağlar.

nslookup komutunu kullanarak, ad myip.opendns.com için OpenDNS çözümleyicisine bir DNS sorgusu gönderebilirsiniz. Hizmet, sorguyu göndermek için kullanılan kaynak IP adresini döndürür. Vm'nizden aşağıdaki sorguyu çalıştırdığınızda, yanıt bu VM için kullanılan genel IP'dir:

nslookup myip.opendns.com resolver1.opendns.com

Sonraki adımlar

  • Resource Manager dağıtımlarında kullanılan Load Balancer hakkında daha fazla bilgi edinin.
  • Resource Manager dağıtımlarında kullanılabilen giden bağlantı senaryoları hakkında bilgi edinin.