Oefening: verkeer routeren via de NVA
Nu u het virtuele netwerkapparaat (NVA) en virtuele machines (VM's) hebt gemaakt, routeert u het verkeer via de NVA.
Virtuele machines maken, openbaar en privé
Met de volgende stappen implementeert u een virtuele machine in de openbare en privésubnetten.
Open de Cloud Shell-editor en maak een bestand met de naam cloud-init.txt.
code cloud-init.txt
Voeg de volgende configuratiegegevens toe aan het bestand. Met deze configuratie wordt het
inetutils-traceroute
pakket geïnstalleerd wanneer u een nieuwe VIRTUELE machine maakt. Dit pakket bevat het hulpprogrammatraceroute
dat u later in deze oefening gaat gebruiken.#cloud-config package_upgrade: true packages: - inetutils-traceroute
Druk op Ctrl+S om het bestand op te slaan en druk vervolgens op Ctrl+Q om de editor te sluiten.
Voer in Cloud Shell de volgende opdracht uit om de openbare VM te maken. Vervang
<password>
door een geschikt wachtwoord voor het account azureuser.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>
Voer de volgende opdracht uit om de privé-VM te maken. Vervang
<password>
door een geschikt wachtwoord.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>
Voer de volgende Linux-opdracht
watch
uit om te controleren of de VM's worden uitgevoerd. Metwatch
de opdracht wordt deaz vm list
opdracht periodiek uitgevoerd, zodat u de voortgang van de VM's kunt bewaken.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"
Als ProvisioningState de waarde 'Geslaagd' heeft en PowerState de waarde 'VM is actief', geeft dat aan dat de implementatie is geslaagd. Wanneer alle drie virtuele machines worden uitgevoerd, bent u klaar om door te gaan. Druk op Ctrl-C om de opdracht te stoppen en door te gaan met de oefening.
Voer de volgende opdracht uit om het openbare IP-adres van de openbare VM op te slaan in een variabele met de naam
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
Voer de volgende opdracht uit om het openbare IP-adres van de privé-VM op te slaan in een variabele met de naam
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
Verkeersroutering testen via het virtuele netwerk apparaat
De laatste stappen bestaan uit het gebruiken van het Linux traceroute
-hulpprogramma om weer te geven hoe het verkeer wordt gerouteerd. U gebruikt de ssh
opdracht om op elke VIRTUELE machine uit te voeren traceroute
. De eerste test toont de route die is genomen door ICMP-pakketten die van de openbare VM naar de privé-VM zijn verzonden. De tweede test toont de route die door ICMP-pakketten is verzonden van de privé-VM naar de openbare VM.
Voer de volgende opdracht uit om de route van openbaar naar persoonlijk te traceren. Wanneer u hierom wordt gevraagd, voert u het wachtwoord in voor het azureuser-account dat u eerder hebt opgegeven.
ssh -t -o StrictHostKeyChecking=no azureuser@$PUBLICIP 'traceroute private --type=icmp; exit'
Als u het foutbericht
bash: traceroute: command not found
ontvangt, wacht u een minuut en voert u de opdracht opnieuw uit. De geautomatiseerde installatie kantraceroute
enkele minuten of twee duren na de implementatie van de VIRTUELE machine. Wanneer de opdracht is uitgevoerd, moet de uitvoer lijken op het volgende voorbeeld: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.
U ziet dat de eerste hop naar 10.0.2.4 is. Dit adres is het privé IP-adres van nva. De tweede hop is naar 10.0.1.4, het adres van privé. In de eerste oefening hebt u deze route aan de routetabel toegevoegd en de tabel aan het subnet publicsubnet gekoppeld. Dus nu wordt al het verkeer van openbaar naar privé gerouteerd via de NVA.
Voer de volgende opdracht uit om de route van privé naar openbaar te traceren. Voer het wachtwoord in voor het azureuser-account wanneer u hierom wordt gevraagd.
ssh -t -o StrictHostKeyChecking=no azureuser@$PRIVATEIP 'traceroute public --type=icmp; exit'
U ziet dat het verkeer rechtstreeks naar openbaar (10.0.0.4) gaat en niet via de NVA, zoals uit de volgende opdrachtuitvoer blijkt.
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.
De privé-VM maakt gebruik van standaardroutes en verkeer wordt rechtstreeks tussen de subnetten gerouteerd.
U hebt nu de routering tussen subnetten geconfigureerd om verkeer van het openbare internet via het subnet dmzsubnet te sturen voordat dit het privé subnet bereikt. In het dmzsubnet-subnet hebt u een VIRTUELE machine toegevoegd die fungeert als een NVA. U kunt deze NVA zo configureren dat mogelijk schadelijke aanvragen worden gedetecteerd en geblokkeerd voordat ze de beoogde doelen bereiken.