Gérer les captures de paquets avec Azure Network Watcher
Article
Dans cet article, vous allez apprendre à utiliser la fonctionnalité de capture de paquetsAzure Network Watcher pour configurer, démarrer, arrêter, télécharger et supprimer des captures de paquets de machine virtuelle à distance.
Une machine virtuelle ou un groupe de machines virtuelles identiques avec une connectivité TCP sortante vers : 169.254.169.254 sur le port 80 et 168.63.129.16 sur le port 8037. L’extension de machine virtuelle de l’agent Network Watcher utilise ces adresses IP pour communiquer avec la plateforme Azure.
Extension de machine virtuelle de l’agent Network Watcher installée sur la machine virtuelle cible. Chaque fois que vous utilisez la capture de paquets Network Watcher dans le Portail Azure, l’agent est automatiquement installé sur la machine virtuelle ou le groupe identique cible s’il n’a pas été précédemment installé. Pour mettre à jour un agent déjà installé, consultez Mettre à jour l’extension Azure Network Watcher vers la dernière version.
Une machine virtuelle avec une connectivité TCP sortante vers : 169.254.169.254 sur le port80 et 168.63.129.16 sur le port 8037. L’extension de machine virtuelle de l’agent Network Watcher utilise ces adresses IP pour communiquer avec la plateforme Azure.
Un compte de stockage Azure avec une connectivité TCP sortante de machine virtuelle vers celui-ci via le port 443. Si vous n’avez pas de compte de stockage, consultez Créer un compte de stockage à l’aide de PowerShell. Le compte de stockage doit être accessible à partir du sous-réseau de la machine virtuelle cible ou du groupe identique. Pour plus d’informations, consultez Configurer Pare-feu et réseaux virtuels dans Stockage Azure.
Azure Cloud Shell ou Azure PowerShell.
Les étapes de cet article exécutent les applets de commande Azure PowerShell de manière interactive dans Azure Cloud Shell. Pour exécuter les commandes dans le Cloud Shell, sélectionnez Ouvrir Cloud Shell dans le coin supérieur droit d’un bloc de code. Sélectionnez Copier pour copier le code, puis collez-le dans Cloud Shell pour l’exécuter. Vous pouvez également exécuter le Cloud Shell à partir du Portail Azure.
Vous pouvez également installer Azure PowerShell localement pour exécuter les applets de commande. Cet article nécessite le module Az PowerShell. Pour plus d’informations, consultez Comment installer Azure PowerShell. Si vous exécutez PowerShell localement, connectez-vous à Azure avec la cmdlet Connect-AzAccount.
Une machine virtuelle avec une connectivité TCP sortante vers : 169.254.169.254 sur le port80 et 168.63.129.16 sur le port 8037. L’extension de machine virtuelle de l’agent Network Watcher utilise ces adresses IP pour communiquer avec la plateforme Azure.
Dans les étapes de cet article, vous exécutez les commandes Azure CLI de manière interactive dans Azure Cloud Shell. Pour exécuter les commandes dans le Cloud Shell, sélectionnez Ouvrir Cloud Shell dans le coin supérieur droit d’un bloc de code. Sélectionnez Copier pour copier le code, puis collez-le dans Cloud Shell afin de l’exécuter. Vous pouvez démarrer Azure Cloud Shell depuis le Portail Azure.
Vous pouvez également installer Azure CLI localement afin d’exécuter les commandes. Si vous exécutez Azure CLI localement, connectez-vous à Azure à l’aide de la commande az login.
Remarque
Azure crée une instance Network Watcher dans la région de la machine virtuelle si Network Watcher n’a pas été activé pour cette région. Pour plus d’informations, consultez Activer ou désactiver Azure Network Watcher.
Si un groupe de sécurité réseau est associé à l’interface réseau ou à un sous-réseau dans lequel figure l’interface réseau, assurez-vous qu’il existe des règles autorisant la connectivité de sortie sur les ports précédents. De même, assurez une connectivité sortante sur les ports précédents lors de l’ajout d’itinéraires définis par l’utilisateur à votre réseau.
Pour démarrer une session de capture, procédez comme suit :
Dans la zone de recherche située en haut du portail, entrez Network Watcher. Sélectionnez Network Watcher dans les résultats de recherche.
Sélectionnez capture de paquets sous Outils de diagnostic réseau, puis sélectionnez + Ajouter pour créer une capture de paquets.
Dans Ajouter une capture de paquets, entrez ou sélectionnez des valeurs pour les paramètres suivants :
Paramètre
Valeur
Détails de base
Abonnement
Sélectionnez l’abonnement Azure de la machine virtuelle.
Resource group
Sélectionnez le groupe de ressources de la machine virtuelle.
Type cible
Sélectionnez machine virtuelle ou groupe de machines virtuelles identiques.
Groupe de machines virtuelles identiques cible
Sélectionnez le groupe de machines virtuelles identiques. Cette option est disponible si vous sélectionnez groupe de machines virtuelles identiques comme type cible.
Instance de cible
Sélectionnez l’instance de machine virtuelle ou de groupe identique.
Nom de la capture de paquets
Entrez un nom ou conservez le nom par défaut.
Configuration de la capture de paquets
Emplacement de capture
Sélectionnez Compte de stockage (option par défaut), fichier ou les deux.
Compte de stockage
Sélectionnez votre compte de stockage Standard1. Cette option est disponible si vous sélectionnez compte de stockage ou les deux comme emplacement de capture. Le compte de stockage doit se trouver dans la même région que l’instance cible.
Chemin de fichier local
Entrez un chemin de fichier local valide dans lequel vous souhaitez enregistrer la capture dans la machine virtuelle cible. Si vous utilisez une machine Linux, le chemin d’accès peut commencer par /var/captures. Si vous utilisez une machine Windows, le chemin d’accès peut commencer par C:\Captures. Cette option est disponible si vous sélectionnez Fichier ou les deux comme emplacement de capture.
Nombre maximal d’octets par paquet
Entrez le nombre maximal d’octets à capturer pour chaque paquet. Tous les octets sont capturés s’ils sont laissés vides ou si 0 est entré.
Nombre maximal d’octets par session
Entrez le nombre total d’octets capturés. Une fois la valeur atteinte, la capture de paquets s’arrête. Jusqu’à 1 Go est capturé s’il reste vide.
Délai imparti (secondes)
Entrez la limite de temps de la session de capture de paquets en secondes. Une fois la valeur atteinte, la capture de paquets s’arrête. Jusqu’à 5 heures (18 000 secondes) sont capturées si elles sont laissées vides.
Filtrage (facultatif)
Ajouter des critères de filtre
Sélectionnez Ajouter des critères de filtre pour ajouter un nouveau filtre. Vous pouvez définir autant de filtres que nécessaire.
Protocol
Filtre la capture de paquets en fonction du protocole sélectionné. Les valeurs disponibles sont TCP, UDPou Tout.
Adresse IP locale 2
filtre la capture de paquets en la limitant à ceux dont l’adresse IP locale correspond à cette valeur.
Port local 2
filtre la capture de paquets en la limitant à ceux dont le port local correspond à cette valeur.
Adresse IP distante 2
filtre la capture de paquets en la limitant à ceux dont l’adresse IP distante correspond à cette valeur.
Port distant 2
filtre la capture de paquets en la limitant à ceux dont le port distant correspond à cette valeur.
1 Les comptes de stockage Premium ne sont actuellement pas pris en charge pour le stockage des captures de paquets.
2 Les valeurs d’adresse IP et de port peuvent être une valeur unique, une plage de valeurs telle que 80-1024, ou des valeurs multiples telles que 80, 443.
Sélectionnez Démarrer la capture de paquets.
La capture de paquets s’arrête une fois la limite de temps ou la taille de fichier (octets maximum par session) atteinte.
Le tableau suivant décrit les paramètres facultatifs que vous pouvez utiliser avec l’applet de commande New-AzNetworkWatcherPacketCapture :
Paramètre
description
-Filter
Ajoutez des filtres pour capturer uniquement le trafic souhaité. Par exemple, vous pouvez capturer uniquement le trafic TCP à partir d’une adresse IP spécifique vers un port spécifique.
-TimeLimitInSeconds
Définissez la durée maximale de la session de capture. La valeur par défaut est 18 000 secondes (5 heures).
-BytesToCapturePerPacket
Définissez le nombre maximal d’octets à capturer pour chaque paquet. Tous les octets sont capturés s’ils ne sont pas utilisés ou si 0 est saisi.
-TotalBytesPerSession
Définissez le nombre total d’octets capturés. Une fois la valeur atteinte, la capture de paquets s’arrête. Jusqu’à 1 Go (1 073 741 824 octets) est capturé s’il n’est pas utilisé.
-LocalFilePath
Entrez un chemin d’accès de fichier local valide si vous souhaitez que la capture soit enregistrée dans la machine virtuelle cible (par exemple, C:\Capture\myVM_1.cap). Si vous utilisez une machine Linux, le chemin doit commencer par /var/captures.
La capture de paquets s’arrête une fois la limite de temps ou la taille de fichier (octets maximum par session) atteinte.
# Start the Network Watcher capture session.
az network watcher packet-capture create --name 'myVM_1' --resource-group 'myResourceGroup' --vm 'myVM' --storage-account 'mystorageaccount'
# Start the Network Watcher capture session (storage account is in different resource group from the VM).
az network watcher packet-capture create --name 'myVM_1' --resource-group 'myResourceGroup' --vm 'myVM' --storage-account '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup2/providers/Microsoft.Storage/storageAccounts/mystorageaccount'
Une fois la session de capture démarrée, la sortie suivante s’affiche :
Ajoutez des filtres pour capturer uniquement le trafic souhaité. Par exemple, vous pouvez capturer uniquement le trafic TCP à partir d’une adresse IP spécifique vers un port spécifique.
--time-limit
Définissez la durée maximale de la session de capture. La valeur par défaut est 18 000 secondes (5 heures).
--capture-size
Définissez le nombre maximal d’octets à capturer pour chaque paquet. Tous les octets sont capturés s’ils ne sont pas utilisés ou si 0 est saisi.
--capture-limit
Définissez le nombre total d’octets capturés. Une fois la valeur atteinte, la capture de paquets s’arrête. Jusqu’à 1 Go (1 073 741 824 octets) est capturé s’il n’est pas utilisé.
--file-path
Entrez un chemin d’accès de fichier local valide si vous souhaitez que la capture soit enregistrée dans la machine virtuelle cible (par exemple, C:\Capture\myVM_1.cap). Si vous utilisez une machine Linux, le chemin doit commencer par /var/captures.
La capture de paquets s’arrête une fois la limite de temps ou la taille de fichier (octets maximum par session) atteinte.
Pour arrêter manuellement une session de capture de paquets avant d’atteindre ses limites de taille de fichier ou de temps, sélectionnez les points de suspension ... sur le côté droit de la capture de paquets, ou cliquez dessus avec le bouton droit, puis sélectionnez Arrêter.
Pour arrêter manuellement une session de capture de paquets avant d’atteindre ses limites de taille de fichier ou de temps, utilisez l’applet de commande Stop-AzNetworkWatcherPacketCapture.
Le cmdlet ne retourne pas de réponse s’il est exécuté sur une session de capture en cours d’exécution ou une session qui a déjà été arrêtée.
Pour arrêter manuellement une session de capture de paquets avant d’atteindre ses limites de taille de fichier ou de temps, utilisez la commande az network watcher packet-capture stop.
# Manually stop a packet capture session.
az network watcher packet-capture stop --location 'eastus' --name 'myVM_1'
Remarque
La commande ne retourne pas de réponse s’il est exécuté sur une session de capture en cours d’exécution ou une session qui a déjà été arrêtée.
Accédez à la page de capture de paquets de Network Watcher pour répertorier les captures de paquets existantes, quel que soit leur état.
Utilisez le cmdlet Get-AzNetworkWatcherPacketCapture pour récupérer l’état d’une capture de paquets (en cours d’exécution ou terminée).
# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
La sortie suivante est un exemple de sortie du cmdlet Get-AzNetworkWatcherPacketCapture. L’exemple suivant est postérieur à la capture. La valeur PacketCaptureStatus est Stopped, et la valeur StopReason est TimeExceeded. Cela indique que la capture de paquets a réussi et s’est correctement exécutée.
# Get information, properties, and status of a packet capture.
az network watcher packet-capture show-status --location 'eastus' --name 'myVM_1'
L’exemple suivant présente la sortie de la commande az network watcher packet-capture show-status. Vous pouvez voir que la valeur packetCaptureStatus est Arrêté, avec une valeur StopReason de TimeExceeded :
Une fois votre session de capture de paquets terminée, le fichier de capture résultant est enregistré dans le stockage Azure, un fichier local sur la machine virtuelle cible, ou les deux. La destination de stockage de la capture de paquets est spécifiée lors de sa création. Pour plus d’informations, consultez la section Démarrer une capture de paquets.
Pour télécharger un fichier de capture de paquets enregistré dans Stockage Azure, effectuez ces étapes :
Dans la page Capture de paquets, sélectionnez la capture de paquets dont vous souhaitez télécharger le fichier.
Dans la section Détails, sélectionnez le lien du fichier de capture de paquets.
Dans la page d’objets blob, sélectionnez Télécharger.
Remarque
Vous pouvez également télécharger les fichiers de capture à partir du conteneur de compte de stockage à l’aide du Portail Azure ou de l’Explorateur Stockage 1 au chemin d’accès suivant :
1 L’Explorateur Stockage est une application autonome qui vous permet d’accéder aux données Stockage Azure et de les utiliser. Pour plus d’informations, consultez Prise en main de l’Explorateur Stockage.
Pour télécharger un fichier de capture de paquets enregistré sur la machine virtuelle, connectez-vous à la machine virtuelle et téléchargez le fichier à partir du chemin d’accès local spécifié lors de la création de la capture de paquets.
Une fois votre session de capture de paquets terminée, le fichier de capture résultant est enregistré dans le stockage Azure, un fichier local sur la machine virtuelle cible, ou les deux. La destination de stockage de la capture de paquets est spécifiée lors de sa création. Pour plus d’informations, consultez la section Démarrer une capture de paquets.
Si un compte de stockage est spécifié, les fichiers de capture sont enregistrés dans un compte de stockage au chemin d’accès suivant :
Pour télécharger une capture de paquets à partir du stockage Azure sur le disque local, utilisez l’applet de commande Get-AzStorageBlobContent :
# Download the packet capture file from Azure storage container.
Get-AzStorageBlobContent -Container 'network-watcher-logs' -Blob '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm/2024/01/25/packetcapture_22_44_54_342.cap' -Destination 'C:\Capture\myVM_1.cap'
Remarque
Vous pouvez également télécharger le fichier de capture à partir du conteneur de compte de stockage à l’aide de l’Explorateur Stockage Azure. L’Explorateur Stockage est une application autonome qui vous permet d’accéder aux données Stockage Azure et de les utiliser. Pour plus d’informations, consultez Prise en main de l’Explorateur Stockage.
Une fois votre session de capture de paquets terminée, le fichier de capture résultant est enregistré dans le stockage Azure, un fichier local sur la machine virtuelle cible, ou les deux. La destination de stockage de la capture de paquets est spécifiée lors de sa création. Pour plus d’informations, consultez la section Démarrer une capture de paquets.
Si un compte de stockage est spécifié, les fichiers de capture sont enregistrés dans un compte de stockage au chemin d’accès suivant :
Pour télécharger une capture de paquets à partir du stockage Azure sur le disque local, utilisez az storage blob download :
# Download the packet capture file from Azure storage container.
az storage blob download --container-name 'network-watcher-logs' --blob-url '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm/2024/01/25/packetcapture_22_44_54_342.cap' --file 'C:\Capture\myVM_1.cap'
Remarque
Vous pouvez également télécharger le fichier de capture à partir du conteneur de compte de stockage à l’aide de l’Explorateur Stockage Azure. L’Explorateur Stockage est une application autonome qui vous permet d’accéder aux données Stockage Azure et de les utiliser. Pour plus d’informations, consultez Prise en main de l’Explorateur Stockage.
Dans la page Capture de paquets , sélectionnez ... sur le côté droit de la capture de paquets que vous souhaitez supprimer, ou cliquez dessus avec le bouton droit, puis sélectionnez Supprimer.
# Delete a packet capture resource.
az network watcher packet-capture delete --location 'eastus' --name 'myVM_1'
Important
La suppression de la ressource de capture de paquets dans Network Watcher ne supprime pas le fichier de capture du compte de stockage ou de la machine virtuelle. Si vous n’avez plus besoin du fichier de capture, vous devez le supprimer manuellement du compte de stockage ou de la machine virtuelle.