109.4 Configurar DNS cliente
Resumo Conciso
Processo de resolução de nomes
- Programa chama função da biblioteca C (ex:
gethostbyname) - Lê
/etc/nsswitch.confpara determinar a ordem de pesquisa - Pesquisa pelas fontes especificadas (ficheiros locais, DNS, etc.)
- Retorna resultado ao processo chamador
/etc/nsswitch.conf — Ordem de resolução
hosts: files dns [!UNAVAIL=return]files→ pesquisa em/etc/hostsdns→ pesquisa em servidores DNS configurados em/etc/resolv.conf[!UNAVAIL=return]→ se DNS disponível, para (não tenta próxima fonte)
/etc/resolv.conf — Configuração DNS
| Opção | Função | Exemplo |
|---|---|---|
nameserver | Endereço IP do servidor DNS (até 3) | nameserver 8.8.8.8 |
domain | Domínio local | domain mydomain.org |
search | Domínios para pesquisa curta (até 6) | search mydomain.net mydomain.com |
options | Opções do resolvedor | options timeout:3 |
/etc/hosts — Resolução local
127.0.0.1 localhost127.0.1.1 proxy::1 localhost ip6-localhost ip6-loopback10.0.0.1 gateway.lpi.org gateway gw- Formato:
<IP> <nome> [alias1] [alias2] ... - Suporta IPv4 e IPv6
Ferramentas de consulta DNS
| Comando | Função | Exemplo |
|---|---|---|
getent hosts <nome> | Resolve via nsswitch.conf | getent hosts dns1.lpi.org |
getent -s dns hosts <nome> | Força fonte DNS | getent -s dns hosts learning.lpi.org |
host <nome> | Consulta simples (A, AAAA, MX) | host wikipedia.org |
host -t NS <domínio> | Consulta tipo específico | host -t NS lpi.org |
host <nome> <server> | Consulta servidor específico | host -t MX lpi.org dns1.easydns.com |
dig <nome> | Consulta detalhada | dig learning.lpi.org |
dig +short <nome> | Saída reduzida | dig +short lpi.org |
dig -t SOA <domínio> | Consulta SOA | dig -t SOA lpi.org |
dig +nocookie -t MX <domínio> | Consulta sem cookie EDNS | dig +nocookie -t MX lpi.org |
systemd-resolved
- Serviço do systemd que fornece mDNS, DNS e LLMNR
- Escuta em
127.0.0.53 - Não é servidor DNS completo — encaminha para servidores em
/etc/resolv.conf - Para usar: linha
hosts: ... resolve ...em/etc/nsswitch.conf
Classes de registro DNS
| Classe | Descrição |
|---|---|
| IN | Internet (TCP/IP) — a mais comum |
| CH | ChaosNet (obsoleto) |
| HS | Hesiod |
Diferenças entre getent, host e dig
| Ferramenta | Usa resolução local | Consulta DNS direta | Uso ideal |
|---|---|---|---|
getent | Sim | Não | Testar nsswitch.conf |
host | Não | Sim | Consultas simples |
dig | Não | Sim | Diagnóstico detalhado |
Exercícios Exploratórios
Exercício Exploratório 1 — resolv.conf editado manualmente
Enunciado: Se /etc/resolv.conf gerado pelo NetworkManager for editado manualmente, o que acontece?
As alterações serão sobrescritas pelo NetworkManager. O ficheiro contém o comentário # Generated by NetworkManager, indicando que edições manuais não persistirão.
Exercício Exploratório 2 — Interpretação de nsswitch.conf
Enunciado: O que significa hosts: files [SUCCESS=continue] dns em /etc/nsswitch.conf?
Pesquisas por nomes de host verificam primeiro /etc/hosts e depois o DNS. O [SUCCESS=continue] significa que, mesmo se uma entrada for encontrada nos ficheiros locais, o DNS também é consultado — mas o primeiro resultado bem-sucedido (o dos ficheiros locais) é o devolvido; o DNS não é "preferido", é apenas consultado adicionalmente.
Exercício Exploratório 3 — DNS não funciona
Enunciado: Por que o sistema não resolve nomes se /etc/resolv.conf tem:
search lpi.org#nameserver fd00:ffff::1:53#nameserver 10.0.1.53Ambos os servidores DNS estão comentados (com #). Não há nenhum nameserver ativo, e nenhum servidor DNS local em execução. O resolvedor não tem para onde enviar consultas.
Exercício Exploratório 4 — Saída do dig com filtros
Enunciado: O que faz o comando dig +noall +answer +question lpi.org?
Pesquisa o registro A de lpi.org e exibe apenas a seção de consulta e a resposta, suprimindo todas as outras seções de saída.
Exercício Exploratório 5 — Defaults do dig
Enunciado: Como passar por cima dos padrões do dig sem especificá-los na linha de comando?
Criando um ficheiro .digrc no directório home do utilizador, com as opções desejadas.