O que faz
Você descreve a consulta; a página escreve a linha de comando do dig. Quatro grupos de controles correspondem às quatro coisas que uma invocação do dig diz:
- O que consultar: um nome e um tipo de registro (A por padrão, qualquer mnemônico do registro da IANA,
TYPEnn, ou os tipos de consulta ANY, AXFR e IXFR com o serial que você tem), uma classe (IN por padrão; CH e HS), ou um endereço para uma consulta reversa com-x, caso em que o dig deriva o nome PTR sozinho e o nome, o tipo e a classe não são escritos. - A quem perguntar: o servidor (
@servidor, um nome de host ou um endereço IPv4 ou IPv6 sem colchetes), uma porta fora do padrão (-p), o transporte (UDP,+tcp,+tls,+httpscom o seu endpoint), uma família de endereços (-4,-6) e um endereço de origem (-b). - Como perguntar:
+trace,+nssearch,+norecurse,+dnssec,+cd,+ignore; os controles de EDNS+bufsize,+subnet,+nsid,+nocookie,+noedns; e os tempos+timeout,+tries,+retry. - O que imprimir: a mensagem inteira,
+short(com+identify),+noall +answer, ou+yaml; mais+multiline,+ttlunitse+qr. - Na sua máquina:
-k arquivopara uma consulta assinada e-rpara ignorar o~/.digrc.
Três coisas voltam: o comando, numa ordem canônica, com um botão Copiar; os achados, onde uma combinação é contraditória, redundante ou provável de surpreender; e um resumo do que a consulta vai carregar, derivado dos padrões e interações que o manual declara: a pergunta que o dig vai pôr na mensagem, a quais servidores pergunta, o transporte e a porta depois dos padrões por tipo, se uma resposta UDP truncada é tentada de novo por TCP, e os bits RD, DO, CD e AD, o registro OPT do EDNS e o tamanho do buffer, o cookie, e se a consulta é assinada. Cada parte é explicada embaixo.
A ordem do comando
O dig lê a linha inteira e não se importa muito com a ordem, com duas exceções que o manual declara: as opções de consulta (as palavras com +) são sensíveis à ordem, e +short e +cmd são globais. O montador escreve uma ordem fixa para que a mesma intenção dê sempre os mesmos bytes: dig, @servidor, as opções (-r, -4/-6, -b, -p, -k), a pergunta (-x endereço, ou o nome, depois o tipo, depois a classe), e então as opções de consulta agrupadas em transporte, modo, bits do header, EDNS, tempos, saída. +noall é sempre escrito antes de +answer, porque eles se aplicam em sequência.
Os padrões não são escritos: tipo A, classe IN, porta 53 (853 para TLS, 443 para HTTPS), UDP. Um nome que também é mnemônico de tipo ou de classe (o domínio de topo ch, um host chamado literalmente mx) é escrito com -q, porque o dig lê as palavras soltas como tipos e classes antes de nomes; a nota do próprio manual sobre os domínios de topo IN e CH é a razão de a opção existir.
O que os achados verificam
Cada regra aponta para a frase do manual ou da RFC que a justifica:
+traceliga+dnssece+cookiee desliga a recursão;@servidorentão afeta só a consulta inicial pelos servidores da raiz. Pedir+dnssecou+norecursejunto é sinalizado como redundante, e a nota sobre o servidor é mostrada.+nssearchtambém desliga a recursão.- O tipo ANY e
ixfr=Nusam TCP por padrão; AXFR sempre usa TCP, e uma transferência sem@servidoriria para os resolvers do/etc/resolv.confem vez de para um servidor que tem a zona (RFC 5936). ANY pode ter resposta mínima ou um registro HINFO sintetizado (RFC 8482). +bufsizevai de 0 a 65535; um valor abaixo de 512 é tratado como 512 por quem recebe (RFC 6891, seção 6.2.3); acima de 4096 passa do ponto de partida sugerido pela RFC 6891; o DNS Flag Day 2020 nomeia 1232 como o tamanho mínimo seguro.+bufsize=0aparece como verificação: ele anuncia um buffer UDP de EDNS de 0 bytes, que quem recebe trata como 512. Ele não restaura o padrão; o manual dá essa função ao+bufsizesem valor. O padrão do dig é 1232 bytes (DEFAULT_EDNS_BUFSIZEno código-fonte da 9.20.29). A troca de 4096 para 1232 é a entrada 5516 do CHANGES do BIND, lançada na 9.17.6 e, portanto, presente em toda versão a partir da 9.18.0; no ramo 9.16 a mesma entrada chegou aonamed, mas não ao dig, que manteve 4096 até a 9.16.50.+dnssec,+trace,+bufsize,+nside+subnetvivem no registro OPT (RFC 6891; o bit DO é a RFC 3225), então+noednsnão pode ser combinado com eles e não é escrito quando estão presentes.+subnet=0(ou um comprimento de prefixo 0) pede ao resolver que não use o seu endereço (RFC 7871).-4contra um literal IPv6 de servidor, ou-6contra um IPv4, deixa o dig sem ter para onde mandar a consulta.+timeoutabaixo de 1 e+triesigual a 0 são silenciosamente elevados a 1 pelo dig.+identifynão faz nada sem+short;+ignorenão faz nada sem UDP.- Só
-ké oferecido para TSIG. O manual manda usá-lo em vez de-y, porque-ypõe o segredo compartilhado na linha de comando, onde opse o histórico do shell o veem.
Limites
- O montador emite uma consulta por comando. O dig aceita várias consultas numa linha, cada uma com as suas opções, e um arquivo de lote com
-f; nenhum dos dois é modelado. - Ele não roda o dig, não resolve nada e não verifica se um servidor existe. O resumo é derivado das declarações do manual, não observado.
- As opções não oferecidas (
+aaonly,+besteffort,+cmd,+comments,+crypto,+domain,+ednsopt,+expire,+header-only,+keepopen,+ndots,+onesoa,+opcode,+padding,+proxy,+qid,+search,+split,+stats,+tls-cae os demais arquivos de TLS,+unknownformat,+zoneversion,-ccomo opção,-f,-F,-m,-tcomo opção,-u,-y) estão documentadas no manual; as comuns estão aqui. - Os nomes são verificados pela forma (rótulos de letras, dígitos, hifens e sublinhados, de até 63 caracteres cada, até 253 no total; um asterisco sozinho como rótulo curinga); o montador não sabe se um nome existe.
- O manual do dig lido para esta página é a documentação "latest" do BIND 9 (9.21) e, para o
+bufsize, o manual estável da 9.20.29 (lido em 2026-10-19). Versões mais antigas do dig não têm algumas opções de consulta (+tls,+https,+yamlsão recentes); o dig imprime "Invalid option" para uma palavra que não conhece.
API
O mesmo motor responde à operação /api/v1/dig-command-builder da API HTTP do site, descrita campo a campo no contrato OpenAPI da página da API, com exemplos tirados dos vetores de ouro. O contrato também diz se este site serve a API.
- Requisição. Um objeto JSON com os campos do formulário:
name,type,ixfrSerial,klass,reverse,server,port,ipv,source,transport,httpsEndpoint,bufsize,subnet,timeout,tries,retry,outputekeyfilecomo strings, e as chavestrace,nssearch,norecurse,dnssec,cd,noedns,nocookie,nsid,ignore,identify,multiline,ttlunits,qrenorccomo booleanos. - Resposta.
ok,command,parts(text,kindeexplain, o id da explicação),findings(code,severityeparams) eeffective, o que a consulta carrega. - Erros. Um achado de erro não é erro HTTP:
okvemfalse,commandvem vazio eeffectivevemnull. Um corpo que não é objeto JSON responde HTTP 400.
Desde 2026-10-19, {"name": "example.com", "bufsize": "0"} devolve o achado bufsize-default com severidade warning; antes era um info que dizia que 0 restaura o padrão.
Fontes
- BIND 9 Administrator Reference Manual, Manual Pages: dig (lido em 2026-10-04): cada opção e opção de consulta, os padrões e as interações citadas acima
- Fonte do BIND 9, bin/dig/dig.c (lido em 2026-10-04): a ordem em que uma palavra solta é tentada (ixfr=, tipo, classe, nome), e o TCP por padrão para ANY e ixfr
- RFC 1035: Domain Names - Implementation and Specification (lida em 2026-10-04): valores de TYPE e CLASS, porta 53, o limite de 512 bytes do UDP, IN-ADDR.ARPA, comprimentos de rótulo e de nome, o bit RD
- RFC 3596: DNS Extensions to Support IP Version 6 (lida em 2026-10-04): AAAA e a forma em nibbles do IP6.ARPA
- RFC 6891: Extension Mechanisms for DNS (EDNS(0)) (lida em 2026-10-04): o registro OPT, as regras de tamanho de carga, 4096 como ponto de partida
- RFC 3225: Indicating Resolver Support of DNSSEC (lida em 2026-10-04): o bit DO
- RFC 4034 e RFC 4035 (lidas em 2026-10-04): os tipos de registro do DNSSEC; os bits CD e AD
- RFC 5936: DNS Zone Transfer Protocol (AXFR) e RFC 1995: Incremental Zone Transfer in DNS (lidas em 2026-10-04)
- RFC 8482: Providing Minimal-Sized Responses to DNS Queries That Have QTYPE=ANY (lida em 2026-10-04)
- RFC 7858: DNS over TLS e RFC 8484: DNS Queries over HTTPS (lidas em 2026-10-04)
- RFC 5001: NSID, RFC 7871: Client Subnet in DNS Queries, RFC 7873: DNS Cookies (lidas em 2026-10-04)
- IANA: Domain Name System (DNS) Parameters (lido em 2026-10-04): o registro de RR TYPEs que o campo de tipo aceita, e os códigos de opção do EDNS
- ISC, BIND 9 9.20.29 documentation, Manual Pages: dig (lido em 2026-10-19):
+bufsize[=B]define o tamanho anunciado em B bytes, de 0 a 65535;+bufsizesem valor restaura o padrão - BIND 9 source at tag v9.20.29, bin/dig/dighost.h (lido em 2026-10-19):
DEFAULT_EDNS_BUFSIZE 1232 - ISC, BIND 9.18.0 CHANGES (lido em 2026-10-19): a entrada 5516, sob a 9.17.6, muda o tamanho padrão do buffer EDNS de 4096 para 1232 bytes
- BIND 9 source at tag v9.16.50, bin/dig/include/dig/dig.h (lido em 2026-10-19):
DEFAULT_EDNS_BUFSIZE 4096, o padrão do dig no ramo 9.16 - DNS Flag Day 2020 (lido em 2026-10-04): 1232 bytes como o tamanho mínimo seguro de buffer EDNS
- RFC 5737 e RFC 3849 (lidas em 2026-10-04): as faixas de endereços de documentação usadas nos exemplos (192.0.2.0/24, 2001:db8::/32)