Realización de una captura de paquetes en una instancia de núcleo de paquete

La captura de paquetes para paquetes de plano de datos o control se realiza mediante la herramienta MEC-Dataplane Trace. Seguimiento de MEC-Dataplane (MEC-DP) es similar a tcpdump, un programa informático del analizador de paquetes de red de datos que se ejecuta en una interfaz de línea de comandos (CLI). Puede usar el seguimiento de MEC-DP para supervisar y registrar paquetes en cualquier interfaz de plano de usuario en la red de acceso (interfaz N3) o en la red de datos (interfaz N6) en el dispositivo, así como en el plano de control (interfaz N2). Puede acceder a MEC-DP Trade mediante Azure Portal o la CLI de Azure.

La captura de paquetes funciona mediante la creación de reflejo de paquetes en una interfaz de kernel de Linux, que luego se puede supervisar mediante tcpdump. En esta guía paso a paso, aprenderá a realizar la captura de paquetes en una instancia de núcleo de paquete.

Importante

La realización de la captura de paquetes reducirá el rendimiento del sistema y el rendimiento del plano de datos. Por lo tanto, solo se recomienda usar esta herramienta a baja escala durante las pruebas iniciales.

Requisitos previos

Debe tener un sitio AP5GC implementado para realizar la captura de paquetes.

Para realizar la captura de paquetes mediante la línea de comandos, debe:

  • Identifique el recurso Kubernetes - Azure Arc que representa el clúster de Kubernetes habilitado para Azure Arc en el que se ejecuta su instancia de la red troncal de paquetes.
  • Asegúrese de que el equipo local tiene acceso principal kubectl al clúster de Kubernetes habilitado para Azure Arc. Esto requiere un archivo kubeconfig básico, que puede obtener siguiendo Acceso principal al espacio de nombres.

Realización de la captura de paquetes mediante Azure Portal

Configuración de una cuenta de almacenamiento

Debe configurar una cuenta de almacenamiento para almacenar el paquete de diagnóstico.

  1. Cree una cuenta de almacenamiento para diagnósticos con la siguiente configuración adicional:
    1. En la pestaña Protección de datos, enControl de acceso, seleccione Enable version-level immutability support (Habilitar compatibilidad con inmutabilidad a nivel de versión). Esto le permitirá especificar una directiva de retención con duración definida para la cuenta en el siguiente paso.
    2. Si desea que el contenido de la cuenta de almacenamiento se elimine automáticamente después de un período de tiempo, configure una directiva predeterminada de retención con duración definida para la cuenta de almacenamiento.
    3. Cree un contenedor para los diagnósticos.
    4. Anote la dirección URL del Blob del contenedor. Por ejemplo:
      https://storageaccountname.blob.core.windows.net/diagscontainername
      1. Vaya a la Cuenta de almacenamiento.
      2. Seleccione el símbolo ... en el lado derecho del blob de contenedor que desea usar para la recopilación de diagnósticos.
      3. Seleccione Propiedades del contenedor en el menú contextual.
      4. Copie el contenido del campo de URL en la vista Propiedades del contenedor.
  2. Cree una identidad asignada por usuario y asígnela a la cuenta de almacenamiento creada anteriormente con el rol colaborador de datos de Storage Blob.

    Sugerencia

    Es posible que ya haya creado y asociado una identidad asignada por el usuario al crear el sitio.

  3. Vaya al Plano de control del núcleo del paquete del sitio.
  4. Seleccione Identidad en Configuración en el menú lateral.
  5. Seleccione Agregar.
  6. Seleccione la identidad administrada firmada por el usuario que creó y seleccione Agregar.

Importante

Una vez que haya creado la identidad administrada asignada por el usuario, debe actualizar la configuración del núcleo del paquete mediante un cambio de configuración ficticio. Este podría ser un cambio sin ningún impacto en la implementación que se puede conservar, o bien un cambio que revierta inmediatamente. Vea Modificación de una instancia de núcleo de paquete. Si no actualiza la configuración del núcleo del paquete, se producirá un error en la captura de paquetes.

