Como posso resolver o nome de domínio com o sufixo “.local” para uma zona hospedada privada do Route 53?

3 minuto de leitura
0

Não consigo resolver um registro de zona hospedada privada do Amazon Route 53 com minha instância do Elastic Compute Cloud (Amazon EC2).

Breve descrição

As distribuições do sistema operacional Linux que utilizam o serviço systemd-resolved lidam com consultas de DNS por meio de um resolvedor de stub. O IP do resolvedor de stub está localizado em /etc/resolv.conf. O listener de stub DNS local não encaminha solicitações de DNS para nomes de domínio com o sufixo “.local”. A solicitação de DNS falha, apresentando o código de resposta “ServFail”, semelhante à seguinte saída:

### failed ###
ubuntu@ip-172-31-2-3:~$ dig example.local.

; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> example.local.
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 29563    ### status: SERVFAIL ###
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.local.            IN    A

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)            ### 127.0.0.53 is systemd-resolved ###
;; WHEN: Thu Jun 30 12:34:56 UTC 2022
;; MSG SIZE  rcvd: 42

### success ###
ubuntu@ip-172-31-2-3:~$ dig example.local. @172.31.0.2        ### dig to @172.31.0.2 AmazonProvidedDNS / Route 53 Resolver ###

; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> example.local. @172.31.0.2
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29352    ### status: NOERROR ###
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.local.            IN    A

;; ANSWER SECTION:
example.local.        300    IN    A    192.0.2.1

;; Query time: 4 msec
;; SERVER: 172.31.0.2#53(172.31.0.2) (UDP)            ### 172.31.0.2 is AmazonProvidedDNS / Route 53 Resolver ###
;; WHEN: Thu Jun 30 12:34:56 UTC 2022
;; MSG SIZE  rcvd: 58

Resolução

Para resolver um nome de domínio com o sufixo ".local", utilize o resolvedor externo em vez do listener de stub DNS local.

Observação: é uma prática recomendada evitar o uso do sufixo “.local” do nome de domínio porque o RFC 6762 reserva esse nome de domínio para uso exclusivo de DNS multicast.

1.    Altere o resolvedor de DNS do listener de stub DNS local para o resolvedor de DNS externo (AmazonProvidedDNS).

cd /etc/
sudo ln -sf ../run/systemd/resolve/resolv.conf

2.    Altere .conf para interromper o listener de stub DNS local.

cd /etc/systemd/
sudo cp -ip resolved.conf resolved.conf.org
sudo sed -i -e 's/#DNSStubListener=yes/DNSStubListener=no/' resolved.conf

3.    Reinicie o systemd-resolved.

sudo systemctl restart systemd-resolved

Informações relacionadas

Práticas recomendadas para o DNS do Amazon Route 53

How can I troubleshoot DNS resolution issues with my Route 53 private hosted zone? (Como posso solucionar problemas de resolução de DNS com minha zona hospedada privada do Route 53?)

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos