Share via


Pakketopnamen voor virtuele machines beheren met Azure Network Watcher met behulp van de Azure CLI

Met het network Watcher-hulpprogramma voor pakketopname kunt u capturesessies maken om netwerkverkeer van en naar een virtuele Azure-machine (VM) vast te leggen. Er worden filters opgegeven voor de opnamesessie om ervoor te zorgen dat u alleen het gewenste verkeer vastlegt. Pakketopname helpt bij het diagnosticeren van netwerkafwijkingen zowel reactief als proactief. De toepassingen gaan verder dan anomaliedetectie, waaronder het verzamelen van netwerkstatistieken, het verkrijgen van inzichten in netwerkinbraak, foutopsporing van client-servercommunicatie en het aanpakken van verschillende andere netwerkuitdagingen. Met Network Watcher-pakketopname kunt u pakketopnamen op afstand initiëren, waardoor handmatige uitvoering op een specifieke virtuele machine mogelijk is.

In dit artikel leert u hoe u een pakketopname van een virtuele machine op afstand configureert, start, stopt, downloadt en verwijdert met behulp van Azure PowerShell. Zie Pakketopnamen beheren voor virtuele machines met behulp van Azure Portal of Azure CLI voor meer informatie over het beheren van pakketopnamen met behulp van Azure Portal of Pakketopnamen beheren voor virtuele machines met behulp van PowerShell.

Vereisten

  • Een Azure-account met een actief abonnement. Gratis een account maken

  • Azure Cloud Shell of Azure CLI.

    In de stappen in dit artikel worden de Azure CLI-opdrachten interactief uitgevoerd in Azure Cloud Shell. Als u de opdrachten in Cloud Shell wilt uitvoeren, selecteert u Cloud Shell openen in de rechterbovenhoek van een codeblok. Selecteer Kopiëren om de code te kopiëren en plak deze in Cloud Shell om deze uit te voeren. U kunt Cloud Shell ook uitvoeren vanuit Azure Portal.

    U kunt Azure CLI ook lokaal installeren om de opdrachten uit te voeren. Als u Azure CLI lokaal uitvoert, meldt u zich aan bij Azure met behulp van de opdracht az login .

  • Een virtuele machine met de volgende uitgaande TCP-connectiviteit:

    • naar het opslagaccount via poort 443
    • tot 169.254.169.254 via poort 80
    • tot 168.63.129.16 via poort 8037

Notitie

  • Azure maakt een Network Watcher-exemplaar in de regio van de virtuele machine als Network Watcher niet is ingeschakeld voor die regio. Zie Azure Network Watcher in- of uitschakelen voor meer informatie.
  • Network Watcher-pakketopname vereist dat de VM-extensie van de Network Watcher-agent is geïnstalleerd op de virtuele doelmachine. Zie Network Watcher-agent installeren voor meer informatie.
  • De laatste twee IP-adressen en poorten die worden vermeld in de vereisten , zijn gebruikelijk in alle Network Watcher-hulpprogramma's die gebruikmaken van de Network Watcher-agent en kunnen af en toe worden gewijzigd.

Als een netwerkbeveiligingsgroep is gekoppeld aan de netwerkinterface of het subnet waarin de netwerkinterface zich bevindt, moet u ervoor zorgen dat regels bestaan om uitgaande connectiviteit via de vorige poorten toe te staan. Zorg er ook voor dat uitgaande connectiviteit via de vorige poorten wordt uitgevoerd bij het toevoegen van door de gebruiker gedefinieerde routes aan uw netwerk.

Network Watcher-agent installeren

Stap 1

Voer de az vm extension set opdracht uit om de pakketopnameagent op de virtuele gastmachine te installeren.

Voor virtuele Windows-machines:

az vm extension set --resource-group resourceGroupName --vm-name virtualMachineName --publisher Microsoft.Azure.NetworkWatcher --name NetworkWatcherAgentWindows --version 1.4

Voor virtuele Linux-machines:

az vm extension set --resource-group resourceGroupName --vm-name virtualMachineName --publisher Microsoft.Azure.NetworkWatcher --name NetworkWatcherAgentLinux --version 1.4

Stap 2

Als u ervoor wilt zorgen dat de agent is geïnstalleerd, voert u de vm extension show opdracht uit en geeft u deze door aan de resourcegroep en de naam van de virtuele machine. Controleer de resulterende lijst om te controleren of de agent is geïnstalleerd.

Voor virtuele Windows-machines:

az vm extension show --resource-group resourceGroupName --vm-name virtualMachineName --name NetworkWatcherAgentWindows

Voor virtuele Linux-machines:

az vm extension show --resource-group resourceGroupName --vm-name virtualMachineName --name AzureNetworkWatcherExtension

Het volgende voorbeeld is een voorbeeld van het antwoord dat wordt uitgevoerd az vm extension show

{
  "autoUpgradeMinorVersion": true,
  "forceUpdateTag": null,
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/NetworkWatcherAgentWindows",
  "instanceView": null,
  "location": "westcentralus",
  "name": "NetworkWatcherAgentWindows",
  "protectedSettings": null,
  "provisioningState": "Succeeded",
  "publisher": "Microsoft.Azure.NetworkWatcher",
  "resourceGroup": "{resourceGroupName}",
  "settings": null,
  "tags": null,
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "typeHandlerVersion": "1.4",
  "virtualMachineExtensionType": "NetworkWatcherAgentWindows"
}

Een pakketopname starten

Zodra de voorgaande stappen zijn voltooid, wordt de pakketopnameagent geïnstalleerd op de virtuele machine.

Stap 1

Haal een opslagaccount op. Dit opslagaccount wordt gebruikt voor het opslaan van het pakketopnamebestand.

az storage account list

Stap 2

Op dit moment bent u klaar om een pakketopname te maken. Laten we eerst de parameters bekijken die u mogelijk wilt configureren. Filters zijn een dergelijke parameter die kan worden gebruikt om de gegevens te beperken die worden opgeslagen door de pakketopname. In het volgende voorbeeld wordt een pakketopname met verschillende filters ingesteld. De eerste drie filters verzamelen alleen uitgaand TCP-verkeer van lokale IP 10.0.0.3 naar doelpoorten 20, 80 en 443. Het laatste filter verzamelt alleen UDP-verkeer.

az network watcher packet-capture create --resource-group {resourceGroupName} --vm {vmName} --name packetCaptureName --storage-account {storageAccountName} --filters "[{\"protocol\":\"TCP\", \"remoteIPAddress\":\"1.1.1.1-255.255.255.255\",\"localIPAddress\":\"10.0.0.3\", \"remotePort\":\"20\"},{\"protocol\":\"TCP\", \"remoteIPAddress\":\"1.1.1.1-255.255.255.255\",\"localIPAddress\":\"10.0.0.3\", \"remotePort\":\"80\"},{\"protocol\":\"TCP\", \"remoteIPAddress\":\"1.1.1.1-255.255.255.255\",\"localIPAddress\":\"10.0.0.3\", \"remotePort\":\"443\"},{\"protocol\":\"UDP\"}]"

Het volgende voorbeeld is de verwachte uitvoer van het uitvoeren van de az network watcher packet-capture create opdracht.

{
  "bytesToCapturePerPacket": 0,
  "etag": "W/\"b8cf3528-2e14-45cb-a7f3-5712ffb687ac\"",
  "filters": [
    {
      "localIpAddress": "10.0.0.3",
      "localPort": "",
      "protocol": "TCP",
      "remoteIpAddress": "1.1.1.1-255.255.255.255",
      "remotePort": "20"
    },
    {
      "localIpAddress": "10.0.0.3",
      "localPort": "",
      "protocol": "TCP",
      "remoteIpAddress": "1.1.1.1-255.255.255.255",
      "remotePort": "80"
    },
    {
      "localIpAddress": "10.0.0.3",
      "localPort": "",
      "protocol": "TCP",
      "remoteIpAddress": "1.1.1.1-255.255.255.255",
      "remotePort": "443"
    },
    {
      "localIpAddress": "",
      "localPort": "",
      "protocol": "UDP",
      "remoteIpAddress": "",
      "remotePort": ""
    }
  ],
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus/pa
cketCaptures/packetCaptureName",
  "name": "packetCaptureName",
  "provisioningState": "Succeeded",
  "resourceGroup": "NetworkWatcherRG",
  "storageLocation": {
    "filePath": null,
    "storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/gwteststorage123abc",
    "storagePath": "https://gwteststorage123abc.blob.core.windows.net/network-watcher-logs/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/{resourceGroupName}/p
roviders/microsoft.compute/virtualmachines/{vmName}/2017/05/25/packetcapture_16_22_34_630.cap"
  },
  "target": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}",
  "timeLimitInSeconds": 18000,
  "totalBytesPerSession": 1073741824
}

Een pakketopname ophalen

Door de az network watcher packet-capture show-status opdracht uit te voeren, wordt de status opgehaald van een momenteel uitgevoerde of voltooide pakketopname.

az network watcher packet-capture show-status --name packetCaptureName --location {networkWatcherLocation}

Het volgende voorbeeld is de uitvoer van de az network watcher packet-capture show-status opdracht. Het volgende voorbeeld is wanneer de opname is gestopt, met een StopReason of TimeExceeded.

{
  "additionalProperties": {
    "status": "Succeeded"
  },
  "captureStartTime": "2016-12-06T17:20:01.5671279Z",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus/packetCaptures/packetCaptureName",
  "name": "packetCaptureName",
  "packetCaptureError": [],
  "packetCaptureStatus": "Stopped",
  "stopReason": "TimeExceeded"
}

Een pakketopname stoppen

Als er een capture-sessie wordt uitgevoerd, wordt deze gestopt door de az network watcher packet-capture stop opdracht uit te voeren.

az network watcher packet-capture stop --name packetCaptureName --location westcentralus

Notitie

De opdracht retourneert geen antwoord wanneer deze wordt uitgevoerd op een opnamesessie die momenteel wordt uitgevoerd of een bestaande sessie die al is gestopt.

Een pakketopname verwijderen

az network watcher packet-capture delete --name packetCaptureName --location westcentralus

Notitie

Als u een pakketopname verwijdert, wordt het bestand in het opslagaccount niet verwijderd.

Een pakketopname downloaden

Zodra uw pakketopnamesessie is voltooid, kan het opnamebestand worden geüpload naar blobopslag of naar een lokaal bestand op de virtuele machine. De opslaglocatie van de pakketopname wordt gedefinieerd bij het maken van de sessie. Een handig hulpprogramma voor toegang tot deze opnamebestanden die zijn opgeslagen in een opslagaccount, is Microsoft Azure Storage Explorer, die hier kan worden gedownload: https://storageexplorer.com/

Als er een opslagaccount is opgegeven, worden pakketopnamebestanden opgeslagen in een opslagaccount op de volgende locatie:

https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{VMName}/{year}/{month}/{day}/packetCapture_{creationTime}.cap