Inicio de una captura de paquetes

  1. Inicie sesión en Azure Portal.
  2. Vaya a la página de información general Panel de control del núcleo de paquetes del sitio en el que desea ejecutar una captura de paquetes.
  3. Seleccione Captura de paquetes en la sección Ayuda en el lado izquierdo. Se abrirá una vista captura de paquetes.
  4. Si esta es la primera vez que ha tomado una captura de paquetes mediante el portal, verá un mensaje de error que le pedirá que configure una cuenta de almacenamiento. Si es así:
    1. Siga el vínculo que aparece en el mensaje de error.
    2. Escriba la dirección URL del contenedor de la cuenta de almacenamiento que se configuró para el almacenamiento de diagnóstico y seleccione Modificar.

      Sugerencia

      Si no tiene la dirección URL del contenedor de la cuenta de almacenamiento:

      1. Vaya a la Cuenta de almacenamiento.
      2. Seleccione el símbolo ... en el lado derecho del contenedor que desea usar para la captura de paquetes.
      3. Seleccione Propiedades del contenedor en el menú contextual.
      4. Copie el contenido del campo URL.
    3. Vuelva a la vista Captura de paquetes.
  5. Seleccione Iniciar captura de paquetes.
  6. Rellene los detalles del panel Iniciar captura de paquetes y seleccione Crear.
  7. La página se actualizará cada pocos segundos hasta que se haya completado la captura de paquetes. También puede usar el botón Actualizar para actualizar la página. Si desea detener la captura de paquetes antes, seleccione Detener captura de paquetes.
  8. Una vez completada la captura de paquetes, el servicio en línea AP5GC guardará la salida en la dirección URL de la cuenta de almacenamiento proporcionada.
  9. Para descargar la salida de captura de paquetes, puede usar el botón Copiar en el Portapapeles de las columnas Almacenamiento o Nombre de archivo para copiar esos detalles y, a continuación, pegarlos en el cuadro Buscar del portal. Para descargar la salida, haga clic con el botón derecho en el archivo y seleccione Descargar.

Realización de la captura de paquetes mediante Azure CLI

  1. En una línea de comandos con acceso kubectl al clúster de Kubernetes habilitado para Azure Arc, escriba el pod del solucionador de problemas MEC-DP:

    kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- bash
    
  2. Vea la lista de interfaces de plano de usuario configuradas:

    mect list
    

    Esto debe notificar una sola interfaz en la red del plano de control (N2), una única interfaz en la red de acceso (N3) y una interfaz para cada red de datos conectada (N6). Por ejemplo:

    n2trace
    n3trace
    n6trace0 (Data Network: internet)
    n6trace1 (Data Network: enterprise)
    n6trace2 (Data Network: test)
    
  3. Ejecute mectdump con los parámetros que normalmente se pasan a tcpdump. En concreto, -i especificar la interfaz y -w especificar dónde escribir. Cierre la herramienta cuando termine presionando Ctrl + C. En los ejemplos siguientes se muestran algunos casos de uso comunes:

    • Para ejecutar paquetes de captura en todas las interfaces, ejecute mectdump -i any -w any.pcap
    • Para ejecutar paquetes de captura para la interfaz N3 y la interfaz N6 para una sola red de datos, escriba el pod del solucionador de problemas MEC-DP en dos ventanas independientes. En una ventana, ejecute mectdump -i n3trace -w n3.pcap y, en la otra ventana, ejecute mectdump -i <N6 interface> -w n6.pcap (use la interfaz N6 para la red de datos como se identifica en el paso 2).

    Importante

    Los archivos de captura de paquetes pueden ser grandes, especialmente cuando se ejecuta la captura de paquetes en todas las interfaces. Especifique filtros al ejecutar la captura de paquetes para reducir el tamaño del archivo; consulte la documentación de tcpdump para los filtros disponibles.

  4. Deje el contenedor:

    exit
    
  5. Copie los archivo de salida:

    kubectl cp -n core core-mec-dp-0:<path to output file> <location to copy to> -c troubleshooter
    

    Es posible que el tcpdump se haya detenido en medio de escribir un paquete, lo que puede hacer que este paso genere un error que indica unexpected EOF. Sin embargo, el archivo debe haberse copiado correctamente, pero puede comprobar el archivo de salida de destino para confirmarlo.

  6. Quite los archivos de salida:

        kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- rm <path to output file>
    

Pasos siguientes

Para obtener más opciones para supervisar la implementación y ver el análisis: