Consultar Registros DNS no Linux com dig e nslookup

CompTIABeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá os fundamentos de como consultar registros do Domain Name System (DNS) a partir da linha de comando em um ambiente Linux. Você utilizará duas utilidades poderosas e comuns, dig e nslookup, para realizar vários tipos de consultas DNS. Esta experiência prática é essencial para administradores de rede e engenheiros de sistemas para solucionar problemas de resolução de nomes e entender configurações de rede.

Você começará identificando o servidor DNS padrão do seu sistema examinando o arquivo /etc/resolv.conf. Em seguida, prosseguirá para realizar várias consultas DNS comuns, incluindo encontrar o endereço IP de um domínio (registro A), descobrir um nome de host a partir de um endereço IP com uma consulta reversa (registro PTR) e consultar registros de troca de e-mail (MX) para um domínio. Finalmente, você aprenderá como direcionar suas consultas para um servidor DNS público específico em vez de usar o padrão do seu sistema.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 92%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Identificar o Servidor DNS Padrão do Seu Sistema com cat

Nesta etapa, você aprenderá como identificar os servidores DNS padrão que seu sistema está configurado para usar. Servidores DNS (Domain Name System) são responsáveis por traduzir nomes de domínio legíveis por humanos (como www.google.com) em endereços IP legíveis por máquina (como 142.250.186.132). Entender quais servidores DNS seu sistema consulta por padrão é o primeiro e mais crucial passo para diagnosticar quaisquer problemas de resolução de nomes.

Na maioria dos sistemas Linux, essa configuração é armazenada em um arquivo localizado em /etc/resolv.conf. Usaremos o comando cat, uma utilidade padrão para concatenar e exibir o conteúdo de arquivos, para visualizar este arquivo.

Abra seu terminal e execute o seguinte comando para exibir o conteúdo do arquivo resolv.conf:

cat /etc/resolv.conf

Você verá uma saída semelhante à seguinte. Os endereços IP listados após a diretiva nameserver são os servidores DNS que seu sistema contatará para resolver nomes de domínio.

## Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
##     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
## 127.0.0.53 is the systemd-resolved stub resolver.
## run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
options timeout:2 attempts:3 rotate single-request-reopen

A partir da saída, você pode ver que 127.0.0.53 é o servidor DNS principal para este sistema. Quaisquer consultas DNS que você fizer sem especificar um servidor particular serão enviadas para cá por padrão. Agora que você sabe como encontrar seu servidor DNS padrão, está pronto para realizar sua primeira consulta DNS na próxima etapa.

Encontrar o Endereço IP de um Domínio (Registro A) com dig e nslookup

Nesta etapa, você realizará uma consulta DNS direta padrão, que é o processo de resolver um nome de domínio para um endereço IP. Esta é uma das funções mais comuns do DNS. O tipo específico de registro que mapeia um nome de domínio para um endereço IPv4 é chamado de registro A. Usaremos duas ferramentas populares de linha de comando para esta tarefa: nslookup e dig.

Primeiro, você precisa garantir que essas ferramentas estejam instaladas. Elas fazem parte do pacote dnsutils em sistemas baseados em Debian, como o Ubuntu. Vamos atualizar nossa lista de pacotes e instalá-lo.

sudo apt-get update
sudo apt-get install -y dnsutils

Agora que as ferramentas estão prontas, vamos usar o nslookup (que significa "name server lookup") para encontrar o endereço IP de www.google.com.

nslookup www.google.com

A saída mostra o servidor que respondeu à consulta (o padrão da Etapa 1) e a "Non-authoritative answer" (resposta não autoritativa), que contém o(s) endereço(s) IP associado(s) a www.google.com.

Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   www.google.com
Address: 142.250.189.196
Name:   www.google.com
Address: 2607:f8b0:4005:80d::2004

Em seguida, vamos realizar a mesma consulta usando dig (Domain Information Groper). O dig é frequentemente preferido por administradores de sistema porque fornece uma saída mais detalhada e estruturada.

dig www.google.com

Examine a saída do dig. Ela é dividida em seções. A QUESTION SECTION (seção de pergunta) mostra o que você solicitou (um registro A para www.google.com). A ANSWER SECTION (seção de resposta) fornece o resultado, incluindo o endereço IP e o valor TTL (Time To Live), que indica por quanto tempo um resolvedor pode armazenar essas informações em cache.

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5247
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.google.com.                        IN      A

;; ANSWER SECTION:
www.google.com.         7       IN      A       142.251.46.196

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jul 14 14:55:18 CST 2025
;; MSG SIZE  rcvd: 59

Ao comparar as duas saídas, você pode ver que, embora ambas as ferramentas alcancem o mesmo objetivo, o dig oferece uma visão muito mais abrangente da resposta DNS.

Encontrar um Hostname a partir de um Endereço IP (Registro PTR) com dig -x

Nesta etapa, você realizará uma consulta DNS reversa. Enquanto uma consulta direta resolve um nome de domínio para um endereço IP, uma consulta reversa faz o oposto: encontra o nome de host associado a um determinado endereço IP. Este processo depende de um tipo especial de registro DNS chamado registro PTR (Pointer). Consultas reversas são comumente usadas por servidores de e-mail para verificar a identidade do remetente e em solução de problemas de rede para identificar a origem do tráfego.

Usaremos um dos endereços IP de www.google.com que você descobriu na etapa anterior. Vamos usar 142.251.46.196 como nosso exemplo.

Primeiro, vamos tentar uma consulta reversa com nslookup, que você já conhece. Simplesmente forneça o endereço IP como argumento:

