Non riesco a risolvere un record di zona ospitata privata di Amazon Route 53 con la mia istanza Amazon EC2 (Amazon Elastic Compute Cloud).
Breve descrizione
Le distribuzioni del sistema operativo Linux che utilizzano il servizio systemd-resolved gestiscono le query DNS utilizzando un risolutore stub. L'IP del risolutore stub si trova in /etc/resolv.conf. Il listener stub DNS locale non inoltra le richieste DNS per i nomi di dominio con il suffisso «.local». La richiesta DNS ha esito negativo con il codice di risposta «ServFail» simile al seguente output:
### 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
Risoluzione
Per risolvere un nome di dominio con il suffisso «.local», utilizza il risolutore esterno invece del listener stub DNS locale.
Nota: è consigliabile evitare di utilizzare il suffisso «.local» del nome di dominio perché RFC 6762 riserva questo nome di dominio per l'uso esclusivo di Multicast DNS.
1. Cambia il risolutore DNS dal listener stub DNS locale al risolutore DNS esterno (AmazonProvidedDNS).
cd /etc/
sudo ln -sf ../run/systemd/resolve/resolv.conf
2. Modifica .conf per arrestare il listener stub DNS locale.
cd /etc/systemd/
sudo cp -ip resolved.conf resolved.conf.org
sudo sed -i -e 's/#DNSStubListener=yes/DNSStubListener=no/' resolved.conf
3. Riavvia systemd-resolved.
sudo systemctl restart systemd-resolved
Informazioni correlate
Best practice per il DNS Amazon Route 53
Come risolvere i problemi della risoluzione DNS con la mia zona ospitata privata Route 53?