Domain name resolution (Português)

Status de tradução:
Esse artigo é uma tradução de
Domain name resolution
. Data da última tradução: 2020-04-07. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Artigos relacionados
Configuração de rede
Servidores DNS sobre HTTPS
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.
Name Service Switch
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)
Resolva um nome de domínio usando NSS
Bancos de dados NSS podem ser consultados com
getent(1)
. Um nome de domínio pode ser resolvido por meio do NSS usando:
$ getent hosts
nome_domínio
Nota
Enquanto a maioria dos programas resolve nomes de domínio usando NSS, alguns podem ler
/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.
Nota
O resolvedor do glibc não faz cache de consultas. Para melhorar tempo de consulta, você pode configurar um resolvedor em cache. O resolvedor do glibc também não consegue validar DNSSEC. Um resolvedor com capacidade de validar DNSSEC é necessário para ele. Veja
#Servidores DNS
para mais informações.
Sobrescrita do /etc/resolv.conf
Gerenciadores de rede
tendem a sobrescrever
/etc/resolv.conf
, para particularidades veja a seção correspondente:
dhcpcd#/etc/resolv.conf
netctl#/etc/resolv.conf
NetworkManager (Português)#/etc/resolv.conf
Para evitar que programas sobrescrevam
/etc/resolv.conf
, também é possível protegê-lo contra gravação definindo o
atributo de arquivo
imutável:
# chattr +i /etc/resolv.conf
Dica
Se você quiser que vários processos escrevam no
/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
Para ser capaz de usar o hostname de máquinas locais sem o nome de domínio totalmente qualificado, adicione uma linha ao
/etc/resolv.conf
com o domínio local, como:
domain exemplo.org
Dessa forma, você pode se referir a hosts locais como
maquinaprincipal1.exemplo.org
como simplesmente
maquinaprincipal1
ao usar o comando
ssh
, mas o comando
drill
ainda requer os nomes de domínio totalmente qualificados para realizar pesquisas.
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
.
ldns
fornece
drill(1)
, que é uma ferramenta projetada para obter informações do DNS.
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
A menos que um servidor DNS seja especificado,
drill
vai usar os servidores de nome definidos em
/etc/resolv.conf
.
bind
fornece
dig(1)
,
host(1)
,
nslookup(1)
e um monte de ferramentas
dnssec-
.
Dica
Alguns servidores DNS vêm com seus utilitários de consulta DNS. Por exemplo,
knot
tem
khost(1)
e
kdig(1)
,
Unbound
—
unbound-host(1)
.
Desempenho de resolvedor
O resolvedor do Glibc não armazena em cache as consultas. Para implementar um cache local, use
systemd-resolved
ou configure um cache local
servidor DNS
e use-o como o servidor de nome configurando
127.0.0.1
e
::1
como os servidores de nomes em
/etc/resolv.conf
ou em
/etc/resolvconf.conf
se estiver usando
openresolv (Português)
.
Dica
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
.
Privacidade e segurança
O protocolo DNS não é criptografado e não leva em conta a confidencialidade, integridade ou autenticação, portanto, se você usar uma rede não confiável ou um ISP mal-intencionado, suas consultas DNS poderão ser interceptadas e as respostas
manipuladas
. Além disso, os servidores DNS podem realizar
redirecionamento de DNS
(
DNS hijacking
).
Você precisa confiar em seu servidor DNS para tratar suas consultas de maneira confidencial. Os servidores DNS são fornecidos por ISPs e
terceiros
. Como alternativa, você pode executar seu próprio servidor de nome recursivo, o que, no entanto, exige mais esforço. Se você usa um cliente
DHCP
em redes não confiáveis, defina os servidores de nomes estáticos para evitar o uso e a sujeição a servidores DNS arbitrários. Para proteger sua comunicação com um servidor DNS remoto, você pode usar um protocolo criptografado, como
DNS sobre TLS
(
RFC 7858
),
DNS sobre HTTPS
(
RFC 8484
) ou
DNSCrypt
, desde que o servidor upstream e seu
resolvedor
possuam suporte ao protocolo. Uma alternativa pode ser um software dedicado para criptografar e descriptografar a comunicação, tal como
stunnel
Para verificar se as respostas são realmente de
servidores de nome autoritativos
, você pode validar
DNSSEC
, desde que ambos os servidores upstream e seu
resolvedor
tenha suporte a isso.
DNS a nível de aplicativo
Esteja ciente de que alguns softwares cliente, como os principais navegadores web
[2]
[3]
, estão começando a implementar DNS sobre HTTPS. Embora a criptografia de consultas possa ser vista como um bônus, isso também significa que o software avisa sobre a configuração do resolvedor do sistema.
[4]
A
Mozilla propôs
desabilitar o DNS a nível de aplicativo se o resolvedor do sistema não puder resolver o domínio "
use-application-dns.net
". Atualmente, essa verificação está implementada apenas no
Firefox
.
This article or section needs expansion.
Reason:
Explicar por que é necessário ou quais são os benefícios de configurar DNS sobre HTTPS em navegadores web a usar um
stub resolvers
. (Discuss in
Talk:Domain name resolution
)
Configurando DNS sobre HTTPS no Firefox
Para configurar DNS sobre HTTPS no
Firefox
(com base em
[5]
):
abra
Configurações de rede
nas
Preferências
clique em
Configurações
marque
Ativar DNS sobre HTTPS
Serviços DNS de terceiros
Nota
Antes de usar um serviço DNS de terceiros, verifique sua política de privacidade para obter informações sobre como os dados do usuário são manipulados. Os dados do usuário têm valor e podem ser vendidos para outras partes.
Existem vários
serviços DNS de terceiros
disponíveis, alguns dos quais também possuem software dedicado:
dingo
— Um cliente DNS para o DNS do Google por HTTPS
https://github.com/pforemski/dingo
||
dingo-git
AUR
[
link quebrado
: package not found]
opennic-up
— Automatiza a renovação de servidores DNS com os servidores OpenNIC mais responsivos
https://github.com/kewlfft/opennic-up
||
opennic-up
AUR
This article or section needs expansion.
Reason:
Adicionar
cloudflared
? (Discuss in
Talk:Domain name resolution
)
Servidores DNS
Os servidores
DNS
podem ser
autoritativos
e
recursivos
. Se eles não forem, eles são chamados de
stub resolvers
e simplesmente encaminham todas as consultas para outro servidor de nomes recursivo. Os
stub resolvers
são normalmente usados para introduzir o cache de DNS no host ou na rede local. Observe que o mesmo também pode ser obtido com um servidor de nomes completo. Esta seção compara os servidores DNS disponíveis, para uma comparação mais detalhada, consulte o
Wikipedia:Comparison of DNS server software
.
Nome
Pacote
Capacidades
resolvconf
Protocolos suportados
Autoritativo
Recursivo
Cache
Valida
DNSSEC
DNS
DNSCrypt
DNS
por TLS
DNS
por HTTPS
dnscrypt-proxy
dnscrypt-proxy
Não
Não
Sim
Não
Não
Servidor
Resolvedor
Não
Sim
Rescached
rescached-git
AUR
Não
Não
Sim
Não
Sim
Sim
Não
Não
Limitado
1
Stubby
stubby
Não
Não
Não
Sim
Não
Servidor
Não
Resolvedor
Não
systemd-resolved
systemd
Não
Não
Sim
Sim
Sim
servidor limitado
e resolvedor
Não
Sim
Não
dnsmasq
dnsmasq
Parcial
2
Não
Sim
Sim
Sim
Sim
Não
Não
Não
BIND
bind
Sim
Sim
Sim
Sim
Sim
Sim
Não
stunnel#DNS over TLS
[
link quebrado
: seção inválida]
Não
Knot Resolver
knot-resolver
Não
Sim
Sim
Sim
Não
Sim
Não
Sim
Servidor
MaraDNS
maradns
AUR
Sim
Sim
Sim
Não
Não
Sim
Não
Não
Não
pdnsd
pdnsd
Sim
Sim
Permanente
Não
Sim
Sim
Não
Não
Não
PowerDNS Recursor
powerdns-recursor
Não
Sim
Sim
Sim
Sim
Sim
Não
Não
Não
Unbound
unbound
Parcial
Sim
Sim
Sim
Sim
Sim
Servidor
Sim
Servidor
Deadwood
maradns
AUR
?
?
?
?
?
?
?
?
?
CoreDNS
coredns
AUR
ou
coredns-bin
AUR
?
?
?
?
?
?
?
?
?
Só encaminha usando DNS por HTTPS quando Rescached em si é consultado usando DNS por HTTPS.
[6]
Do
Wikipédia
: dnsmasq tem um suporte autoritativo limitado, sendo destinado a rede interna em vez de uso público na Internet.
Servidores apenas autoritativos
Nome
Pacote
DNSSEC
Balanceamento
geográfico
gdnsd
gdnsd
Não
Sim
Knot DNS
knot
Sim
Sim
NSD
nsd
Não
Não
PowerDNS
powerdns
Sim
Sim
Encaminhamento condicional
É possível usar resolvedores de DNS específicos ao consultar nomes de domínio específicos. Isso é particularmente útil ao se conectar a uma VPN, para que as consultas à rede VPN sejam resolvidas pelo DNS da VPN, enquanto as consultas à Internet ainda serão resolvidas pelo seu resolvedor DNS padrão. Também pode ser usado em redes locais.
Para implementá-lo, você precisa usar um
resolvedor local
porque o glibc não oferece suporte a isso.
Em um ambiente dinâmico (laptops e algumas extensões de desktops), você precisa configurar seu resolvedor com base na(s) rede(s) à(s) qual(is) você está conectado. A melhor maneira de fazer isso é usar
openresolv
porque ele possui suporte a
vários assinantes
. Alguns
gerenciadores de rede
possuem suporte, seja através do openresolv, ou configurando o resolvedor diretamente.
Suporte a combinação de softwares
Suporte a usuário de openresolv
Clientes DHCP
Software
Suporte ?
dhcpcd
Desconhecido
iwd
Desconhecido
Gerenciadores de rede
Software
Suporte ?
NetworkManager
Parcial
netctl
Desconhecido
Clientes VPN
Software
Suporte ?
OpenConnect
Desconhecido
OpenVPN
Desconhecido
strongSwan
Desconhecido
WireGuard
Desconhecido
Suporte a assinante de openresolv
Software
Suporte ?
BIND
Desconhecido
dnsmasq
Sim
pdnsd
Desconhecido
powerdns-recursor
Desconhecido
Unbound
Desconhecido
Outras soluções
NetworkManager possui
suporte a encaminhamento condicional sem o openresolv
.
Nota
Embora você possa usar outras condições para encaminhamento (por exemplo, endereço de IP de origem), "encaminhamento condicional" parece ser o nome usado para a condição "domínio consultado".
Veja também
Linux Network Administrators Guide
Debian Handbook
RFC:7706
- Diminuindo o tempo de acesso a servidores raiz executando um com loopback (inglês)
Visão geral de sistema de nomes de domínio
- Diagrama sobre DNS
Serviços alternativos de DNS