Bir sanal makine yönlendirme sorununu tanılama

Bu makalede, bir sanal makinede (VM) ağ arabirimi için etkili olan yolları görüntüleyerek yönlendirme sorununu tanılamayı öğreneceksiniz. Azure, her sanal ağ alt ağı için birkaç varsayılan yol oluşturur. Yol tablosunda yolları tanımlayıp yol tablosunu bir alt ağ ile ilişkilendirerek Azure'ın varsayılan yollarını geçersiz kılabilirsiniz. Oluşturduğunuz yolların, Azure'ın varsayılan yollarının ve sınır ağ geçidi protokolü (BGP) aracılığıyla bir Azure VPN ağ geçidi (sanal ağınız şirket içi ağınıza bağlıysa) aracılığıyla şirket içi ağınızdan yayılan yolların birleşimi, bir alt ağdaki tüm ağ arabirimleri için etkili yollardır. Sanal ağ, ağ arabirimi veya yönlendirme kavramları hakkında bilginiz yoksa bkz . Sanal ağa genel bakış, Ağ arabirimi ve Yönlendirmeye genel bakış.

Senaryo

Bir VM'ye bağlanmayı denersiniz, ancak bağlantı başarısız olur. Vm'ye neden bağlanamazsınız belirlemek için Azure portalını, PowerShell'i veya Azure CLI'yı kullanarak bir ağ arabiriminin etkili yollarını görüntüleyebilirsiniz.

İzleyen adımlarda, geçerli yollarını görüntülemek için mevcut bir VM'niz olduğu varsayılır. Mevcut bir VM'niz yoksa, bu makaledeki görevleri tamamlamak için önce bir Linux veya Windows VM dağıtın. Bu makaledeki örnekler, myVMNic1 adlı ağ arabirimine sahip myVM adlı bir VM'ye yöneliktir. VM ve ağ arabirimi myResourceGroup adlı bir kaynak grubundadır ve Doğu ABD bölgesindedir. Sorunu tanılamak istediğiniz VM için adımlardaki değerleri uygun şekilde değiştirin.

Azure portalını kullanarak tanılama

  1. Gerekli izinlere sahip bir Azure hesabıyla Azure portalında oturum açın.

  2. Azure portalının üst kısmında, arama kutusuna çalışır durumda olan bir VM'nin adını girin. Arama sonuçlarında VM'nin adı göründüğünde seçin.

  3. Soldaki Ayarlar'ın altında Ağ'ı seçin ve adını seçerek ağ arabirimi kaynağına gidin. Ağ arabirimlerini görüntüleme

  4. Sol tarafta Geçerli yollar'ı seçin. Aşağıdaki resimde myVMNic1 adlı bir ağ arabirimi için geçerli yollar gösterilmiştir:Geçerli yolları görüntüleme

    VM'ye bağlı birden çok ağ arabirimi varsa, herhangi bir ağ arabirimi için geçerli yolları seçerek görüntüleyebilirsiniz. Her ağ arabirimi farklı bir alt ağda olabileceğinden, her ağ arabiriminin farklı etkili yolları olabilir.

    Önceki resimde gösterilen örnekte, listelenen yollar Azure'ın her alt ağ için oluşturduğu varsayılan yollardır. Listenizde en azından bu yollar bulunur, ancak başka bir sanal ağ ile eşlenme veya azure VPN ağ geçidi üzerinden şirket içi ağınıza bağlanma gibi sanal ağınız için etkinleştirmiş olabileceğiniz özelliklere bağlı olarak ek yollar olabilir. Yolların her biri ve ağ arabiriminiz için görebileceğiniz diğer yollar hakkında daha fazla bilgi edinmek için bkz . Sanal ağ trafiği yönlendirme. Listenizde çok sayıda yol varsa, yolların listesini içeren bir .csv dosyası indirmek için İndir'i seçmeniz daha kolay olabilir.

