Como verificar se um servidor DNS está configurado no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se um servidor DNS está configurado no seu sistema Linux. Exploraremos o arquivo de configuração principal /etc/resolv.conf para identificar os servidores DNS configurados.

Em seguida, você usará o comando nslookup para testar a resolução DNS e verificar se seu sistema pode traduzir com sucesso nomes de domínio em endereços IP. Finalmente, inspecionaremos o arquivo de configuração systemd-resolved /etc/systemd/resolved.conf para entender como o serviço de resolução DNS local está configurado.

Verificar DNS com cat /etc/resolv.conf

Nesta etapa, começaremos analisando como seu sistema Linux encontra websites e serviços na internet. Esse processo é chamado de resolução DNS (DNS resolution), e é gerenciado por um serviço que traduz nomes de domínio legíveis por humanos (como google.com) em endereços IP legíveis por computadores (como 172.217.160.142).

O arquivo de configuração principal para resolução DNS em muitos sistemas Linux é /etc/resolv.conf. Este arquivo informa ao seu sistema quais servidores DNS usar.

Vamos visualizar o conteúdo deste arquivo usando o comando cat. O comando cat é uma ferramenta simples, mas poderosa, usada para exibir o conteúdo de arquivos.

Abra seu terminal, caso ainda não esteja aberto. Você pode encontrar o ícone do Xfce Terminal no lado esquerdo da sua área de trabalho.

Agora, digite o seguinte comando e pressione Enter:

cat /etc/resolv.conf

Você deve ver uma saída semelhante a esta:

## This is /run/systemd/resolve/stub-resolv.conf.
## Handled by systemd-resolved(8).
## DNS servers configured in /etc/systemd/resolved.conf.
nameserver 127.0.0.53
options edns0 trust-ad

Vamos analisar a saída:

  • Linhas que começam com # são comentários e são ignoradas pelo sistema.
  • nameserver 127.0.0.53: Esta linha é a mais importante aqui. Ela especifica o endereço IP do servidor DNS que seu sistema usará. Neste caso, 127.0.0.53 é um endereço IP especial que aponta para um serviço de resolução DNS local, frequentemente o systemd-resolved, que analisaremos mais tarde. Este resolvedor local então encaminha suas solicitações DNS para servidores DNS externos.
  • options edns0 trust-ad: Estas são opções relacionadas a consultas DNS. edns0 é um mecanismo de extensão para DNS, e trust-ad está relacionado ao DNSSEC (DNS Security Extensions). Você não precisa se preocupar com essas opções por enquanto.

Compreender /etc/resolv.conf é o primeiro passo na solução de problemas de conectividade de rede relacionados ao DNS. Se este arquivo estiver ausente ou contiver informações incorretas, seu sistema pode não ser capaz de resolver nomes de domínio.

Clique em Continuar para prosseguir para a próxima etapa.

Testar a resolução DNS com nslookup

Na etapa anterior, analisamos o arquivo /etc/resolv.conf, que informa ao seu sistema onde encontrar os servidores DNS. Agora, vamos testar ativamente se seu sistema pode resolver um nome de domínio usando o comando nslookup.

nslookup é um utilitário de linha de comando para consultar o Sistema de Nomes de Domínio (DNS) para obter o mapeamento de nome de domínio ou endereço IP ou para qualquer outro registro DNS específico. É uma ferramenta fundamental para a solução de problemas de rede.

Vamos usar nslookup para encontrar o endereço IP para example.com. Digite o seguinte comando no seu terminal e pressione Enter:

nslookup example.com

Você deve ver uma saída semelhante a esta:

Server:  127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
Name: example.com
Address: 93.184.216.34

Vamos analisar esta saída:

  • Server: 127.0.0.53: Isso mostra o endereço IP do servidor DNS que o nslookup usou para a consulta. Como vimos na etapa anterior, este é o resolvedor local especificado em /etc/resolv.conf.
  • Address: 127.0.0.53#53: Este é o endereço IP e o número da porta do servidor DNS. DNS normalmente usa a porta 53.
  • Non-authoritative answer:: Isso indica que a resposta veio de um servidor DNS de cache, não do servidor autoritativo para example.com.
  • Name: example.com: Este é o nome de domínio que você consultou.
  • Address: 93.184.216.34: Este é o endereço IP que o servidor DNS retornou para example.com. Este é o endereço ao qual seu computador se conectaria quando você tenta visitar example.com.

