Övning – Dirigera trafik genom en virtuell nätverksinstallation
Nu när du har skapat den virtuella nätverksinstallationen (NVA) och virtuella datorer (VM) dirigerar du trafiken via NVA.
Skapa offentliga och privata virtuella datorer
Nästa steg är att distribuera en virtuell dator till offentliga och privata undernät.
Öppna Cloud Shell-redigeringsprogrammet och skapa en fil med namnet cloud-init.txt.
code cloud-init.txt
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 verktygettraceroute
som du kommer att använda senare i övningen.#cloud-config package_upgrade: true packages: - inetutils-traceroute
Tryck på Ctrl+S för att spara filen och tryck sedan på Ctrl+Q för att stänga redigeraren.
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>
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>
Kör följande Linux-kommando
watch
för att kontrollera att de virtuella datorerna körs. Kommandotwatch
köraz 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.
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
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.
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 avtraceroute
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.
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.
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.