Önceki adımlarda etkin yollar VM üzerinden görüntülense de, aşağıdakiler aracılığıyla etkili yolları da görüntüleyebilirsiniz:

PowerShell kullanarak tanılama

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Azure Cloud Shell'de veya bilgisayarınızdan PowerShell'i çalıştırarak aşağıdaki komutları çalıştırabilirsiniz. Azure Cloud Shell ücretsiz bir etkileşimli kabuk. Yaygın Azure araçları, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır. PowerShell'i bilgisayarınızdan çalıştırıyorsanız Azure PowerShell modülü, sürüm 1.0.0 veya üzeri gerekir. Yüklü sürümü bulmak için bilgisayarınızda komutunu çalıştırın Get-Module -ListAvailable Az . Yükseltmeniz gerekirse, bkz. Azure PowerShell modülünü yükleme. PowerShell'i yerel olarak çalıştırıyorsanız, Azure'da gerekli izinlere sahip bir hesapla oturum açmak için de komutunu çalıştırmanız Connect-AzAccount gerekir.

Get-AzEffectiveRouteTable ile bir ağ arabirimi için etkili yolları alın. Aşağıdaki örnek, myResourceGroup adlı bir kaynak grubunda yer alan myVMNic1 adlı ağ arabirimi için geçerli yolları alır:

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVMNic1 `
  -ResourceGroupName myResourceGroup `
  | Format-Table

Çıktıda döndürülen bilgileri anlamak için bkz . Yönlendirmeye genel bakış. Çıktı yalnızca VM çalışır durumdaysa döndürülür. VM'ye bağlı birden çok ağ arabirimi varsa, her ağ arabirimi için geçerli yolları gözden geçirebilirsiniz. Her ağ arabirimi farklı bir alt ağda olabileceğinden, her ağ arabiriminin farklı etkili yolları olabilir. İletişim sorunu yaşamaya devam ediyorsanız ek tanılama ve dikkat edilmesi gerekenler bölümüne bakın.

Ağ arabiriminin adını bilmiyorsanız ancak ağ arabiriminin bağlı olduğu VM'nin adını biliyorsanız, aşağıdaki komutlar bir VM'ye eklenmiş tüm ağ arabirimlerinin kimliklerini döndürür:

