Azure CLI kullanarak sanal makine ağ yönlendirme sorununu tanılama

Bu makalede, diğer kaynaklarla doğru iletişim kurmasını engelleyen bir VM yönlendirme sorununu gidermek ve tanılamak için Azure Ağ İzleyicisi sonraki atlama aracını kullanmayı öğreneceksiniz.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.

  • Azure Cloud Shell veya Azure CLI.

    Bu makaledeki adımlar, Azure Cloud Shell'de Azure CLI komutlarını etkileşimli olarak çalıştırır. Komutları Cloud Shell'de çalıştırmak için kod bloğunun sağ üst köşesindeki Cloud Shell'i Aç'ı seçin. Kodu kopyalamak için Kopyala'yı seçin ve çalıştırmak için Cloud Shell'e yapıştırın. Cloud Shell'i Azure portalından da çalıştırabilirsiniz.

    Komutları çalıştırmak için Azure CLI'yi yerel olarak da yükleyebilirsiniz. Bu makale, Azure CLI 2.0 veya sonraki bir sürümü gerektirir. Yüklü sürümü bulmak için az --version komutunu çalıştırın. Azure CLI'yı yerel olarak çalıştırıyorsanız az login komutunu kullanarak Azure'da oturum açın .

Bir kaynak grubu oluşturun

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

Ağ güvenlik grubu oluşturma

az network nsg create ile bir ağ güvenlik grubu oluşturun. Ağ güvenlik grubundaki varsayılan kurallar, İnternet'ten gelen tüm erişimi engeller.

az network nsg create \
  --resource-group myResourceGroup \
  --name myNSG

Uyarı

Ağ güvenlik grubunun varsayılan kuralları, SSH de dahil olmak üzere İnternet'ten gelen tüm erişimi engeller. Sanal makineye bağlanmak için Azure Bastion'ı kullanın. Daha fazla bilgi için bkz . Hızlı Başlangıç: Azure Bastion'ı varsayılan ayarlarla dağıtma.

Sanal makine oluşturun

az vm create ile bir VM oluşturun. Aşağıdaki örnek myVm adlı bir VM oluşturur. SSH anahtarları varsayılan bir anahtar konumunda zaten yoksa, komut bunları oluşturur.

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Ubuntu2204 \
  --nsg myNSG \
  --public-ip-address "" \
  --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, Bir sonraki atlamayı kullan bölümüne geçin. 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, trafik belirli bir adresi hedeflediğinde sonraki yönlendirme atlamasını belirlemek amacıyla az network watcher show-next-hop komutunu kullanın.

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 ve routeTableId değerinin de Sistem Yolu 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 komutunu kullanarak ağ arayüzü 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 az network watcher show-next-hop komutunu kullanarak 13.107.21.200 adresine giden iletişimi test ettiğinizde, çıktıdaki başka bir rota bu adresi içermediğinden trafiği bu adrese yönlendirmek için 0.0.0.0/0** adres ön ekine sahip rota kullanıldı. Varsayılan olarak, başka bir yolun adres ön ekinde belirtilmeyen tüm adresler İnternet'e yönlendirilir.

Ancak az network watcher show-next-hop komutunu 172.31.0.100 adresine giden iletişimi test etmek için kullandığınızda, sonuç size sonraki atlama türünün olmadığını bildirdi. 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 sonucunda görebileceğiniz gibi, 172.31.0.100 adresini içeren 172.16.0.0/12 ön ekine giden varsayılan bir rota olmasına rağmen, nextHopTypeNone. 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. Bir kontrol yapıldığında, Sanal ağNextHopType olarak 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. Network Watcher'ın bağlantı izleme özelliğini kullanarak, bir VM ile bir uç nokta (örneğin, IP adresi veya URL) arasındaki iletişimi zaman içinde izleyebilirsiniz. Daha fazla bilgi için bkz . Ağ bağlantısını izleme.