Domain name resolution (Português)
Em geral, um nome de domínio representa um endereço IP e está associado a ele no Sistema de Nomes de Domínio, ou Domain Name System (DNS). Esse artigo explica como para configurar resolução de nome de domínio e resolver nomes de domínio.
Contents
Name Service Switch
- "NSS (Português)" redireciona para cá. Para as bibliotecas criptográficas da Mozilla, veja Network Security Services.
O recurso Name Service Switch (NSS) é parte da biblioteca C do GNU (glibc) e apoia a API getaddrinfo(3), usada para resolver nomes de domínio. O NSS permite que bancos de dados do sistema sejam fornecidos por serviços separados, cuja ordem de pesquisa pode ser configurada pelo administrador no nsswitch.conf(5). O banco de dados responsável pela resolução de nomes de domínio é o banco de dados hosts
, para o qual a glibc oferece os seguintes serviços:
-
file
: lê o arquivo/etc/hosts
, veja hosts(5) -
dns
: o resolvedor do glibc que lê/etc/resolv.conf
, veja resolv.conf(5)
Systemd fornece três serviços NSS para resolução de hostname:
- nss-resolve(8) - um resolvedor de tronco de DNS em cache, descrito em systemd-resolved
-
nss-myhostname(8) - fornece resolução de hostname sem ter que editar
/etc/hosts
, descrito em Configuração de rede#Resolução de hostname local - nss-mymachines(8) - fornece resolução de hostname para os nomes de contêineres locais de systemd-machined(8)
Verifique se você consegue resolver nomes de domínio
Bancos de dados NSS podem ser consultados com getent(1). Você pode resolver um nome de domínio por meio do NSS usando:
$ getent hosts nome_domínio
/etc/resolv.conf
e/ou /etc/hosts
diretamente. Veja Configuração de rede#Resolução de hostname local.Resolvedor do glibc
O resolvedor do glibc lê /etc/resolv.conf
para toda resolução para determinar os servidores de nome e opções para usar.
resolv.conf(5) lista servidores de nomes juntos com algumas opções de configuração.
Servidores de nome (nameservers) listados primeiros são tentados primeiro, até os três servidores podem ser listados. Linhas iniciando com um cerquilha (#
) são ignoradas.
Sobrescrita do /etc/resolv.conf
Gerenciadores de rede tendem a sobrescrever /etc/resolv.conf
, para particularidades veja a seção correspondente:
Para evitar que programas sobrescrevam /etc/resolv.conf
, você também pode protegê-lo contra gravação definindo o atributo de arquivo imutável:
# chattr +i /etc/resolv.conf
/etc/resolv.conf
, você pode usar resolvconf.Limitar o tempo de pesquisa
Se você for confrontado com uma consulta de hostname muito longa (seja no pacman ou enquanto navega), frequentemente ajuda a definir um pequeno tempo limite após o qual um servidor de nomes alternativo é usado. Para fazer isso, coloque o seguinte em /etc/resolv.conf
:
options timeout:1
Pesquisa de hostname atrasada com IPv6
Se você tiver um atraso de 5 segundos ao resolver os hostname, isso pode ser devido a um mau comportamento do servidor DNS/Firewall e somente dando uma resposta a uma solicitação paralela A e AAAA.[1] Você pode corrigir isso configurando a seguinte opção no /etc/resolv.conf
:
options single-request
Nomes de domínio local
Se você quiser usar o hostname de máquinas locais sem os nomes de domínio totalmente qualificados, adicione uma linha ao /etc/resolv.conf
com o domínio local, como:
domain exemplo.com.br
Dessa forma, você pode se referir a hosts locais como maquinaprincipal1.exemplo.com.brm
como simplesmente maquinaprincipal1
ao usar o comando ssh, mas o comando drill ainda requer os nomes de domínio totalmente qualificados para realizar pesquisas.
Resolvedores
O resolvedor do Glibc fornece apenas as necessidades mais básicas, não armazena em cache as consultas nem fornece nenhum recurso de segurança. Se você deseja mais funcionalidade, use outro resolvedor.
- Os utilitários de pesquisa drill ou dig relatam o tempo de consulta.
- Um roteador geralmente configura seu próprio resolvedor de cache como o servidor DNS da rede, fornecendo assim o cache DNS para toda a rede.
- Se demorar muito para mudar para o próximo servidor DNS, você pode tentar diminuir o tempo limite.
Na tabela abaixo, as colunas têm o seguinte sentido:
- Cache: Faz cache de consultas DNS para melhorar os tempos de pesquisa de solicitações idênticas subsequentes.
- Recursor: pode consultar recursivamente o nome de domínio iniciando da zona raiz do DNS.
- Compatibilidade com resolvconf: pode adquirir servidores de nomes e domínios de pesquisa, para usar solicitações de encaminhamento, de softwares que os definem usando resolvconf.
- Valida DNSSEC: valida respostas de consulta de DNS usando DNSSEC.
- DNS por TLS: tem suporte a comunicação criptografada com servidor(es) DNS upstream usando o protocolo DNS over TLS.
- DNS por HTTPS: tem suporte a comunicação criptografada com servidor(es) DNS upstream usando o protocolo DNS over HTTPS.
Resolvedor | Cache | Recursor | Compatibilidade resolvconf | Valida DNSSEC | DNS por TLS | DNS por HTTPS | Notas |
---|---|---|---|---|---|---|---|
glibc | Não | Não | openresolv | Não | Não | Não | |
BIND | Sim | Sim | se inscreve no openresolv | Sim | ? | ? | |
dnscrypt-proxy | Sim | Não | Não | Não | Não | Sim | Implementa um cliente de protocolo DNSCrypt. |
dnsmasq | Sim | Não | se inscreve no openresolv | Sim | Não | Não | |
Knot Resolver | Sim | Sim | Não | Sim | Sim | Não | |
pdnsd | Sim | Sim | se inscreve no openresolv | Não | Não | Não | |
Stubby | Não | Não | Não | Sim | Sim | Não | |
systemd-resolved | Sim | Não | systemd-resolvconf | Sim | Inseguro1 | Não | |
Unbound | Sim | Sim | se inscreve no openresolv | Sim | Sim | Não |
- Do resolved.conf(5): Note que o resolvedor não é capaz de autenticar o servidor, ele é vulnerável a ataques "man-in-the-middle". [2] Além disso, o único modo suportado é "opportunistic", o que torna o DNS-over-TLS vulnerável a ataques de "downgrade".
Privacidade
A maioria dos servidores DNS mantém um registro de endereços IP e sites visitados em uma base mais ou menos temporária. Os dados coletados podem ser usados para realizar vários estudos estatísticos. Informações de identificação pessoal têm valor e também podem ser alugadas ou vendidas a terceiros. O artigo Serviços DNS alternativos fornece uma lista de serviços populares, verifique sua política de privacidade para obter informações sobre como os dados do usuário são manipulados.
Utilitários de pesquisa
Para consultar servidores DNS específicos e registros DNS/DNSSEC, você pode usar utilitários de pesquisa de DNS dedicados. Essas ferramentas implementam o próprio DNS e não usam NSS.
Por exemplo, para consultar um servidor de nomes específico com drill por registros TXT de um domínio:
$ drill @servidor-de-nome TXT domínio
Se você não especificar um servidor DNS, drill use os servidores de nome definidos em /etc/resolv.conf
.
-
bind-tools fornece dig(1), host(1), nslookup(1) e um monte de ferramentas
dnssec-
.