Je n’arrive pas à résoudre un enregistrement de zone hébergée privée Amazon Route 53 avec mon instance Elastic Compute Cloud (Amazon EC2).
Brève description
Les distributions du système d’exploitation Linux qui utilisent le service systemd-resolved gèrent les requêtes DNS à l’aide d’un résolveur stub. L’adresse IP du résolveur stub se trouve dans le fichier /etc/resolv.conf. Le récepteur stub DNS local ne transmet pas les requêtes DNS pour les noms de domaine avec le suffixe « .local ». La requête DNS échoue avec le code de réponse « ServFail » similaire à la sortie suivante :
### 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
Solution
Pour résoudre un nom de domaine avec le suffixe « .local », utilisez le résolveur externe au lieu du récepteur stub DNS local.
Remarque : il est recommandé d’éviter d’utiliser le suffixe « .local » du nom de domaine, car RFC 6762 réserve ce nom de domaine à une utilisation exclusive du DNS de multidiffusion.
1. Remplacez le résolveur DNS du récepteur stub DNS local par un résolveur DNS externe (AmazonProvidedDNS).
cd /etc/
sudo ln -sf ../run/systemd/resolve/resolv.conf
2. Modifiez le fichier .conf pour arrêter le récepteur 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. Redémarrage systemd-resolved.
sudo systemctl restart systemd-resolved
Informations connexes
Bonnes pratiques pour le DNS Amazon Route 53
Comment résoudre les problèmes de résolution DNS avec ma zone hébergée privée Route 53 ?