Verwalten von Paketerfassungen für virtuelle Computer mit Azure Network Watcher über Azure CLI

Mit dem Tool zum Erfassen von Netzwerküberwachungspaketen können Sie Aufzeichnungssitzungen erstellen, um Netzwerkdatenverkehr zu und von einem virtuellen Azure-Computer (VM) aufzuzeichnen. Für die Erfassungssitzung werden Filter bereitgestellt, um sicherzustellen, dass nur der gewünschte Datenverkehr erfasst wird. Mithilfe der Paketerfassung können Sie Netzwerkanomalien sowohl reaktiv als auch proaktiv diagnostizieren. Seine Anwendungen erweitern sich über die Anomalieerkennung hinaus, um Netzwerkstatistiken zu sammeln, Einblicke in Netzwerkangriffe zu erhalten, Clientserverkommunikation zu debuggen und verschiedene andere Netzwerkprobleme zu bewältigen. Mit der Network Watcher-Paketerfassung können Sie Paketerfassungen remote initiieren und die Notwendigkeit der manuellen Ausführung auf einem bestimmten virtuellen Computer lösen.

In diesem Artikel erfahren Sie, wie Sie mithilfe von Azure PowerShell eine VM-Paketerfassung remote konfigurieren, starten, beenden, herunterladen und löschen können. Informationen zum Verwalten von Paketerfassungen mithilfe vom Azure-Portal oder Azure CLI finden Sie unter Verwalten von Paketerfassungen für virtuelle Computer mithilfe des Azure-Portals oder Verwalten von Paketerfassungen für virtuelle Computer mithilfe von PowerShell.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.

  • Azure Cloud Shell oder Azure CLI.

    In den Schritten diesem Artikel werden die Azure CLI-Befehle interaktiv in Azure Cloud Shell ausgeführt. Um die Befehle in Cloud Shell auszuführen, wählen Sie in der oberen rechten Ecke eines Codeblocks Cloud Shell öffnen aus. Wählen Sie Kopieren aus, um den Code zu kopieren, und fügen Sie ihn in Cloud Shell ein, um ihn auszuführen. Sie können Azure Cloud Shell innerhalb des Azure-Portals starten.

    Sie können die Azure CLI auch lokal installieren, um die Befehle auszuführen. Wenn Sie die Azure CLI lokal ausführen, melden Sie sich mit dem Befehl az login bei Azure an.

  • Ein virtueller Computer mit der folgenden ausgehenden TCP-Verbindung:

    • zum Speicherkonto über Port 443
    • mit 169.254.169.254 über Port 80
    • mit 168.63.129.16 über Port 8037

Hinweis

  • Azure erstellt eine Network Watcher-Instanz in der Region des virtuellen Computers, wenn die Netzwerküberwachung für diese Region nicht aktiviert war. Weitere Informationen finden Sie unter Aktivieren oder Deaktivieren von Azure Network Watcher.
  • Für die Netzwerküberwachungspaketerfassung muss die VM-Erweiterung des Network Watcher-Agents auf dem virtuellen Zielcomputer installiert werden. Weitere Informationen finden Sie unter Installieren des Network Watcher-Agents.
  • Die letzten beiden IP-Adressen und Ports, die in den Voraussetzungen aufgeführt sind, sind in allen Netzwerküberwachungstools gemeinsam, die den Network Watcher-Agent verwenden und sich gelegentlich ändern können.

Wenn eine Netzwerksicherheitsgruppe der Netzwerkschnittstelle oder einem Subnetz, in dem sich die Netzwerkschnittstelle befindet, zugeordnet ist, stellen Sie sicher, dass Regeln definiert sind, um ausgehende Verbindungen über die oben genannten Ports zuzulassen. Stellen Sie ebenso die ausgehende Konnektivität über die vorherigen Ports sicher, wenn Sie Ihrem Netzwerk benutzerdefinierte Routen hinzufügen.

Installieren des Network Watcher-Agents

Schritt 1

Führen Sie den Befehl az vm extension set aus, um den Paketerfassungs-Agent auf dem virtuellen Gastcomputer zu installieren.

Für virtuelle Windows-Computer:

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

Für virtuelle Linux-Computer:

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

