DNS Debug Logging

Olá a todos,

Ultimamente tenho trabalhado em diversos problemas relacionados com DNS e em alguns deles o debug logging tradicional do serviço de DNS não foi suficiente para perceber o que se estava a passar. Neste tipo de situações, existe um log adicional que pode ser activado durante a fase de troubleshooting: o Extended DNS debug log.

Para activar o Extended DNS debug log devem acrescentar ou alterar as seguintes chaves de registo no servidor de DNS, tomando nota das alterações para mais facilmente serem revertidas assim que o teste/recolha de dados esteja completo.

 Localização da chave:

 HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters

Name: OperationsLogLevel

Type: DWORD

Value: ffffffff (8 x f´s)

Name: OperationsLogLevel2

Type: DWORD

Value: ffffffff (8 x f´s)

Name: LogFileMaxSize

Type: DWORD

Value: EE6B2800

Default Value: 1DCD6500

 Deverá reiniciar o serviço do DNS server após alterar estas chaves.

No seguinte artigo podem encontrar mais informação sobre os eventos registados após aplicar as chaves de registo OperationsLogLevel e OperationsLogLevel2:

 3.1.1.1.1 DNS Server Integer Properties

https://msdn.microsoft.com/en-us/library/cc422472(PROT.10).aspx

Em relação ao LogFileMAxSize poderá sempre activar um máximo de 4GB.

Depois de activar o Extended debug logging a informação é guardada no seguinte ficheiro:

 "%SystemRoot%\system32\dns\backup\dns.log"

 O conteúdo deste log é semelhante ao seguinte:

  "\r\nMessage logging key (for packets - other items use a subset of these fields):\r\n"

"\tField # Information Values\r\n"

"\t------- ----------- ------\r\n"

"\t 1 Date\r\n"

"\t 2 Time\r\n"

"\t 3 Thread ID\r\n"

"\t 4 Context\r\n"

"\t 5 Internal packet identifier\r\n"

"\t 6 UDP/TCP indicator\r\n"

"\t 7 Send/Receive indicator\r\n"

"\t 8 Remote IP\r\n"

"\t 9 Xid (hex)\r\n"

"\t 10 Query/Response R = Response\r\n"

"\t blank = Query\r\n"

"\t 11 Opcode Q = Standard Query\r\n"

"\t N = Notify\r\n"

"\t U = Update\r\n"

"\t ? = Unknown\r\n"

"\t 12 [ Flags (hex)\r\n"

"\t 13 Flags (char codes) A = Authoritative Answer\r\n"

"\t T = Truncated Response\r\n"

"\t D = Recursion Desired\r\n"

"\t R = Recursion Available\r\n"

"\t 14 ResponseCode ]\r\n"

"\t 15 Question Type\r\n"

"\t 16 Question Name\r\n\r\n"

Informação de Disco/Logging:

  "The disk is dangerously full.\nNo more logs will be written until disk space is freed."

"ERROR: disk full while logging, %d bytes free\n",

"GetDiskFreeSpaceExW failed %d\n",

"ERROR %d writing %d bytes to log file\n",

"DNS Server log file creation at %s\r\n",

"ERROR %d backing up log file %S to %S\n",

"ERROR %d opening log file %S\n",

"Initialized logging: level = %p, handle = %d\n",

"Error %d setting log file to %S\n",

Informação de Frames enviadas/Recebidas:

"PACKET" "TCP" "UDP" "Snd" : "Rcv"

Eventos relacionados com Cache:

"Cache locking prevented a name error response from being cached.\r\n" ));

"Cache locking prevented a record from being cached.\r\n" ));

"Domain name: %s\r\n",

"Record already in cache: cached name error\r\n" );

"Record already in cache: type %u",

"Total cache time (seconds): %u\r\n"

"Cache time already passed (seconds): %u\r\n",

"Detail about record locked in cache:\n",

 Na maioria das situações este log será mais útil se for recolhido em conjunto com uma captura de rede e com o DNS Debug Log tradicional, que poderá ser activado da seguinte forma:

 https://technet.microsoft.com/en-us/library/cc776361(WS.10).aspx

Sérgio