Consultas DNS Linux: nslookup

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] [name | -] [server]

### 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)
[root@server01 ~]# 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
[root@server01 ~]# 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?
[root@server01 ~]# 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!

[root@server01 ~]# 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?
[root@server01 ~]# 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
[root@server01 ~]# 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?
[root@server01 ~]# 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