Wie kann ich den Domänennamen mit dem Suffix „.local“ für eine privat gehostete Zone von Route 53 auflösen?

Letzte Aktualisierung: 05.07.2022

Ich kann einen privaten gehosteten Zoneneintrag von Amazon Route 53 mit meiner Elastic Compute Cloud (Amazon EC2)-Instance nicht auflösen.

Kurzbeschreibung

Linux-Betriebssystemverteilungen, die den systemd-resolved-Service verwenden, verarbeiten DNS-Abfragen mit einem Stub-Resolver. Die Stub-Resolver-IP befindet sich in /etc/resolv.conf. Der lokale DNS-Stub-Listener leitet keine DNS-Anfragen für Domänennamen mit dem Suffix „.local“ weiter. Die DNS-Anfrage schlägt mit dem Antwortcode „ServFail“ fehl, ähnlich der folgenden Ausgabe:

### 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

Auflösung

Um einen Domänennamen mit dem Suffix „.local“ aufzulösen, verwenden Sie den externen Resolver anstelle des lokalen DNS-Stub-Listeners.

Hinweis: Es wird empfohlen, die Verwendung des Suffixes „.local“ für den Domänennamen zu vermeiden, da RFC 6762 diesen Domänennamen für die ausschließliche Verwendung von Multicast-DNS reserviert.

1.    Ändern Sie den DNS-Resolver vom lokalen DNS-Stub-Listener zum externen DNS-Resolver (AmazonProvidedDNS).

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

2.    Ändern Sie .conf, um den lokalen DNS-Stub-Listener zu stoppen.

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

3.    Starten Sie systemd-resolved neu.

sudo systemctl restart systemd-resolved