Sanal makine ağ yönlendirme sorununu tanılama - Azure CLI

Bu makalede, bir sanal makine (VM) dağıtacak ve ardından bir IP adresi ve URL ile iletişimleri denetleyebilirsiniz. Bir iletişim hatasının nedenini ve bu hatayı nasıl çözümleyebileceğinizi belirlersiniz.

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • Bu makale, Azure CLI'nın 2.0 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

  • Bu makaledeki Azure CLI komutları Bash kabuğunda çalışacak şekilde biçimlendirilmiştir.

VM oluşturma

Sanal makine oluşturabilmeniz için sanal makineyi içerecek bir kaynak grubu oluşturmanız gerekir. az group create ile bir kaynak grubu oluşturun. Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur:

az group create --name myResourceGroup --location eastus

az vm create ile bir VM oluşturun. SSH anahtarları, varsayılan anahtar konumunda zaten mevcut değilse komut bunları oluşturur. Belirli bir anahtar kümesini kullanmak için --ssh-key-value seçeneğini kullanın. Aşağıdaki örnek, myVm adlı bir sanal makine oluşturur:

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Ubuntu2204 \
  --generate-ssh-keys

Sanal makinenin oluşturulması birkaç dakika sürer. VM oluşturulana ve Azure CLI çıktı döndürene kadar kalan adımlara devam etmeyin.

Ağ iletişimini test etme

Ağ İzleyicisi ile ağ iletişimini test etmek için, önce test etmek istediğiniz VM'nin olduğu bölgede bir ağ izleyicisini etkinleştirmeniz ve ardından iletişimi test etmek için Ağ İzleyicisi sonraki atlama özelliğini kullanmanız gerekir.

Ağ izleyicisini etkinleştirme

Doğu ABD bölgesinde zaten etkinleştirilmiş bir ağ izleyiciniz varsa Sonraki atlama kullan bölümüne atlayın. Doğu ABD bölgesinde bir ağ izleyicisi oluşturmak için az network watcher configure komutunu kullanın:

az network watcher configure \
  --resource-group NetworkWatcherRG \
  --locations eastus \
  --enabled

Sonraki atlamayı kullanma

Azure, varsayılan hedeflerin yollarını otomatik olarak oluşturur. Varsayılan yolları geçersiz kılmak için özel yollar oluşturabilirsiniz. Bazı durumlarda, özel yollar iletişimin başarısız olmasına neden olabilir. Bir VM'den yönlendirmeyi test etmek için az network watcher show-next-hop komutunu kullanarak trafik belirli bir adresi hedeflediğinde sonraki yönlendirme atlamasını belirleyin.

www.bing.com için VM'den IP adreslerinden birine giden iletişimi test edin:

az network watcher show-next-hop \
  --dest-ip 13.107.21.200 \
  --resource-group myResourceGroup \
  --source-ip 10.0.0.4 \
  --vm myVm \
  --nic myVmVMNic \
  --out table

Birkaç saniye sonra çıkış, nextHopType değerinin İnternet olduğunu ve routeTableId değerinin System Route olduğunu size bildirir. Bu sonuç, hedefe giden geçerli bir yol olduğunu bilmenizi sağlar.

Sanal makineden 172.31.0.100 adresine giden iletişimi test etme:

az network watcher show-next-hop \
  --dest-ip 172.31.0.100 \
  --resource-group myResourceGroup \
  --source-ip 10.0.0.4 \
  --vm myVm \
  --nic myVmVMNic \
  --out table

Döndürülen çıkış, None değerinin nextHopType olduğunu ve routeTableId değerinin de System Route olduğunu bildirir. Bu sonuç, hedefin geçerli bir sistem yolu olmasına rağmen trafiği hedefe yönlendiren bir sonraki atlama olmadığını size bildirir.

Bir yolun ayrıntılarını görüntüleme

Yönlendirmeyi daha fazla analiz etmek için az network nic show-effective-route-table komutuyla ağ arabirimi için geçerli yolları gözden geçirin:

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

Döndürülen çıkışa aşağıdaki metin eklenir:

{
  "additionalProperties": {
    "disableBgpRoutePropagation": false
  },
  "addressPrefix": [
    "0.0.0.0/0"
  ],
  "name": null,
  "nextHopIpAddress": [],
  "nextHopType": "Internet",
  "source": "Default",
  "state": "Active"
},

Sonraki atlamayı kullan bölümünde 13.107.21.200 ile giden iletişimi test etmek için komutunu kullandığınızdaaz network watcher show-next-hop, çıkıştaki başka bir yol adresi içermediğinden trafiği adrese yönlendirmek için Adrese düzeltme 0.0.0.0/0** adresine sahip yol kullanılmıştır. Varsayılan olarak, başka bir yolun adres ön ekinde belirtilmeyen tüm adresler İnternet'e yönlendirilir.

Ancak 172.31.0.100 ile giden iletişimi test etmek için komutunu kullandığınızda az network watcher show-next-hop , sonuç size sonraki atlama türü olmadığını bildirmiş oldu. Döndürülen çıktıda aşağıdaki metni de görürsünüz:

{
  "additionalProperties": {
    "disableBgpRoutePropagation": false
      },
  "addressPrefix": [
    "172.16.0.0/12"
  ],
  "name": null,
  "nextHopIpAddress": [],
  "nextHopType": "None",
  "source": "Default",
  "state": "Active"
},

Komutun az network watcher nic show-effective-route-table çıkışında görebileceğiniz gibi, 172.31.0.100 adresini içeren 172.16.0.0/12 ön ekine giden varsayılan bir yol olsa da nextHopType Yok olur. Azure, 172.16.0.0/12 için varsayılan bir yol oluşturur ancak bir neden olmadıkça sonraki atlama türünü belirtmez. Örneğin, sanal ağın adres alanına 172.16.0.0/12 adres aralığını eklediyseniz, Azure nextHopType değerini yol için Sanal ağ olarak değiştirir. Ardından bir denetimde NextHopType olarak Sanal ağ gösterilir.

Kaynakları temizleme

Artık gerekli değilse, az group delete komutunu kullanarak kaynak grubunu ve içerdiği tüm kaynakları kaldırabilirsiniz:

az group delete --name myResourceGroup --yes

Sonraki adımlar

Bu makalede, bir VM oluşturdunuz ve VM'den ağ yönlendirmesini tanılamıştınız. Azure’un birkaç varsayılan yol oluşturduğunu öğrendiniz ve iki farklı hedefin yolunu test ettiniz. Azure'da yönlendirme ve özel yollar oluşturma hakkında daha fazla bilgi edinin.

Giden VM bağlantıları için, Ağ İzleyicisi bağlantı sorun giderme özelliğini kullanarak VM ile uç nokta arasındaki gecikme süresini ve izin verilen ve reddedilen ağ trafiğini de belirleyebilirsiniz. AĞ İZLEYICISI bağlantı izleme özelliğini kullanarak zaman içinde BIR VM ile BIR UÇ nokta arasındaki iletişimi izleyebilirsiniz. Daha fazla bilgi için bkz . Ağ bağlantısını izleme.