$VM = Get-AzVM -Name myVM `
  -ResourceGroupName myResourceGroup
$VM.NetworkProfile

Aşağıdaki örneğe benzer bir çıktı alırsınız:

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic1

Önceki çıkışta ağ arabirimi adı myVMNic1'dir.

Azure CLI kullanarak tanılama

Azure Cloud Shell'de veya CLI'yı bilgisayarınızdan çalıştırarak izleyen komutları çalıştırabilirsiniz. Bu makale, Azure CLI 2.0.32 veya sonraki bir sürümünü gerektirir. Yüklü sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme. Azure CLI'yi yerel olarak çalıştırıyorsanız, gerekli izinlere sahip bir hesapla Azure'da da çalıştırmanız az login ve oturum açmanız gerekir.

az network nic show-effective-route-table ile bir ağ arabirimi için etkili yolları alın. Aşağıdaki örnek, myResourceGroup adlı bir kaynak grubunda yer alan myVMNic1 adlı ağ arabirimi için geçerli yolları alır:

az network nic show-effective-route-table \
  --name myVMNic1 \
  --resource-group myResourceGroup

Çıktıda döndürülen bilgileri anlamak için bkz . Yönlendirmeye genel bakış. Çıktı yalnızca VM çalışır durumdaysa döndürülür. VM'ye bağlı birden çok ağ arabirimi varsa, her ağ arabirimi için geçerli yolları gözden geçirebilirsiniz. Her ağ arabirimi farklı bir alt ağda olabileceğinden, her ağ arabiriminin farklı etkili yolları olabilir. İletişim sorunu yaşamaya devam ediyorsanız ek tanılama ve dikkat edilmesi gerekenler bölümüne bakın.

Ağ arabiriminin adını bilmiyorsanız ancak ağ arabiriminin bağlı olduğu VM'nin adını biliyorsanız, aşağıdaki komutlar bir VM'ye eklenmiş tüm ağ arabirimlerinin kimliklerini döndürür:

az vm show \
  --name myVM \
  --resource-group myResourceGroup

Sorunu çözme

Yönlendirme sorunlarını çözmek genellikle şunlardan oluşur:

İletişim sorunları yaşamaya devam ediyorsanız bkz . Önemli noktalar ve Ek tanılama.

Dikkat edilmesi gereken noktalar

İletişim sorunlarını giderirken aşağıdaki noktaları göz önünde bulundurun:

  • Yönlendirme, tanımladığınız yollar, sınır ağ geçidi protokolü (BGP) ve sistem yolları arasında en uzun ön ek eşleşmesini (LPM) temel alır. Aynı LPM eşleşmesine sahip birden fazla yol varsa, yönlendirmeye genel bakış bölümünde listelenen sırayla çıkış noktası temelinde bir yol seçilir. Geçerli rotalarla, yalnızca tüm kullanılabilir yolları temel alarak LPM eşleşmesi olan geçerli yolları görebilirsiniz. Yolların bir ağ arabirimi için nasıl değerlendirildiğini görmek, VM'nizden iletişimi etkileyebilecek belirli yolların sorunlarını gidermeyi çok daha kolay hale getirir.
  • Bir ağ sanal gerecine (NVA) özel yollar tanımladıysanız, sonraki atlama türü olarak Sanal Gereç ile trafiği alan NVA'da IP iletmenin etkinleştirildiğinden veya paketlerin bırakıldığından emin olun. Ağ arabirimi için IP iletmeyi etkinleştirme hakkında daha fazla bilgi edinin. Ayrıca, NVA içindeki işletim sisteminin veya uygulamanın da ağ trafiğini iletebilmesi ve bunu yapacak şekilde yapılandırılması gerekir.
  • 0.0.0.0/0'a giden bir yol oluşturduysanız, tüm giden İnternet trafiği NVA veya VPN ağ geçidi gibi belirttiğiniz sonraki atlamaya yönlendirilir. Böyle bir yol oluşturmak genellikle zorlamalı tünel olarak adlandırılır. İnternet'ten VM'nize RDP veya SSH protokollerini kullanan uzak bağlantılar, sonraki atlamanın trafiği nasıl işlediğine bağlı olarak bu yolla çalışmayabilir. Zorlamalı tünel etkinleştirilebilir:
    • Siteden siteye VPN kullanırken, sonraki atlama türü VPN Gateway olan bir yol oluşturarak. Zorlamalı tünel yapılandırma hakkında daha fazla bilgi edinin.
    • 0.0.0.0/0 (varsayılan yol), siteden siteye VPN veya ExpressRoute bağlantı hattı kullanılırken sanal ağ geçidi üzerinden BGP üzerinden tanıtılıyorsa. Siteden siteye VPN veya ExpressRoute ile BGP kullanma hakkında daha fazla bilgi edinin.
  • Sanal ağ eşleme trafiğinin doğru çalışması için, eşlenen sanal ağın ön ek aralığı için sonraki atlama türü VNet Eşlemesi olan bir sistem yolu bulunmalıdır. Böyle bir yol yoksa ve sanal ağ eşleme bağlantısı Bağlı ise:
  • Azure her Azure ağ arabirimine varsayılan yollar atasa da, VM'ye bağlı birden çok ağ arabiriminiz varsa, VM'nin işletim sisteminde yalnızca birincil ağ arabirimine varsayılan yol (0.0.0.0/0) veya ağ geçidi atanır. Windows veya Linux VM'sine bağlı ikincil ağ arabirimleri için varsayılan yol oluşturmayı öğrenin. Birincil ve ikincil ağ arabirimleri hakkında daha fazla bilgi edinin.

Ek tanılama

Sonraki adımlar