Schritt 2

Um sicherzustellen, dass der Agent installiert ist, führen Sie den Befehl vm extension show aus, und geben Sie die Ressourcengruppe und den Namen des virtuellen Computers an. Überprüfen Sie die Ergebnisliste, um sicherzustellen, dass der Agent installiert ist.

Für virtuelle Windows-Computer:

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

Für virtuelle Linux-Computer:

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

Das folgende Beispiel zeigt die Antwort nach der Ausführung von az vm extension show.

{
  "autoUpgradeMinorVersion": true,
  "forceUpdateTag": null,
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
}

Starten einer Paketerfassung

Nachdem Sie die vorherigen Schritte abgeschlossen haben, wird der Paketerfassungs-Agent auf dem virtuellen Computer installiert.

Schritt 1

Erstellen Sie ein Speicherkonto. Dieses Speicherkonto wird verwendet, um die Paketerfassungsdatei zu speichern.

az storage account list

Schritt 2

An diesem Punkt können Sie eine Paketerfassung erstellen. Lassen Sie uns zunächst die Parameter untersuchen, die Sie möglicherweise konfigurieren möchten. Filter gehören zu den Parametern, die zur Einschränkung der Daten, die bei der Paketerfassung gespeichert werden, verwendet werden können. Im folgenden Beispiel wird eine Paketerfassung mit mehreren Filtern eingerichtet. Die ersten drei Filter erfassen nur ausgehenden TCP-Datenverkehr von der lokalen IP-Adresse 10.0.0.3 an die Zielports 20, 80 und 443. Mit dem letzten Filter wird nur UDP-Datenverkehr erfasst.

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\"}]"

Das folgende Beispiel zeigt die erwartete Ausgabe nach Ausführen des Befehls az network watcher packet-capture create.

{
  "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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_westcentralus/packetCaptures/packetCaptureName",
  "name": "packetCaptureName",
  "provisioningState": "Succeeded",
  "resourceGroup": "NetworkWatcherRG",
  "storageLocation": {
    "filePath": null,
    "storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/gwteststorage123abc",
    "storagePath": "https://gwteststorage123abc.blob.core.windows.net/network-watcher-logs/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/{resourceGroupName}/providers/microsoft.compute/virtualmachines/{vmName}/2017/05/25/packetcapture_16_22_34_630.cap"
  },
  "target": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}",
  "timeLimitInSeconds": 18000,
  "totalBytesPerSession": 1073741824
}

Abrufen einer Paketerfassung

Durch Ausführen des Befehls az network watcher packet-capture show-status wird der Status einer zurzeit durchgeführten oder abgeschlossenen Paketerfassung abgerufen.

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

Das folgende Beispiel zeigt die Ausgabe des Befehls az network watcher packet-capture show-status. Das folgende Beispiel zeigt die angehaltene Erfassung, wobei „TimeExceeded“ für „StopReason“ angegeben ist.

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

Beenden einer Paketerfassung

Durch Ausführen des Befehls az network watcher packet-capture stop wird eine Sitzung, die ggf. gerade ausgeführt wird, beendet.

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

Hinweis

Der Befehl gibt keine Antwort zurück, wenn es für eine aktuell ausgeführte Erfassungssitzung oder eine vorhandene Sitzung ausgeführt wird, die bereits beendet wurde.

Löschen einer Paketerfassung

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

Hinweis

Durch das Löschen einer Paketerfassung wird die Datei im Speicherkonto nicht gelöscht.

Herunterladen einer Paketerfassung

Nachdem die Paketerfassungssitzung abgeschlossen wurde, kann die Erfassungsdatei in den Blobspeicher oder in eine lokale Datei auf dem virtuellen Computer hochgeladen werden. Der Speicherort der Paketerfassung wird beim Erstellen der Sitzung definiert. Ein nützliches Tool für den Zugriff auf diese in einem Speicherkonto gespeicherten Erfassungsdateien ist der Microsoft Azure Storage-Explorer, der hier heruntergeladen werden kann: https://storageexplorer.com/

Wenn ein Speicherkonto angegeben wird, werden Paketerfassungsdateien in einem Speicherkonto am folgenden Speicherort gespeichert:

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