Consultas DNS Linux: nslookup

08/02/2023 · Servidores Linux · por webmaster
Por vezes precisamos realizar consultas DNS utilizando um terminal Linux e ficamos perdidos. Nesse momento, lembre-se: NSLOOKUP pode salvar vidas… ou tempo!

O que é o comando NSLOOKUP?

Podemos definir o comando nslookup como uma ferramenta para auxílio na administração de redes (aqui entra o lado web hosting da força) com consultas ao Domain Name Server (DNS) a fim de agilizar a correção de problemas potencialmente ligados à resolução de nomes de domínio.

Caso da vida real

Você precisa consultar os registros DNS de um domínio a fim de obter informações precisas sobre os registros atuais que são reconhecidos mundialmente. Em algum momento, você deseja consultar um DNS específico (interno ou externo a seu ambiente) desejando saber quais registros ele reconhece.

Vamos começar do começo.

Por padrão, quando instalamos um servidor com Linux o comando nslookup já vem pré-instalado. Caso seu servidor não possua o comando, utilize o comando abaixo para realizar a instalação dele:

### Ubuntu
# apt-get install nslookup

### centOS
# yum install nslookup

Qual a sintaxe básica do comando?

nslookup [-option]  

### Nessa postagem, vou utilizar um servidor centOS para executar os comandos.

Primeira consulta: Quero consultar o IP do domínio sierti.com.br utilizando o DNS configurado localmente me meu servidor (a configuração é feita em /etc/resolv.conf)

# nslookup sierti.com.br
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
Name: sierti.com.br
Address: 191.252.109.142

Preciso saber qual o endereço MX configurado em meu domínio
# nslookup -query=MX sierti.com.br
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
sierti.com.br mail exchanger = 0 m01.sierti.com.br.

Ok, e os registros TXT responsáveis pelo SPF?
# nslookup -query=TXT sierti.com.br
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
sierti.com.br text = "amazonses:F0flDD+1UmSfgp6k/i/RwUS2HI2qICNWpj174p6f2ds="
sierti.com.br text = "v=spf1 ip4:108.61.35.157 +a +mx +ip4:162.248.246.77 +include:spf.sierti.com.br ~all"

Existe alguma configuração DKIM utilizando o seletor default?

Acredito que não, hein!

# nslookup -query=TXT default._domainkey.sierti.com.br
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
*** Can't find default._domainkey.sierti.com.br: No answer

E se eu quiser saber quais são os servidores DNS responsáveis por meu domínio?
# nslookup -query=NS sierti.com.br
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
sierti.com.br nameserver = alla.ns.cloudflare.com.
sierti.com.br nameserver = ed.ns.cloudflare.com.

É importante saber seus registros SOA
# nslookup -query=SOA sierti.com.br
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
sierti.com.br
origin = alla.ns.cloudflare.com
mail addr = dns.cloudflare.com
serial = 2025190932
refresh = 10000
retry = 2400
expire = 604800
minimum = 3600

 

Em dúvida sobre o resultado?


  • serial - uma espécie de sistema de numeração de revisão do registro;

  • refresh - especifica quando o DNS secundário vai sondar o principal para ver se o número de série foi aumentado. Se aumentado, secundário vai fazer um novo pedido para copiar o novo arquivo de zona. Esse tempo é medido em segundos;

  • retry - Este é o tempo em que o DNS vai reconectar ao primário;

  • expire - Este é o tempo que o DNS secundário vai manter o arquivo de zona em cache como válido;

  • minimun - Tempo mínio em que o DNS secundário deve armazenar em cache o arquivo de zona.

 

E se eu quiser saber qual o endereço reverso configurado pelo DataCenter para o IP do meu servidor?

# nslookup 191.252.109.142
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
142.109.252.191.in-addr.arpa name = vps2325.publiccloud.com.br.

Agora, quero consultar um servidor DNS específico, como exemplo escolhi o DNS OpenDNS (208.67.222.222)

Nesse caso, basta acrescentar o IP do servidor OpenDNS ao final do comando. Veja:

# nslookup sierti.com.br 208.67.222.222
# nslookup -query=MX sierti.com.br 208.67.222.222
# nslookup -query=TXT sierti.com.br 208.67.222.222
# nslookup -query=TXT default._domainkey.sierti.com.br 208.67.222.222
# nslookup -query=NS sierti.com.br 208.67.222.222

Certo, como eu poderia definir a sintaxe rápida do comando nslookup?
# nslookup -query=TIPO seudominio.com.br IP.DO.SERVIDOR.DESEJADO

Esta é apenas a “ponta do iceberg”, sinta-se a vontade para consultar a página de manual do comando nslookup (# man nslookup);

Referência: centOS, nslookup