nslookup 142.251.46.196

A saída mostrará o name (nome) associado ao endereço IP, que é armazenado em um domínio especial in-addr.arpa usado para DNS reverso.

196.46.251.142.in-addr.arpa     name = nuq04s45-in-f4.1e100.net.

Authoritative answers can be found from:

Agora, vamos realizar a mesma consulta reversa usando dig. O comando dig usa a opção -x para especificar uma consulta reversa. Este é um atalho conveniente que formata a consulta corretamente para você.

dig -x 142.251.46.196

Observe a saída. Na ANSWER SECTION (seção de resposta), você encontrará o registro PTR que mapeia o endereço IP de volta para seu nome de host. Note como a QUESTION SECTION (seção de pergunta) mostra o endereço IP invertido e com .in-addr.arpa anexado, que é o formato padrão para consultas DNS reversas IPv4.

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> -x 142.251.46.196
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46896
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;196.46.251.142.in-addr.arpa.   IN      PTR

;; ANSWER SECTION:
196.46.251.142.in-addr.arpa. 10 IN      PTR     nuq04s45-in-f4.1e100.net.

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jul 14 14:56:11 CST 2025
;; MSG SIZE  rcvd: 94

Você agora usou com sucesso tanto nslookup quanto dig para realizar uma consulta DNS reversa, traduzindo um endereço IP de volta para um nome de host.

Consultar Registros de Troca de E-mail (MX) para um Domínio com dig

Nesta etapa, você aprenderá como consultar outro tipo importante de registro DNS: o registro Mail Exchange (MX). Os registros MX são essenciais para a entrega de e-mail. Eles especificam quais servidores de e-mail são responsáveis por aceitar mensagens de e-mail em nome de um domínio. Quando você envia um e-mail para user@example.com, seu servidor de e-mail primeiro realiza uma consulta DNS para os registros MX de example.com para descobrir para onde enviar a mensagem.

Continuaremos usando o comando dig para consultar os registros MX para o domínio google.com. Para fazer isso, você especifica o nome do domínio seguido pelo tipo de registro (MX).

No seu terminal, execute o seguinte comando:

dig google.com MX

A saída será semelhante ao que você viu antes, mas a ANSWER SECTION (seção de resposta) agora conterá registros MX em vez de registros A.

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> google.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45070
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com.                    IN      MX

;; ANSWER SECTION:
google.com.             10      IN      MX      10 smtp.google.com.

;; Query time: 12 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jul 14 14:56:29 CST 2025
;; MSG SIZE  rcvd: 60

Note o número (10) antes do nome de host do servidor de e-mail na ANSWER SECTION. Este é o valor de preferência ou prioridade. Servidores de e-mail tentarão entregar o e-mail ao servidor com o menor número de prioridade primeiro. Se esse servidor estiver indisponível, eles tentarão o próximo menor, e assim por diante. Isso fornece um sistema de servidores de e-mail primários e de backup.

Consultar um Servidor DNS Público Específico com dig @<servidor>

Nesta etapa final, você aprenderá como contornar o servidor DNS padrão do seu sistema e enviar uma consulta diretamente para um servidor DNS público específico. Esta é uma técnica extremamente útil para solução de problemas. Por exemplo, se você não consegue resolver um domínio usando seu servidor padrão, pode consultar um servidor público confiável como o do Google (8.8.8.8) ou o da Cloudflare (1.1.1.1) para determinar se o problema está na sua configuração local ou em um problema mais generalizado.

O comando dig facilita isso. Você pode especificar o servidor DNS que deseja usar prefixando seu endereço IP com um símbolo @.

Vamos consultar o servidor DNS público do Google em 8.8.8.8 para encontrar o endereço IP de www.cloudflare.com.

dig @8.8.8.8 www.cloudflare.com

Agora, examine cuidadosamente a saída. Preste muita atenção à linha SERVER perto do final. Ela deve mostrar 8.8.8.8#53, confirmando que sua consulta foi enviada e respondida pelo servidor DNS do Google, e não pelo servidor padrão do seu sistema (127.0.0.53 da Etapa 1).

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> @8.8.8.8 www.cloudflare.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62439
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.cloudflare.com.            IN      A

;; ANSWER SECTION:
www.cloudflare.com.     300     IN      A       104.16.123.96
www.cloudflare.com.     300     IN      A       104.16.124.96

;; Query time: 16 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
;; WHEN: Mon Jul 14 14:56:45 CST 2025
;; MSG SIZE  rcvd: 79

Você direcionou com sucesso uma consulta DNS para um servidor específico, uma habilidade poderosa para diagnosticar problemas de rede e de resolução de nomes. Isso conclui o laboratório sobre o uso de nslookup e dig para consultas DNS do lado do cliente.

Resumo

Neste laboratório, você aprendeu a realizar consultas DNS essenciais em um sistema Linux. Você começou identificando o servidor DNS padrão do seu sistema examinando o arquivo /etc/resolv.conf com o comando cat. Em seguida, utilizou as ferramentas dig e nslookup para realizar uma consulta direta padrão, resolvendo um nome de domínio para seu endereço IP correspondente (registro A).

Você então explorou consultas mais avançadas, incluindo consultas reversas para encontrar um nome de host a partir de um endereço IP (registro PTR) usando dig -x, e como recuperar os registros de troca de e-mail (MX) de um domínio. Finalmente, você aprendeu a contornar as configurações padrão do sistema direcionando sua consulta DNS para um servidor público específico usando a sintaxe dig @<server>, uma habilidade crítica para solucionar problemas e testar a resolução de nomes.