Alıştırma - Trafiği NVA üzerinden yönlendirme

Tamamlandı

Ağ sanal gerecini (NVA) ve sanal makineleri (VM) oluşturduğunuza göre trafiği NVA üzerinden yönlendireceksiniz.

Sanal makinelerin ve IP adreslerinin görselleştirmesi.

Public ve private sanal makinelerini oluşturma

Sonraki adımlarda vm genel ve özel alt ağlara dağıtılır.

  1. Cloud Shell düzenleyicisini açın ve cloud-init.txt adlı bir dosya oluşturun.

    code cloud-init.txt
    
  2. Dosyaya aşağıdaki yapılandırma bilgilerini ekleyin. Bu yapılandırmayla inetutils-traceroute , yeni bir VM oluşturduğunuzda paket yüklenir. Bu paket bu alıştırmanın devamında kullanacağınız traceroute yardımcı programını içerir.

    #cloud-config
    package_upgrade: true
    packages:
       - inetutils-traceroute
    
  3. Dosyayı kaydetmek için Ctrl+S tuşlarına basın ve ardından düzenleyiciyi kapatmak için Ctrl+Q tuşlarına basın.

  4. Cloud Shell'de aşağıdaki komutu çalıştırarak genel VM'yi oluşturun. <password> öğesini azureuser yönetici hesabı için uygun bir parolayla değiştirin.

    az vm create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name public \
        --vnet-name vnet \
        --subnet publicsubnet \
        --image Ubuntu2204 \
        --admin-username azureuser \
        --no-wait \
        --custom-data cloud-init.txt \
        --admin-password <password>
    
  5. Özel VM'yi oluşturmak için aşağıdaki komutu çalıştırın. <password> öğesini uygun bir parolayla değiştirin.

    az vm create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name private \
        --vnet-name vnet \
        --subnet privatesubnet \
        --image Ubuntu2204 \
        --admin-username azureuser \
        --no-wait \
        --custom-data cloud-init.txt \
        --admin-password <password>
    
  6. VM'lerin çalışıp çalışmadığını denetlemek için aşağıdaki Linux watch komutunu çalıştırın. komutu, vm'lerin watch ilerleme durumunu az vm list izleyebilebilmeniz için komutu düzenli aralıklarla çalıştırır.

    watch -d -n 5 "az vm list \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --show-details \
        --query '[*].{Name:name, ProvisioningState:provisioningState, PowerState:powerState}' \
        --output table"
    

    ProvisioningState özelliğinin "Başarılı" ve PowerState özelliğinin "VM çalışıyor" değerine sahip olması dağıtımın başarılı olduğunu gösterir. Sanal makinelerinizin üçü de çalıştığında devam etmeye hazırsınız demektir. Komutu durdurmak ve alıştırmaya devam etmek için Ctrl-C tuşlarına basın.

  7. Genel VM'nin genel IP adresini adlı PUBLICIPbir değişkene kaydetmek için aşağıdaki komutu çalıştırın:

    PUBLICIP="$(az vm list-ip-addresses \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name public \
        --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
        --output tsv)"
    
    echo $PUBLICIP
    
  8. Özel VM'nin genel IP adresini adlı PRIVATEIPbir değişkene kaydetmek için aşağıdaki komutu çalıştırın:

    PRIVATEIP="$(az vm list-ip-addresses \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name private \
        --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
        --output tsv)"
    
    echo $PRIVATEIP
    

Ağ sanal gereci üzerinden trafik yönlendirmesini test etme

Son adımlarda Linux traceroute yardımcı programı kullanılarak trafiğin nasıl yönlendirildiği gösterilir. Her VM'de çalıştırmak traceroute için komutunu kullanacaksınızssh. İlk test, genel VM'den özel VM'ye gönderilen ICMP paketleri tarafından alınan yolu gösterir. İkinci test, özel VM'den genel VM'ye gönderilen ICMP paketleri tarafından alınan yolu gösterir.

  1. Aşağıdaki komutu çalıştırarak public sanal makinesinden private sanal makinesine giden yolu izleyin. İstendiğinde, azureuser hesabı için daha önce belirttiğiniz parolayı girin.

    ssh -t -o StrictHostKeyChecking=no azureuser@$PUBLICIP 'traceroute private --type=icmp; exit'
    

    bash: traceroute: command not found hata iletisini alırsanız bir dakika bekleyin ve komutu yeniden deneyin. otomatik yüklemesi VM dağıtımından traceroute sonra bir veya iki dakika sürebilir. Komut başarılı olduktan sonra çıkış aşağıdaki örneğe benzer görünmelidir:

    traceroute to private.kzffavtrkpeulburui2lgywxwg.gx.internal.cloudapp.net (10.0.1.4), 64 hops max
    1   10.0.2.4  0.710ms  0.410ms  0.536ms
    2   10.0.1.4  0.966ms  0.981ms  1.268ms
    Connection to 52.165.151.216 closed.
    

    İlk atlamanın 10.0.2.4'e yapıldığına dikkat edin. Bu adres nva'nın özel IP adresidir. İkinci atlama private sanal makinesinin adresine (10.0.1.4) yapılır. İlk alıştırmada bu yolu yönlendirme tablosuna eklemiş ve tabloyupublicsubnet alt ağına bağlamıştınız. Bu nedenle artık genelden özele tüm trafik NVA üzerinden yönlendiriliyor.

    Genelden özele rota diyagramı.

  2. Aşağıdaki komutu çalıştırarak private sanal makinesinden public sanal makinesine giden yolu izleyin. İstendiğinde azureuser hesabının parolasını girin.

    ssh -t -o StrictHostKeyChecking=no azureuser@$PRIVATEIP 'traceroute public --type=icmp; exit'
    

    Aşağıdaki komut çıkışında gösterildiği gibi trafiğin NVA üzerinden değil doğrudan public sanal makinesine (10.0.0.4) gittiğini görüyor olmalısınız.

    traceroute to public.kzffavtrkpeulburui2lgywxwg.gx.internal.cloudapp.net (10.0.0.4), 64 hops max
    1   10.0.0.4  1.095ms  1.610ms  0.812ms
    Connection to 52.173.21.188 closed.
    

    Özel VM varsayılan yolları kullanıyor ve trafik doğrudan alt ağlar arasında yönlendiriliyor.

    Özelden genele giden yol diyagramı.

Artık genel İnternet'ten gelen trafiğin özel alt ağa ulaşmadan önce dmzsubnet alt ağından geçmesini sağlayacak şekilde alt ağlar arasındaki yönlendirmeyi yapılandırdınız. dmzsubnet alt ağına NVA işlevi gören bir VM eklediniz. Bu NVA'yı kötü amaçlı olabilecek istekleri algılamaya ve hedeflerine ulaşmadan önce engelleyecek şekilde yapılandırabilirsiniz.