Øvelse – rutetrafik gennem NVA
Nu, hvor du har oprettet NVA (Network Virtual Appliance) og virtuelle maskiner (VM'er), skal du dirigere trafikken gennem NVA.
Opret offentlige og private virtuelle maskiner
De næste trin udruller en VM i de offentlige og private undernet.
Åbn Cloud Shell-editoren, og opret en fil med navnet cloud-init.txt.
code cloud-init.txt
Føj følgende konfigurationsoplysninger til filen. Med denne konfiguration installeres
inetutils-traceroute
-pakken, når du opretter en ny VM. Denne pakke indeholder dettraceroute
værktøj, du skal bruge senere i denne øvelse.#cloud-config package_upgrade: true packages: - inetutils-traceroute
Tryk på Ctrl+S for at gemme filen, og tryk derefter på Ctrl+Q for at lukke editoren.
Kør følgende kommando i Cloud Shell for at oprette den offentlige VM. Erstat
<password>
med en passende adgangskode til den azureuser--konto.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ølgende kommando for at oprette den private VM. Erstat
<password>
med en passende adgangskode.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ølgende Linux-
watch
kommando for at kontrollere, at VM'erne kører. Kommandoenwatch
kører jævnligt kommandoenaz vm list
, så du kan overvåge status for VM'erne.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"
En ProvisioningState- værdi af "Lykkedes" og en PowerState- værdi for "VM kører" angiver en vellykket installation. Når alle tre VM'er kører, er du klar til at gå videre. Tryk på Ctrl+C for at stoppe kommandoen og fortsætte med øvelsen.
Kør følgende kommando for at gemme den offentlige IP-adresse for den offentlige VM i en variabel med navnet
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ølgende kommando for at gemme den offentlige IP-adresse for den private VM i en variabel med navnet
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
Test trafikdistribution gennem det virtuelle netværksapparat
De sidste trin bruger Linux-traceroute
-værktøjet til at vise, hvordan trafikken dirigeres. Du skal bruge kommandoen ssh
til at køre traceroute
på hver VM. Den første test viser den rute, der er taget af ICMP-pakker, der sendes fra den offentlige VM til den private VM. Den anden test viser den rute, der er taget af ICMP-pakker, der sendes fra den private VM til den offentlige VM.
Kør følgende kommando for at spore ruten fra offentlige til private. Når du bliver bedt om det, skal du angive adgangskoden for den azureuser konto, du har angivet tidligere.
ssh -t -o StrictHostKeyChecking=no azureuser@$PUBLICIP 'traceroute private --type=icmp; exit'
Hvis du får vist fejlmeddelelsen
bash: traceroute: command not found
, skal du vente et øjeblik og prøve kommandoen igen. Den automatiserede installation aftraceroute
kan tage et minut eller to efter udrulningen af vm'en. Når kommandoen er fuldført, skal outputtet ligne følgende eksempel: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.
Bemærk, at det første hop er til 10.0.2.4. Denne adresse er den private IP-adresse for nva. Det andet hop er til 10.0.1.4, adressen på private. I den første øvelse føjede du denne rute til rutetabellen og sammenkædede tabellen med publicsubnet undernet. Så nu dirigeres al trafik fra offentlige til private via NVA.
Kør følgende kommando for at spore ruten fra private til offentlige. Når du bliver bedt om det, skal du angive adgangskoden for den azureuser-konto.
ssh -t -o StrictHostKeyChecking=no azureuser@$PRIVATEIP 'traceroute public --type=icmp; exit'
Du bør kunne se, at trafikken går direkte til offentlige (10.0.0.4) og ikke via NVA, som vist i følgende kommandooutput.
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 private VM bruger standardruter, og trafikken dirigeres direkte mellem undernet.
Du har nu konfigureret routing mellem undernet for at dirigere trafik fra det offentlige internet via dmzsubnet undernet, før det når det private undernet. I dmzsubnet undernet har du tilføjet en VM, der fungerer som en NVA. Du kan konfigurere denne NVA til at registrere potentielt skadelige anmodninger og blokere dem, før de når deres tilsigtede mål.