Oefening: verkeer routeren via de NVA

Voltooid

Nu u het virtuele netwerkapparaat (NVA) en virtuele machines (VM's) hebt gemaakt, routeert u het verkeer via de NVA.

Visualisatie van virtuele machines en IP-adressen.

Virtuele machines maken, openbaar en privé

Met de volgende stappen implementeert u een virtuele machine in de openbare en privésubnetten.

  1. Open de Cloud Shell-editor en maak een bestand met de naam cloud-init.txt.

    code cloud-init.txt
    
  2. 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 hulpprogramma traceroute dat u later in deze oefening gaat gebruiken.

    #cloud-config
    package_upgrade: true
    packages:
       - inetutils-traceroute
    
  3. Druk op Ctrl+S om het bestand op te slaan en druk vervolgens op Ctrl+Q om de editor te sluiten.

  4. 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>
    
  5. 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>
    
  6. Voer de volgende Linux-opdracht watch uit om te controleren of de VM's worden uitgevoerd. Met watch de opdracht wordt de az 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.

  7. 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
    
  8. 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.

  1. 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 kan traceroute 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.

    Diagram van route van openbaar naar privé.

  2. 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.

    Diagram van route van privé naar openbaar.

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.