109.4 Configuração de cliente DNS
Primeiro de tudo é o arquivo /etc/hosts
, é o primeiro lugar que o Linux vai tentar resolver os nomes para IP, isso numa configuração padrão, você pode mudar esse comportamento em /etc/nsswitch.conf
.
Já o arquivo principal que temos é o /etc/resolv.conf
, nele vamos poder adicionar os servidores DNS que queremos usar, bem dizer, adicionar diretamente nesse arquivo não, a menos que façamos com que o systemd-resolved não gerencie mais esse arquivo.
Opções do Nameserver | Descrição |
---|---|
nameserver | Indica qual servidor DNS vai ser consultado. |
domain | Dominio principal da máquina. |
search | Lista de domínios que o sistema vai considerar para consulta. |
stub-resolv.conf e resolv.conf
Normalmente o arquivo /etc/resolv.conf
é um link simbólico para o arquivo /run/systemd/resolve/stub-resolv.conf
no qual é criado pelo SystemD.
$ ls -lh /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Apr 2 12:32 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
Ao usar stub-resolv.conf
, os aplicativos farão solicitações DNS ao resolvedor stub DNS fornecido pelo systemd no endereço 127.0.0.53
. Este resolvedor de stub fará o proxy das solicitações de DNS para os resolvedores de DNS upstream configurados no systemd-resolve
, aplicando qualquer lógica que desejar a essas solicitações e respostas, como armazená-las em cache.
Ao usar o resolv.conf
, os aplicativos farão solicitações DNS diretamente para os resolvedores DNS "reais" (também conhecidos como upstream) configurados no systemd-resolvido. Nesse caso, o systemd-resolve
atua apenas como um "gerenciador do resolv.conf", e não como um resolvedor de DNS em si.
Comando host
O comando host
é usado para resolver nomes. A opção -t <tipo>
informa que tipo de informação nós queremos ver, isso é conhecido como DNS records.
Opções de DNS Records | Descrição |
---|---|
A | Corresponde ao endereço IPv4 do domínio. |
AAAA | Corresponde ao endereço IPv6 do domínio. |
MX | Corresponde ao servidor de e-mail do domínio. |
CNAME | Alias para o domínio, geralmente um redirecionamento de um subdomínio para outro subdominio ou domínio. |
TXT | Usado para armazenar informações baseadas em texto relacionadas ao seu domínio. Mais comumente usado para armazenar dados SPF. |
SPF | Um protocolo de validação de email usado para evitar spoofing de email. |
SRV | Significa Registro de Serviço e especifica apenas um IP, mas também uma porta. |
Alguns testes.
# Resolvendo o IP do nic.br:
$ host nic.br
nic.br has address 200.160.4.6
nic.br has IPv6 address 2001:12ff:0:4::6
nic.br mail is handled by 1 mx.nic.br.
nic.br mail is handled by 5 enqueuer.nic.br.
# Resolvendo o IP da uol.com.br:
$ host uol.com.br
uol.com.br has address 200.147.35.149
uol.com.br has IPv6 address 2804:49c:3102:401:ffff:ffff:ffff:36
uol.com.br has IPv6 address 2804:49c:3101:401:ffff:ffff:ffff:45
uol.com.br mail is handled by 10 mx.uol.com.br.
# Fazendo resolução reversa, descobrindo o nome a partir do IP:
$ host 200.160.4.6
6.4.160.200.in-addr.arpa domain name pointer nic.br.
$ host 200.147.35.149
149.35.147.200.in-addr.arpa domain name pointer 200-147-35-149-149.static.uol.com.br.
# Verificando os servidores de email do nic.br:
$ host -t mx nic.br
nic.br mail is handled by 1 mx.nic.br.
nic.br mail is handled by 5 enqueuer.nic.br.
# Verificando o IPv4:
$ host -t a nic.br
nic.br has address 200.160.4.6
# Verificando o IPv6:
$ host -t aaaa nic.br
nic.br has IPv6 address 2001:12ff:0:4::
# Verificando o TXT:
$ host -t txt nic.br
nic.br descriptive text "v=spf1 mx a:mail.nic.br -all"
Comando dig
É uma ferramenta para resolução de DNS, é a ferramenta mais completa para fazer testes, e solucionar problemas de DNS, principalmente do lado do cliente.
Opções | Descrição |
---|---|
@IP | Consulta o servidor DNS, o IP deve ser do servidor DNS. |
+short | Exibe um output mais direto, com menos informações. |
-x | Faz uma consulta reversa. |
$ dig nic.br
; <<>> DiG 9.16.1-Ubuntu <<>> nic.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62689
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;nic.br. IN A
;; ANSWER SECTION:
nic.br. 1508 IN A 200.160.4.6
;; Query time: 40 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Jun 22 16:25:59 UTC 2021
;; MSG SIZE rcvd: 51
Getent
Já foi falado anteriormente, veja aqui.
Aqui vamos ver o uso dele com hosts.
$ getent hosts www.google.com.br
2800:3f0:4001:814::2003 www.google.com.br
$ getent ahostsv4 www.google.com.br
172.217.29.227 STREAM www.google.com.br
172.217.29.227 DGRAM
172.217.29.227 RAW