Övning – Dirigera trafik genom en virtuell nätverksinstallation

Slutförd

Nu när du har skapat den virtuella nätverksinstallationen (NVA) och virtuella datorer (VM) dirigerar du trafiken via NVA.

Visualisering av virtuella datorer och IP-adresser.

Skapa offentliga och privata virtuella datorer

Nästa steg är att distribuera en virtuell dator till offentliga och privata undernät.

  1. Öppna Cloud Shell-redigeringsprogrammet och skapa en fil med namnet cloud-init.txt.

    code cloud-init.txt
    
  2. Lägg till följande konfigurationsinformation i filen. Med den här konfigurationen inetutils-traceroute installeras paketet när du skapar en ny virtuell dator. Paketet innehåller verktyget traceroute som du kommer att använda senare i övningen.

    #cloud-config
    package_upgrade: true
    packages:
       - inetutils-traceroute
    
  3. Tryck på Ctrl+S för att spara filen och tryck sedan på Ctrl+Q för att stänga redigeraren.

  4. I Cloud Shell kör du följande kommando för att skapa den offentliga virtuella datorn. Ersätt <password> med ett lämpligt lösenord för azureuser-kontot.

    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. Kör följande kommando för att skapa den privata virtuella datorn. Ersätt <password> med ett lämpligt lösenord.

    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. Kör följande Linux-kommando watch för att kontrollera att de virtuella datorerna körs. Kommandot watch kör az vm list regelbundet kommandot så att du kan övervaka förloppet för de virtuella datorerna.

    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"
    

    Om du ser värdet Succeeded för ProvisioningState och värdet VM running för PowerState så har distributionen utförts. När alla tre virtuella datorer körs är du redo att gå vidare. Tryck på Ctrl-C för att stoppa kommandot och fortsätta med övningen.

  7. Kör följande kommando för att spara den offentliga IP-adressen för den offentliga virtuella datorn till en variabel med namnet PUBLICIP:

    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. Kör följande kommando för att spara den offentliga IP-adressen för den privata virtuella datorn till en variabel med namnet PRIVATEIP:

    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
    

Testa trafikdirigeringen genom den virtuella nätverksinstallationen

I de avslutande stegen använder du Linux-verktyget traceroute till att se hur trafiken dirigeras. Du använder ssh kommandot för att köra traceroute på varje virtuell dator. Det första testet visar den väg som tas av ICMP-paket som skickas från den offentliga virtuella datorn till den privata virtuella datorn. Det andra testet visar den väg som tas av ICMP-paket som skickas från den privata virtuella datorn till den offentliga virtuella datorn.

  1. Kör följande kommando för att spåra vägen från offentlig till privat. Skriv lösenordet för kontot azureuser som du angav tidigare när du uppmanas till det.

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

    Om du ser felmeddelandet bash: traceroute: command not found väntar du någon minut och försöker sedan köra kommandot igen. Den automatiserade installationen av kan ta en minut eller två efter distributionen av traceroute den virtuella datorn. Utdata bör se ut ungefär så här när kommandot har körts:

    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.
    

    Observera att det första hoppet är till 10.0.2.4. Den här adressen är den privata IP-adressen för nätverksinstallationen nva. Det andra hoppet är till 10.0.1.4, som är den privata datorns adress. I den första övningen lade du till den här vägen i routningstabellen och länkade tabellen till undernätet publicsubnet. Så nu dirigeras all trafik från offentlig till privat via NVA.

    Diagram över vägen från offentlig till privat.

  2. Kör följande kommando för att spåra vägen från den privata till den offentliga datorn. Ange lösenordet för kontot azureuser när du uppmanas till det.

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

    Du bör se att trafiken går direkt till den offentliga datorn (10.0.0.4) och inte via den virtuella nätverksinstallationen.

    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.
    

    Den privata virtuella datorn använder standardvägar och trafiken dirigeras direkt mellan undernäten.

    Diagram över vägen från privat till offentlig.

Du har nu konfigurerat routning mellan olika undernät för att dirigera trafiken från internet via undernätet dmzsubnet innan den når det privata undernätet. I undernätet dmzsubnet har du lagt till en virtuell dator som fungerar som en NVA. Du kan konfigurera den här virtuella nätverksinstallationen för att hitta potentiellt skadliga förfrågningar och blockera dem innan de når det avsedda målet.