Como posso resolver o nome de domínio com o sufixo “.local” para uma zona hospedada privada do Route 53?
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?)
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano