Domain name resolution (Português) - ArchWiki

# Domain name resolution (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Domain name resolution. Data da última tradução: 2018-09-22. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- Serviços DNS alternativos
- Configuração de rede

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

  "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

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. Veja #Resolvedores 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#resolv.conf
- netctl#resolv.conf
- NetworkManager#resolv.conf

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

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

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.

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.

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 |

1. 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.

- 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

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-`.

## Veja também

- Linux Network Administrators Guide
- Debian Handbook

Categories:

- Domain Name System (Português)
- Network configuration (Português)