Se nslookup retornar um endereço IP, significa que seu sistema resolveu com sucesso o nome de domínio. Se falhar, você poderá ver uma mensagem de erro indicando um problema com a resolução DNS.

Você também pode tentar resolver outros nomes de domínio, como google.com ou labex.io.

nslookup google.com

A saída mostrará os endereços IP associados a google.com. Observe que um único nome de domínio pode ter vários endereços IP.

Este comando é inestimável para verificar se sua configuração DNS está funcionando corretamente e para encontrar os endereços IP de nomes de domínio específicos.

Clique em Continuar para passar para a próxima etapa.

Inspecionar a configuração resolvida com cat /etc/systemd/resolved.conf

Nas etapas anteriores, vimos que /etc/resolv.conf frequentemente aponta para um endereço local (127.0.0.53), que é gerenciado pelo systemd-resolved. Este serviço faz parte do gerenciador de sistema e serviços systemd e fornece resolução de nomes de rede para aplicativos locais.

A configuração para systemd-resolved geralmente é encontrada no arquivo /etc/systemd/resolved.conf. Vamos inspecionar este arquivo para ver como o resolvedor local está configurado.

Use o comando cat novamente para visualizar o conteúdo de /etc/systemd/resolved.conf. Digite o seguinte comando no seu terminal e pressione Enter:

cat /etc/systemd/resolved.conf

Você deve ver uma saída semelhante a esta:

##  This file is part of systemd.
#
##  systemd is free software; you can redistribute it and/or modify it
##  under the terms of the GNU Lesser General Public License as published by
##  the Free Software Foundation; either version 2.1 of the License, or
##  (at your option) any later version.
#
## Entries in this file show the compile time defaults. Local configuration
## should be placed in a file located in /etc/systemd/resolved.conf.d/.
## See resolved.conf(5) for details.

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#DNSSEC=no
#DNSOverTLS=no
#MulticastDNS=yes
#LLMNR=yes
#Cache=yes
#DNSStubListener=yes
#ReadEtcHosts=yes

Vamos analisar as partes principais deste arquivo:

  • O arquivo começa com comentários explicando seu propósito e licenciamento.
  • [Resolve]: Isso marca o início da seção de configuração principal para resolução de nomes.
  • DNS=: Esta linha comentada é onde você normalmente listaria os endereços IP dos servidores DNS upstream que o systemd-resolved deve usar. Como está comentada, o systemd-resolved provavelmente está obtendo suas informações do servidor DNS de outra fonte, como sua configuração de rede (por exemplo, DHCP).
  • FallbackDNS=: Esta linha comentada permite que você especifique servidores DNS de fallback que serão usados se os principais listados em DNS= estiverem inacessíveis.
  • Outras opções comentadas controlam vários aspectos do comportamento do systemd-resolved, como validação DNSSEC, DNS over TLS, cache e suporte para Multicast DNS (mDNS) e Link-Local Multicast Name Resolution (LLMNR).

Neste ambiente, os servidores DNS reais em uso provavelmente são fornecidos pela infraestrutura de rede subjacente (o ambiente do contêiner Docker). O systemd-resolved atua como um cache local e encaminhador.

Compreender /etc/systemd/resolved.conf é importante para configuração e solução de problemas avançados de DNS em sistemas que usam systemd-resolved.

Você agora inspecionou com sucesso os principais arquivos de configuração relacionados à resolução DNS neste sistema Linux.

Clique em Continuar para concluir este laboratório.

Resumo

Neste laboratório, aprendemos como verificar a configuração do servidor DNS em um sistema Linux. Começamos examinando o arquivo /etc/resolv.conf usando o comando cat, que é o arquivo de configuração principal que especifica os servidores DNS usados pelo sistema. Entendemos que as linhas que começam com # são comentários e a linha nameserver indica o endereço IP do servidor DNS, frequentemente um resolvedor local como 127.0.0.53, que é gerenciado pelo systemd-resolved.

Em seguida, testamos a resolução DNS usando o comando nslookup para verificar se o servidor DNS configurado pode traduzir com sucesso nomes de domínio em endereços IP. Finalmente, inspecionamos a configuração do serviço systemd-resolved visualizando o arquivo /etc/systemd/resolved.conf com cat, que fornece mais detalhes sobre como o resolvedor DNS local é configurado e encaminha as solicitações para servidores DNS externos. Essas etapas fornecem uma compreensão fundamental de como o DNS é configurado e testado no Linux.