Administración de capturas de paquetes con Azure Network Watcher
Artículo
En este artículo, aprenderá a usar la captura de paquetes de Azure Network Watcher para configurar, iniciar, detener, descargar y eliminar de forma remota capturas de paquetes de máquinas virtuales.
Una máquina virtual o un conjunto de escalado de máquinas virtuales con conectividad TCP saliente a 169.254.169.254 a través del puerto 80 y 168.63.129.16 a través del puerto 8037. La extensión de máquina virtual del agente de Network Watcher usa estas direcciones IP para comunicarse con la plataforma Azure.
Una extensión de máquina virtual del agente de Network Watcher instalada en la máquina virtual objetivo. Siempre que use la captura de paquetes de Network Watcher en Azure Portal, el agente se instalará automáticamente en la máquina virtual de destino o en el conjunto de escalado si no se instaló anteriormente. Para actualizar un agente que ya esté instalado, consulte Actualizar la extensión de Azure Network Watcher a la versión más reciente.
Una máquina virtual con conectividad TCP saliente a 169.254.169.254 a través del puerto 80 y 168.63.129.16 a través del puerto 8037. La extensión de máquina virtual del agente de Network Watcher usa estas direcciones IP para comunicarse con la plataforma Azure.
Los pasos de este artículo ejecutarán los cmdlets de Azure PowerShell de forma interactiva en Azure Cloud Shell. Para ejecutar los comandos en Cloud Shell, seleccione Abrir Cloud Shell en la esquina superior derecha de un bloque de código. Seleccione Copiar para copiar el código y péguelo, a continuación, en Cloud Shell para ejecutarlo. También podrá ejecutar Cloud Shell desde Azure Portal.
También podrá instalar Azure PowerShell localmente para ejecutar los cmdlet. En este artículo se necesita el módulo Az de PowerShell. Para más información, vea Procedimiento para instalar Azure PowerShell. Si ejecuta PowerShell localmente, inicie sesión en Azure con el cmdlet Connect-AzAccount.
Una máquina virtual con conectividad TCP saliente a 169.254.169.254 a través del puerto 80 y 168.63.129.16 a través del puerto 8037. La extensión de máquina virtual del agente de Network Watcher usa estas direcciones IP para comunicarse con la plataforma Azure.
Los pasos de este artículo ejecutarán los comandos de la CLI de Azure de forma interactiva en Azure Cloud Shell. Para ejecutar los comandos en Cloud Shell, seleccione Abrir Cloud Shell en la esquina superior derecha de un bloque de código. Seleccione Copiar para copiar el código y péguelo en Cloud Shell para ejecutarlo. También podrá ejecutar Cloud Shell desde Azure Portal.
Azure crea una instancia de Network Watcher en la región de la máquina virtual si Network Watcher no se habilitó para esa región. Para obtener más información, consulte Habilitar o deshabilitar Azure Network Watcher.
Si un grupo de seguridad de red está asociado a la interfaz de red o a una subred en la que se encuentra la interfaz de red, asegúrese de que existen reglas que permiten la conectividad de salida a través de los puertos anteriores. Del mismo modo, garantice la conectividad de salida a través de los puertos anteriores al agregar a la red rutas definidas por el usuario.
Para iniciar una sesión de captura, siga estos pasos:
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Network Watcher. En los resultados de la búsqueda, seleccione Network Watcher.
Seleccione Captura de paquetes en Herramientas de diagnóstico de red y, a continuación, seleccione + Agregar para crear una captura de paquetes.
En Agregar captura de paquetes, escriba o seleccione valores para las configuraciones siguientes:
Configuración
Value
Detalles básicos
Suscripción
Seleccione la suscripción de Azure de la máquina virtual.
Resource group
Seleccione el grupo de recursos de la máquina virtual.
Tipo de destino
Seleccione Máquina virtual o Conjunto de escalado de máquinas virtuales.
Conjunto de escalado de máquinas virtuales de destino
Seleccione el conjunto de escalado de máquinas virtuales. Esta opción está disponible si selecciona Conjunto de escalado de máquinas virtuales como tipo de destino.
Instancia de destino
Seleccione la máquina virtual o la instancia de un conjunto de escalado.
Nombre de la captura de paquetes
Escriba un nombre o deje el nombre predeterminado.
Configuración de captura de paquetes
Ubicación de captura
Seleccione Cuenta de almacenamiento (opción predeterminada), Archivo o Ambos.
Cuenta de almacenamiento
Seleccione la cuenta de almacenamiento estándar1. Esta opción está disponible si seleccionó Cuenta de almacenamiento o Ambos como ubicación de la captura. La cuenta de almacenamiento debe estar en la misma región que la instancia de destino.
Ruta de acceso de archivo local
Escriba una ruta de acceso de archivo local válida en la que desea que se guarde la captura en la máquina virtual de destino. Si usa una máquina Linux, la ruta de acceso puede comenzar con /var/captures. Si usa una máquina Windows, la ruta de acceso puede comenzar con C:\Captures. Esta opción está disponible si seleccionó Archivo o Ambos como ubicación de captura.
Número máximo de bytes por paquete
Escriba el número máximo de bytes que se capturarán por cada paquete. Si deja el valor en blanco o escribe 0, se capturarán todos los bytes.
Número máximo de bytes por sesión
Escriba el número total de bytes que se capturan. Una vez que se alcanza el valor, la captura de paquetes se detiene. Si deja el valor en blanco, se captura hasta 1 GB.
Límite de tiempo (segundos)
Escriba el límite de tiempo de la sesión de captura de paquetes en segundos. Una vez que se alcanza el valor, la captura de paquetes se detiene. Si se deja el valor en blanco, se captura hasta 5 horas (18 000 segundos).
Filtrado (opcional)
Agregar criterios de filtro
Seleccione Agregar criterios de filtro para agregar un filtro nuevo. Puede definir tantos filtros como desee.
Protocolo
Filtra la captura de paquetes en función del protocolo seleccionado. Los valores disponibles son TCP, UDP o Cualquiera.
Dirección IP local2
filtra la captura de paquetes para los paquetes en los que la dirección IP local coincide con este valor.
Puerto local2
filtra la captura de paquetes para los paquetes en los que el puerto local coincide con este valor.
Dirección IP remota2
filtra la captura de paquetes para los paquetes en los que la dirección IP remota coincide con este valor.
Puerto remoto2
filtra la captura de paquetes para los paquetes en los que el puerto remoto coincide con este valor.
1 Actualmente, las cuentas de almacenamiento Premium no se admiten para almacenar capturas de paquetes.
2 Los valores de dirección IP y puerto pueden ser un solo valor, un rango como 80-1024 o varios valores como 80, 443.
Seleccione Iniciar captura de paquetes.
La captura de paquetes se detiene una vez que se alcanza el límite de tiempo o el tamaño de archivo (bytes máximos por sesión).
Agrega filtros para capturar solo el tráfico que desees. Por ejemplo, solo puedes capturar el tráfico TCP de una dirección IP específica a un puerto específico.
-TimeLimitInSeconds
Establece la duración máxima de la sesión de captura. El valor predeterminado es de 18000 segundos (5 horas).
-BytesToCapturePerPacket
Establece el número máximo de bytes que se capturarán por cada paquete. Todos los bytes se capturan si no se usan o se escribe 0.
-TotalBytesPerSession
Establece el número total de bytes que se capturan. Una vez que se alcanza el valor, la captura de paquetes se detiene. Si no se usa, se capturan hasta 1 GB (1073 741 824 bytes).
-LocalFilePath
Escribe una ruta de acceso de archivo local válida si deseas que la captura se guarde en la máquina virtual de destino (por ejemplo, C:\Capture\myVM_1.cap). Si usa una máquina Linux, la ruta de acceso debe comenzar con /var/captures.
La captura de paquetes se detiene una vez que se alcanza el límite de tiempo o el tamaño de archivo (bytes máximos por sesión).
# 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'
Una vez iniciada la sesión de captura, verás la siguiente salida:
Agrega filtros para capturar solo el tráfico que desees. Por ejemplo, solo puedes capturar el tráfico TCP de una dirección IP específica a un puerto específico.
--time-limit
Establece la duración máxima de la sesión de captura. El valor predeterminado es de 18000 segundos (5 horas).
--capture-size
Establece el número máximo de bytes que se capturarán por cada paquete. Todos los bytes se capturan si no se usan o se escribe 0.
--capture-limit
Establece el número total de bytes que se capturan. Una vez que se alcanza el valor, la captura de paquetes se detiene. Si no se usa, se capturan hasta 1 GB (1073 741 824 bytes).
--file-path
Escribe una ruta de acceso de archivo local válida si deseas que la captura se guarde en la máquina virtual de destino (por ejemplo, C:\Capture\myVM_1.cap). Si usa una máquina Linux, la ruta de acceso debe comenzar con /var/captures.
La captura de paquetes se detiene una vez que se alcanza el límite de tiempo o el tamaño de archivo (bytes máximos por sesión).
Para detener manualmente una sesión de captura de paquetes antes de que alcance sus límites de tiempo o de tamaño de archivo, seleccione los puntos suspensivos … en el lado derecho de la captura de paquetes o haga clic con el botón derecho en ella y, a continuación, seleccione Detener.
Para detener manualmente una sesión de captura de paquetes antes de alcanzar sus límites de tiempo o de tamaño de archivo, use el cmdlet Stop-AzNetworkWatcherPacketCapture.
El cmdlet no devuelve una respuesta si se ejecutó en una sesión de captura que se está ejecutando actualmente o en una sesión que ya se ha detenido.
Para detener manualmente una sesión de captura de paquetes antes de alcanzar sus límites de tiempo o de tamaño de archivo, use el comando az network watcher packet-capture stop.
# Manually stop a packet capture session.
az network watcher packet-capture stop --location 'eastus' --name 'myVM_1'
Nota:
El comando no devuelve una respuesta si se ejecutó en una sesión de captura que se está ejecutando actualmente o en una sesión que ya se ha detenido.
Visualización del estado de la captura de paquetes
# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
La salida siguiente es un ejemplo de la salida del cmdlet Get-AzNetworkWatcherPacketCapture. El ejemplo siguiente es una vez completada la captura. El valor de PacketCaptureStatus es Stopped, con un valor de StopReason de TimeExceeded. Este valor muestra que la captura de paquetes fue correcta y agotó su tiempo.
# Get information, properties, and status of a packet capture.
az network watcher packet-capture show-status --location 'eastus' --name 'myVM_1'
El ejemplo siguiente es la salida del comando az network watcher packet-capture show-status. Puede ver que el valor de packetCaptureStatus es Stopped, con un valor de StopReason de TimeExceeded:
Una vez finalizada la sesión de captura de paquetes, el archivo de captura resultante se guardará en Azure Storage, un archivo local en la máquina virtual de destino o en ambos. El destino de almacenamiento de la captura de paquetes se especifica durante su creación. Para más información, consulte la sección Inicio de una captura de paquetes.
Para descargar un archivo de captura de paquetes guardado en Azure Storage, siga estos pasos:
En la página Captura de paquetes, seleccione la captura de paquetes de la que desee descargar el archivo.
En la sección Detalles, seleccione el vínculo del archivo de captura de paquetes.
En la página del blob, seleccione Descargar.
Nota:
También es posible descargar los archivos de captura desde el contenedor de la cuenta de almacenamiento mediante Azure Portal o el Explorador de Storage1 en la siguiente ruta de acceso:
1 Explorador de Storage es una aplicación independiente que se puede usar convenientemente para acceder a los datos de Azure Storage y trabajar con ellos. Para obtener más información, consulte Introducción a Explorador de Storage.
Para descargar un archivo de captura de paquetes guardado en la máquina virtual (VM), conéctese a esta y descárguelo de la ruta de acceso local especificada durante la creación de la captura de paquetes.
Una vez finalizada la sesión de captura de paquetes, el archivo de captura resultante se guardará en Azure Storage, un archivo local en la máquina virtual de destino o en ambos. El destino de almacenamiento de la captura de paquetes se especifica durante su creación. Para más información, consulte la sección Inicio de una captura de paquetes.
Si se especifica una cuenta de almacenamiento, los archivos de captura se guardan en la cuenta de almacenamiento en la siguiente ruta de acceso:
Para descargar una captura de paquetes desde Azure Storage, utilice el cmdlet 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'
Nota:
También puedes descargar el archivo de captura desde el contenedor de la cuenta de almacenamiento mediante el Explorador de Azure Storage. Explorador de Storage es una aplicación independiente que se puede usar convenientemente para acceder a los datos de Azure Storage y trabajar con ellos. Para obtener más información, consulte Introducción a Explorador de Storage.
Una vez finalizada la sesión de captura de paquetes, el archivo de captura resultante se guardará en Azure Storage, un archivo local en la máquina virtual de destino o en ambos. El destino de almacenamiento de la captura de paquetes se especifica durante su creación. Para más información, consulte la sección Inicio de una captura de paquetes.
Si se especifica una cuenta de almacenamiento, los archivos de captura se guardan en la cuenta de almacenamiento en la siguiente ruta de acceso:
Para descargar una captura de paquetes de Azure Storage en el disco local, utilice el comando 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'
Nota:
También puedes descargar el archivo de captura desde el contenedor de la cuenta de almacenamiento mediante el Explorador de Azure Storage. Explorador de Storage es una aplicación independiente que se puede usar convenientemente para acceder a los datos de Azure Storage y trabajar con ellos. Para obtener más información, consulte Introducción a Explorador de Storage.
En la página Captura de paquetes, seleccione … en el lado derecho de la captura de paquetes que desea eliminar, o bien haga clic con el botón derecho en ella y, a continuación, seleccione Eliminar.
# Delete a packet capture resource.
az network watcher packet-capture delete --location 'eastus' --name 'myVM_1'
Importante
La eliminación del recurso de captura de paquetes en Network Watcher no elimina el archivo de captura de la cuenta de almacenamiento o la máquina virtual. Si el archivo de captura ya no fuese necesario, deberá eliminarlo manualmente de la cuenta de almacenamiento o de la máquina virtual.