Azure App Service ile sanal ağ tümleştirme sorunlarını giderme
Bu makalede, sanal ağ ile tümleşen Azure App Service bağlantı sorunlarını gidermek için kullanabileceğiniz araçlar açıklanmaktadır.
Not
sanal ağ tümleştirmesi, App Service'daki Docker Compose senaryolarında desteklenmez. Özel bir uç nokta varsa erişim kısıtlama ilkeleri yoksayılır.
Sanal ağ tümleştirmeyi doğrulama
Bağlantı sorunlarını gidermek için önce sanal ağ tümleştirmesinin doğru yapılandırılıp yapılandırılmadığını ve özel IP'nin App Service Planının tüm örneklerine atanıp atanmadığını doğrulamanız gerekir.
Bunu yapmak için aşağıdaki yöntemlerden birini kullanın:
Kudu Hata Ayıklama konsolunda özel IP'yi denetleme
Kudu konsoluna erişmek için Azure portal uygulama hizmetini seçin, Geliştirme Araçları'na gidin, Gelişmiş Araçlar'ı ve ardından Git'i seçin. Kudu hizmeti sayfasında Araçlar>Hata Ayıklama Konsolu>CMD'sini seçin.
Ayrıca Doğrudan URL [sitename].scm.azurewebsites.net/DebugConsole
ile Kudu Hata Ayıklama konsoluna da gidebilirsiniz.
Hata ayıklama konsolunda aşağıdaki komutlardan birini çalıştırın:
Windows işletim sistemi tabanlı uygulamalar
SET WEBSITE_PRIVATE_IP
Özel IP başarıyla atanırsa aşağıdaki çıkışı alırsınız:
WEBSITE_PRIVATE_IP=<IP address>
Linux işletim sistemi tabanlı uygulamalar
set| egrep --color 'WEBSITE_PRIVATE_IP'
Kudu ortamında özel IP'yi denetleme
konumundaki Kudu ortamına [sitename].scm.azurewebsites.net/Env
gidin ve öğesini arayın WEBSITE_PRIVATE_IP
.
Sanal ağ tümleştirmesinin başarıyla yapılandırıldığını tespit ettikten sonra bağlantı testiyle devam edebiliriz.
Windows Uygulamaları'nda giden bağlantı sorunlarını giderme
Yerel Windows Uygulamalarında, güvenlik kısıtlamaları nedeniyle araçlar ping, nslookup ve tracert konsolda çalışmaz (bunlar özel Windows Kapsayıcılarında çalışır).
Doğrudan adresinden Kudu konsoluna [sitename].scm.azurewebsites.net/DebugConsole
gidin.
DNS işlevselliğini test etmek için nameresolver.exekullanabilirsiniz. Söz dizimi şu şekildedir:
nameresolver.exe hostname [optional:DNS Server]
Uygulamanızın bağımlı olduğu konak adlarını denetlemek için nameresolver kullanabilirsiniz. Bu şekilde, DNS'nizle yanlış yapılandırılmış bir şeye sahip olup olmadığınızı veya DNS sunucunuza erişiminizin olup olmadığını test edebilirsiniz. Uygulamanızın kullandığı DNS sunucusunu konsolda WEBSITE_DNS_SERVER ve WEBSITE_DNS_ALT_SERVER ortam değişkenlerine bakarak görebilirsiniz.
Not
nameresolver.exe aracı şu anda özel Windows kapsayıcılarında çalışmıyor.
Bir konak ve bağlantı noktası birleşimine TCP bağlantısını test etmek için tcpping kullanabilirsiniz. Söz dizimi.
tcpping.exe hostname [optional: port]
Tcpping yardımcı programı, belirli bir ana bilgisayara ve bağlantı noktasına ulaşıp ulaşamadığını bildirir. Yalnızca ana bilgisayar ve bağlantı noktası bileşiminde dinleyen bir uygulama varsa ve uygulamanızdan belirtilen konak ve bağlantı noktasına ağ erişimi varsa başarıyı gösterebilir.
Linux Uygulamalarında giden bağlantı sorunlarını giderme
Doğrudan adresinden Kudu'ya [sitename].scm.azurewebsites.net
gidin. Kudu hizmeti sayfasında Araçlar>Hata Ayıklama Konsolu>CMD'sini seçin.
DNS işlevselliğini test etmek için nslookup komutunu kullanabilirsiniz. Söz dizimi şu şekildedir:
nslookup hostname [optional:DNS Server]
Yukarıdaki sonuçlara bağlı olarak, DNS sunucunuzda yanlış yapılandırılmış bir şey olup olmadığını kontrol edebilirsiniz.
Not
nameresolver.exe aracı şu anda Linux uygulamalarında çalışmıyor.
Bağlantıyı test etmek için Curl komutunu kullanabilirsiniz. Söz dizimi şu şekildedir:
curl -v https://hostname
curl hostname:[port]
Ağ tarafından barındırılan sanal kaynaklara erişimde hata ayıklama
Uygulamanızın belirli bir ana bilgisayara ve bağlantı noktasına ulaşmasını engelleyebilecek bir dizi faktör vardır. Çoğu zaman aşağıdakilerden biridir:
- Güvenlik duvarı yolda. Bu yolda bir güvenlik duvarınız varsa TCP zaman aşımına çarptınız. Bu durumda TCP zaman aşımı 21 saniyedir. Bağlantıyı test etmek için tcpping aracını kullanın. TCP zaman aşımlarına güvenlik duvarlarının ötesinde birçok şey neden olabilir, ancak buradan başlayın.
- DNS erişilebilir değil. DNS zaman aşımı, DNS sunucusu başına üç saniyedir. İki DNS sunucunuz varsa, zaman aşımı altı saniyedir. DNS'nin çalışıp çalışmadiğini görmek için nameresolver kullanın. Sanal ağınızın yapılandırıldığı DNS'yi kullanmadığından nslookup kullanamazsınız. Erişilemiyorsa, DNS erişimini engelleyen bir güvenlik duvarınız veya NSG'niz olabilir veya devre dışı olabilir. Özel DNS sunucuları kullanan bazı DNS mimarileri karmaşık olabilir ve bazen zaman aşımlarıyla karşılaşabilir. Durumun bu olup olmadığını belirlemek için ortam değişkeni
WEBSITE_DNS_ATTEMPTS
ayarlanabilir. Uygulama Hizmetleri'ndeki DNS hakkında daha fazla bilgi için bkz. App Service'de ad çözümlemesi (DNS).
Bu öğeler sorunlarınızı yanıtlamıyorsa, önce aşağıdakilere bakın:
Bölgesel sanal ağ tümleştirmesi
- Hedefiniz RFC1918 olmayan bir adres mi ve Tümünü Yönlendir özelliği etkin değil mi?
- Tümleştirme alt ağınızdan çıkış engelleyen bir NSG var mı?
- Azure ExpressRoute veya VPN üzerinden gidiyorsanız, şirket içi ağ geçidiniz trafiği Azure'a geri yönlendirmek için yapılandırılmış mı? Sanal ağınızdaki uç noktalara ulaşabiliyor ancak şirket içinde ulaşamıyorsanız rotalarınızı denetleyin.
- Tümleştirme alt ağı üzerinde temsilci seçmeyi ayarlamak için yeterli izniniz var mı? Bölgesel sanal ağ tümleştirme yapılandırması sırasında tümleştirme alt ağınız Microsoft.Web/serverFarms'a devredilir. Sanal ağ tümleştirme kullanıcı arabirimi, alt ağı otomatik olarak Microsoft.Web/serverFarms'a devreder. Hesabınız temsilci seçmeyi ayarlamak için yeterli ağ izinlerine sahip değilse, alt ağı devretmek için tümleştirme alt ağınızda öznitelik ayarlayabilen birine ihtiyacınız olacaktır. Tümleştirme alt a sitesine el ile temsilci atamak için Azure Sanal Ağ alt ağ kullanıcı arabirimine gidin ve Microsoft.Web/serverFarms için temsilci seçmeyi ayarlayın.
Belirli bir konak:bağlantı noktası birleşimine erişimi engelleyen şeyi göremezseniz ağ sorunlarının hatalarını ayıklamak zor bir durumdur. Bazı nedenler şunlardır:
- Ana bilgisayarınızda noktadan siteye IP aralığınızdan uygulama bağlantı noktasına erişimi engelleyen bir güvenlik duvarınız var. Alt ağları aşmak genellikle genel erişim gerektirir.
- Hedef konağınız çalışmıyor.
- Uygulamanız çalışmıyor.
- Yanlış IP veya ana bilgisayar adına sahipsiniz.
- Uygulamanız beklediğinizden farklı bir bağlantı noktasında dinliyor. Uç nokta ana bilgisayarında "netstat -aon" kullanarak işlem kimliğinizi dinleme bağlantı noktasıyla eşleştirebilirsiniz.
- Ağ güvenlik gruplarınız, uygulama konağınıza ve bağlantı noktasınıza noktadan siteye IP aralığınızdan erişimi engelleyecek şekilde yapılandırılır.
Uygulamanızın gerçekte hangi adresi kullandığını bilmiyorsunuz. Tümleştirme alt ağındaki veya noktadan siteye adres aralığındaki herhangi bir adres olabilir, bu nedenle adres aralığının tamamından erişime izin vermeniz gerekir.
Diğer hata ayıklama adımları şunlardır:
- Sanal ağınızdaki bir VM'ye bağlanın ve oradan kaynak konağınıza:bağlantı noktasına ulaşmayı deneme. TCP erişimini test etmek için Test-NetConnection PowerShell komutunu kullanın. Söz dizimi şu şekildedir:
Test-NetConnection hostname [optional: -Port]
- Vm'de bir uygulama getirin ve tcpping kullanarak konsoldan bu konak ve bağlantı noktasına erişimi test edin.
Ağ sorun gidericisi
Ağ sorun gidericisini kullanarak App Service uygulamaların bağlantı sorunlarını giderebilirsiniz. Ağ sorun gidericisini açmak için Azure portal app service'e gidin. Tanılama'yı seçin ve sorunu çözün ve ardından Ağ sorun gidericisini arayın.
Not
Bağlantı sorunları senaryosu henüz Linux veya Kapsayıcı tabanlı uygulamaları desteklemez.
Bağlantı sorunları - Özel IP'nin App Service Planının tüm örneklerine ve DNS ayarlarına atanıp atanmadığını denetlemek de dahil olmak üzere sanal ağ tümleştirmesinin durumunu denetler. Özel dns yapılandırılmamışsa, varsayılan Azure DNS uygulanır. Ayrıca, bağlantıyı test etmek istediğiniz belirli bir uç noktaya yönelik testler de çalıştırabilirsiniz.
Yapılandırma sorunları - Bu sorun giderici, alt ağınızın sanal ağ Tümleştirmesi için geçerli olup olmadığını denetler.
Alt ağ/sanal ağ silme sorunu - Bu sorun giderici, alt ağınızda kilit olup olmadığını ve sanal ağın/alt ağın silinmesini engelleyebilecek kullanılmayan Hizmet İlişkilendirme Bağlantıları olup olmadığını denetler.
Ağ izlemelerini toplama
Ağ izlemelerinin toplanması sorunları analiz etmede yararlı olabilir. Azure Uygulaması Hizmetleri'nde ağ izlemeleri uygulama işleminden alınır. Doğru bilgileri almak için, ağ izleme koleksiyonunu başlatırken sorunu yeniden oluşturun.
Not
Sanal ağ trafiği ağ izlemelerinde yakalanmaz.
Windows Uygulama Hizmetleri
Windows Uygulama Hizmetleri'ne yönelik ağ izlemelerini toplamak için şu adımları izleyin:
- Azure portal Web Uygulamanıza gidin.
- Sol gezinti bölmesinde Sorunları Tanıla ve Çöz'e tıklayın.
- Ağ izleme koleksiyonunu başlatmak için arama kutusuna Ağ İzlemesini Topla yazın ve Ağ İzlemesini Topla'yı seçin.
Web Uygulaması sunan her örneğin izleme dosyasını almak için tarayıcınızda Web Uygulaması (https://<sitename>.scm.azurewebsites.net
) için Kudu konsoluna gidin. İzleme dosyasını C:\home\LogFiles\networktrace veya D:\home\LogFiles\networktrace klasöründen indirin.
Linux Uygulama Hizmetleri
Özel kapsayıcı kullanmayan Linux Uygulama Hizmetleri'nin ağ izlemelerini toplamak için şu adımları izleyin:
tcpdump
Aşağıdaki komutları çalıştırarak komut satırı yardımcı programını yükleyin:apt-get update apt install tcpdump
Secure Shell Protokolü (SSH) aracılığıyla kapsayıcıya bağlanın.
Aşağıdaki komutu çalıştırarak (örneğin,
eth0
) çalışır durumdaki arabirimi tanımlayın:root@<hostname>:/home# tcpdump -D 1.eth0 [Up, Running, Connected] 2.any (Pseudo-device that captures on all interfaces) [Up, Running] 3.lo [Up, Running, Loopback] 4.bluetooth-monitor (Bluetooth Linux Monitor) [Wireless] 5.nflog (Linux netfilter log (NFLOG) interface) [none] 6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none] 7.dbus-system (D-Bus system bus) [none] 8.dbus-session (D-Bus session bus) [none]
Aşağıdaki komutu çalıştırarak ağ izleme koleksiyonunu başlatın:
root@<hostname>:/home# tcpdump -i eth0 -w networktrace.pcap
değerini gerçek arabirimin adıyla değiştirin
eth0
.
İzleme dosyasını indirmek için Kudu, FTP veya Kudu API isteği gibi yöntemlerle Web Uygulamasına bağlanın. Aşağıda dosya indirmeyi tetikleme için bir istek örneği verilmişti:
https://<sitename>.scm.azurewebsites.net/api/vfs/<path to the trace file in the /home directory>/filename
Üçüncü taraf bilgileri hakkında yasal uyarı
Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.