Comment puis-je résoudre le nom de domaine avec le suffixe « .local » pour une zone hébergée privée Route 53 ?

Dernière mise à jour : 05/07/2022

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

Cet article vous a-t-il été utile?


Avez-vous besoin d'aide pour une question technique ou de facturation ?