Configurar o DNS no Linux (cliente) [Guia Básico]

O DNS – Domain Name System é utilizado para resolução de nomes para endereços IP e vice-versa. Neste artigo explicamos de forma simples como configurar o DNS no Linux manualmente.

A implementação do serviço de resolução de nomes é feita pelo pacote BIND ou outros pacotes de servidor de DNS. Este pacote possui os arquivos necessários à configuração do DNS e o serviço chamado named.

O DNS é estruturado sobre dois pontos básicos, a organização da Internet em domínios e a distribuição dos servidores de nomes na rede em forma de hierarquia.

A organização da Internet em domínios evita a utilização de um mesmo nome por mais de um equipamento e descentraliza o cadastro de redes e equipamentos. 

Os domínios podem ser hierarquizados por instituições e geograficamente.

A distribuição dos servidores DNS faz-se necessária uma vez que a centralização de uma única base de dados contendo as informações para a conversão dos nomes simbólicos em endereços IP seria inviável.

A própria Internet nasceu de um projeto chamado ARPANET, criado pelo Departamento de Defesa americano, que preconizava uma rede sem um backbone central e sem administração centralizada, tornando-a virtualmente indestrutível caso algum computador, ou pedaço da rede se tornasse inoperante.

Na internet existem diversos servidores raízes geograficamente espalhados e organizados através de sufixos. Por exemplo, os servidores raiz do sufixo .br ficam hospedados no registro.br. Os servidores raiz do registro.br precisam conhecer todos os servidores DNS que hospedam domínios terminados com .br.

Há 3 arquivos de configuração importantes para a resolução de nomes, já citados no livro:

  • /etc/nsswitch.conf: Este arquivo possui uma linha com o comando “hosts” que determina a ordem de busca para resolução de nomes. A tag “files” determina que o /etc/hosts seja consultado e a tag “dns” determina que o arquivo /etc/resolv.conf seja consultado para determinar o IP do servidor de DNS.
  • /etc/resolv.conf: Este arquivo possui uma linha com o comando nameserver que determina o IP do servidor de DNS;
  • /etc/hosts: Este arquivo pode conter algumas resoluções de nomes em IPs de forma manual;

Ao acessar a Internet através de um navegador ou qualquer outro aplicativo de rede, o host Linux segue a seguinte sequência para identificar o endereço IP do nome de endereço de Internet desejado:

  1. O Linux verifica o arquivo /etc/nsswitch.conf para saber a ordem de busca: se é em arquivo (/etc/hosts) ou por servidor de DNS (/etc/resolv.conf).
  2. Se a ordem em /etc/nsswitch.conf for primeiro “files“, o arquivo /etc/hosts é consultado para se tentar determinar a resolução do nome. Se a ocorrência for encontrada, o endereço IP será retornado. Caso não encontre, o host irá ler o endereço IP do servidor de DNS no arquivo /etc/resolv.conf e fará uma consulta ao servidor de DNS para tentar determinar o IP do endereço desejado. Se o servidor retornar um endereço IP, o nome será resolvido. Caso contrário, a aplicação receberá uma falha de resolução de nomes.
  3. Se a ordem em /etc/nsswitch.conf for primeiro “dns“, o arquivo /etc/resolv.conf é consultado para pegar o endereço IP do servidor de DNS e uma consulta será feita ao servidor de DNS para tentar determinar o IP do endereço desejado. Se o servidor de DNS encontrar o endereço, a aplicação receberá o IP desejado. Caso contrário, o host irá acessar o arquivo /etc/hosts para tentar determinar o IP do endereço desejado. Caso encontre, o IP será retornado. Em caso negativo a aplicação receberá uma falha de resolução de nomes.

Exemplo de configuração do /etc/nsswitch.conf

passwd:         files systemd
group:          files systemd
shadow:         files
gshadow:        files
hosts:          files dns
networks:       files

Exemplo de configuração básica do arquivo /etc/resolv.conf:

search meudominio.com.br
nameserver 10.25.12.1
nameserver 200.216.215.5

Exemplo de configuração básica do arquivo /etc/hosts:

127.0.0.1    localhost.localdomain            localhost 
10.25.12.1   www.certificacaolinux.com.br     www 

É importante que você entenda o funcionamento do processo de resolução de nomes, que os arquivos /etc/hosts, /etc/nsswitch.conf, /etc/resolv.conf regulam a configuração do cliente de DNS.

É importante saber que a ordem de resolução de nomes no arquivo /etc/nsswitch.conf afeta como a resolução de nomes se comportará. Assim que uma ocorrência de resolução de nomes é encontrada, seja no servidor de DNS ou localmente no arquivo /etc/hosts, o host se dá por satisfeito e não recorre a outro serviço.

Com isso, pode-se ter os seguintes casos de erro:

  • Pode existir um endereço listado no /etc/hosts manualmente, que difere do endereço IP que os servidores de DNS resolvem. Isso pode fazer com que o host conecte em um servidor errado, ou mesmo não consiga conectar porque o endereço IP não existe;
  • Um determinado servidor de DNS listado no /etc/resolv.conf não está ativo ou o host não consegue uma conexão com ele, impossibilitando a resolução de nomes;

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe