Notas de la versión v1.2.0.0 (2026-01-25)

Añadido

  • NUEVO: Procesamiento de registros multilínea para bloques de detalle PACKET de DNS
    • Las entradas de contexto PACKET ahora pueden incluir información detallada de conexión TCP/UDP y estructura de mensajes DNS
    • Los bloques de detalle se analizan en formato JSON estructurado en la nueva columna Details
    • Incluye: Información de socket, dirección/puerto remotos, datos de temporización, estructura del mensaje (XID, Flags, QCOUNT, etc.)
    • Se capturan las secciones DNS (QUESTION, ANSWER, AUTHORITY, ADDITIONAL) con detalles completos de los registros
    • Los nombres de dominio codificados en los bloques de detalle se convierten automáticamente al formato FQDN
  • NUEVO: Columna Details en la salida CSV
    • Contiene datos JSON estructurados para entradas PACKET con bloques de detalle
    • Vacía para entradas PACKET sin detalles y para todos los contextos que no son PACKET
    • Permite un análisis profundo de paquetes e investigación forense de consultas/respuestas DNS
  • NUEVO: Parámetro conmutador NoDetailsParsing para optimización de rendimiento
    • Omite el costoso análisis JSON de los bloques de detalle PACKET
    • Puede mejorar la velocidad de procesamiento en un 30-50% para registros con muchos bloques de detalle
    • Úsalo al procesar archivos muy grandes (100MB+) cuando no se necesite la estructura detallada del paquete
    • Los bloques de detalle siguen recogidos en la columna Information, pero la columna Details permanece vacía
  • NUEVO: Soporte de continuación multilínea para contextos que no son PACKET
    • EVENT, Note, DSPoll y otros contextos ahora pueden abarcar varias líneas
    • Las líneas de continuación indentadas se unen automáticamente al campo Information del registro principal
    • Preserva mensajes de error completos, actualizaciones de zona y salida diagnóstica
  • NUEVO: ContextFilter reconoce tipos de contexto adicionales: DSPoll, Init, Lookup, Recurse, Remote, Tombstone
    • Efecto: Convert-DNSDebugLogFile ahora puede incluir/excluir estas entradas diagnósticas y de ciclo de vida mediante -ContextFilter
  • NUEVO: La salida de estadísticas ahora incluye dos archivos dedicados
    • _Statistic.csv: Conteos diarios de registros por tipo de contexto (Date, Context, Count, ComputerName)
    • _PacketStatistic.csv: Conteos diarios de PACKET por cliente/protocolo/dirección/tipo (Date, ClientIP, Protocol, Direction, QuestionType, Count, ComputerName)
    • Beneficio: Informes más enfocados (volumen de contexto operativo vs. desglose del tráfico DNS)
  • La generación de JSON para bloques de detalle PACKET está optimizada para rendimiento (análisis manual en lugar de regex)

Cambiado

  • CAMBIO IMPORTANTE: La salida CSV ahora incluye 18 columnas (se añadió la columna Details antes de ComputerName)
    • Nuevo orden de columnas: DateTime, ThreadId, Context, PacketId, Protocol, Direction, ClientIP, Xid, Type, Opcode, FlagsHex, FlagsChar, ResponseCode, QuestionType, QuestionName, Information, Details, ComputerName
    • Impacto: Los scripts que dependen de posiciones de columna deben actualizarse
    • Beneficio: Capacidades avanzadas de análisis de paquetes sin cambiar el comportamiento existente de la columna Information
  • El procesamiento de líneas de datos fue refactorizado para leer todas las líneas en memoria y detectar registros multilínea eficientemente
    • Rendimiento: Impacto mínimo gracias al uso optimizado de List
    • Beneficio: Permite una anticipación precisa para bloques de detalle y líneas de continuación
  • Los nombres de preguntas que faltan o están codificados como vacíos ahora se manejan sin errores de análisis; la salida CSV contendrá un campo QuestionName vacío cuando no esté presente

Mejorado

  • El análisis de Convert-DNSDebugLogFile es más resistente: validación más estricta de líneas y extracción mejorada reducen filas espurias/inválidas de registros malformados mientras se preserva el formato CSV/estadístico
  • La detección del contexto PACKET distingue entre consultas simples y consultas con bloques de detalle
  • Las líneas vacías después de entradas PACKET sin detalles se omiten correctamente
  • La decodificación de nombres de dominio en bloques de detalle usa la función existente ConvertTo-Fqdn para mayor consistencia

Rendimiento

  • Velocidad de procesamiento mantenida para registros sin bloques de detalle
  • El conmutador NoDetailsParsing ofrece una mejora de velocidad del 30-50% cuando no se necesita análisis JSON
  • Gestión eficiente del estado durante el procesamiento de registros multilínea
  • Operaciones de cadena optimizadas (TrimStart, Join) en lugar de regex para manejo de líneas de continuación

Notas

  • Estos cambios están diseñados para ser compatibles hacia atrás en el uso normal. Si dependes de un conjunto exacto de nombres de contexto o del comportamiento de análisis previamente estricto, valida tus scripts posteriores
  • La nueva columna Details siempre está presente en la salida CSV; usa NoDetailsParsing para mantenerla vacía y mejorar el rendimiento
  • Los scripts existentes que analizan CSV por posición de columna deben tener en cuenta la nueva columna Details (posición 17, antes de ComputerName)