Wie funktioniert DNS und wie behebe ich teilweise oder zeitweise auftretende DNS-Fehler?
Wie funktioniert DNS und wie behebe ich teilweise oder zeitweise auftretende DNS-Fehler?
Behebung
Überblick über DNS
DNS leitet Benutzer zu Internetanwendungen weiter, indem leicht zu merkende Namen (z. B. www.example.com) in numerische IP-Adressen wie 192.0.2.1 übersetzt werden. Dieser Vorgang wird als „DNS-Auflösung“ bezeichnet. Ein autoritativer Nameserver löst einen Domain-Namen in eine IP-Adresse oder mehrere IP-Adressen auf und leitet die IP-Adresse über die Kette von DNS-Resolvern an den Client weiter (z. B. den Computer einer Person, die eine Website aufrufen möchte). Der Client verwendet dann diese IP-Adresse, um eine Verbindung zu dem Server herzustellen, auf dem die Website gehostet wird. Wenn DNS nicht richtig funktioniert, können DNS-Server Domain-Namen nicht auflösen. Die DNS-Server können den Kunden also nicht die IP-Adresse des Servers zur Verfügung stellen, auf dem die Website gehostet wird. Dies bedeutet, dass auf diese Websites nicht über das Internet zugegriffen werden kann.
Weitere Informationen finden Sie unter Was ist DNS?
Teilweise, temporäre oder intermittierende DNS-Ausfallszenarien
In einigen Fällen leidet ein Client für kurze Zeit oder zeitweise unter DNS-Ausfällen. Die folgenden Szenarien können häufig zu einem teilweisen DNS-Ausfall führen:
Szenario 1: Falsch konfigurierte Nameserver beim Registrar
Manchmal sind ein oder mehrere Nameserver auf dem Registrar falsch konfiguriert. Eine „Whois“-Suche liefert die Nameserver, die auf dem Registrar der Domain konfiguriert sind. In diesem Fall gibt der lokale Resolver während der DNS-Auflösung eine SERVFAIL-Meldung zurück, wenn registrierte Nameserver nicht oder mit unerwarteten Informationen antworten. In einigen Fällen können lokale Resolver die Anfrage jedoch mit einem anderen Nameserver versuchen und das Ergebnis zurückgeben.
Außerdem können die lokalen Resolver die falschen Nameserver für die TTL-Zeit zwischenspeichern und die nächste Anfrage an den falsch konfigurierten Nameserver senden.
Szenario 2: Geänderte Nameserver in der gehosteten Zone
Ein weiterer Grund für einen teilweisen DNS-Ausfall ist, wenn der NS-Eintrag für eine Domain in der gehosteten Zone falsch konfiguriert ist. In diesem Fall wurden entweder die vorhandenen Nameserver aktualisiert oder dem Wert des NS-Eintrags wurden einige zusätzliche Nameserver hinzugefügt.
In diesem Fall kann es bei einigen Clients zu teilweisen DNS-Fehlern kommen, wenn der Resolver versucht, die Domain mithilfe des falschen Nameservers aufzulösen.
Szenario 3: Der DNS-Resolver des Kunden kann die Domain nicht auflösen
Manchmal legen Clients benutzerdefinierte oder falsche Resolver in der Resolver-Konfigurationsdatei fest, wie z. B. resolv.conf unter Linux. Wenn dies der Fall ist und Sie die Domain von einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance in einer Amazon Virtual Private Cloud (Amazon VPC) aus auflösen, verwendet die EC2-Instance die in resolv.conf definierten Nameserver.
Szenario 4: Von Amazon bereitgestellter DNS-Server, der die DNS-Abfragen drosselt
Von Amazon bereitgestellte DNS-Server sind auf einen Grenzwert von 1024 Paketen pro Sekunde pro elastischer Netzwerkschnittstelle beschränkt. Von Amazon bereitgestellte DNS-Server lehnen jeglichen Datenverkehr ab, der diesen Grenzwert überschreitet. Aufgrund der DNS-Drosselung kommt es gelegentlich zu DNS-Timeouts. Sie können das Caching auf der Instance aktivieren oder den DNS-Wiederholungs-Timer in der Anwendung erhöhen, um dieses Problem zu beheben.
Szenario 5: Die Domain-URL wird aus dem Internet aufgelöst, aber nicht aus der EC2-Instance
DNS-Abfragen für Ihre Domain werden immer von der privat gehosteten Zone aus gelöst, wenn Sie Folgendes getan haben:
- Es wurde eine privat gehostete Zone mit demselben Namen wie Ihre Domain erstellt.
- Verknüpfte Ihre VPC mit der privat gehosteten Zone und den VPC-DHCP-Optionen, die mit AmazonProvidedDNS konfiguriert wurden.
Wenn der abgefragte Datensatz für Ihre Domain nicht in der privat gehosteten Zone vorhanden ist, schlägt die DNS-Abfrage fehl und wird nicht an die öffentliche Domain weitergeleitet. Da der DNS-Eintrag in der öffentlichen Domain-Zone vorhanden ist, wird er aus dem Internet aufgelöst.
Beheben Sie DNS-Fehler auf Linux-basierten Betriebssystemen
Verwenden Sie den Befehl dig, um eine Suche auf dem Client-DNS-Server durchzuführen, der in der Datei /etc/resolv.conf des Hosts konfiguriert ist.
$ dig www.amazon.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> www.amazon.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13150 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.amazon.com. IN A ;; ANSWER SECTION: www.amazon.com. 41 IN A 54.239.17.6 ;; Query time: 1 msec ;; SERVER: 10.108.0.2#53(10.108.0.2) ;; WHEN: Fri Oct 21 21:43:11 2016 ;; MSG SIZE rcvd: 48
Im vorherigen Beispiel zeigt der Antwortabschnitt, dass 54.239.17.6 die IP-Adresse des HTTP-Servers für www.amazon.com ist.
Wenn Sie die Variable +trace hinzufügen, kann der Befehl dig auch eine rekursive Suche nach einem DNS-Eintrag durchführen, wie im folgenden Beispiel gezeigt:
$ dig +trace www.amazon.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> +trace www.amazon.com ;; global options: +cmd . 518400 IN NS J.ROOT-SERVERS.NET. . 518400 IN NS K.ROOT-SERVERS.NET. . 518400 IN NS L.ROOT-SERVERS.NET. … ;; Received 508 bytes from 10.108.0.2#53(10.108.0.2) in 31 ms com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. … ;; Received 492 bytes from 193.0.14.129#53(193.0.14.129) in 93 ms amazon.com. 172800 IN NS pdns1.ultradns.net. amazon.com. 172800 IN NS pdns6.ultradns.co.uk. … ;; Received 289 bytes from 192.33.14.30#53(192.33.14.30) in 201 ms www.amazon.com. 900 IN NS ns-1019.awsdns-63.net. www.amazon.com. 900 IN NS ns-1568.awsdns-04.co.uk. www.amazon.com. 900 IN NS ns-277.awsdns-34.com. … ;; Received 170 bytes from 204.74.108.1#53(204.74.108.1) in 87 ms www.amazon.com. 60 IN A 54.239.26.128 www.amazon.com. 1800 IN NS ns-1019.awsdns-63.net. www.amazon.com. 1800 IN NS ns-1178.awsdns-19.org. … ;; Received 186 bytes from 205.251.195.251#53(205.251.195.251) in 7 ms
Sie können auch eine Abfrage ausführen, die nur die Nameserver zurückgibt, wie im folgenden Beispiel gezeigt:
$ dig -t NS www.amazon.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> -t NS www.amazon.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48631 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.amazon.com. IN NS ;; ANSWER SECTION: www.amazon.com. 490 IN NS ns-1019.awsdns-63.net. www.amazon.com. 490 IN NS ns-1178.awsdns-19.org. www.amazon.com. 490 IN NS ns-1568.awsdns-04.co.uk. www.amazon.com. 490 IN NS ns-277.awsdns-34.com. ;; Query time: 0 msec ;; SERVER: 10.108.0.2#53(10.108.0.2) ;; WHEN: Fri Oct 21 21:48:20 2016 ;; MSG SIZE rcvd: 170
Im vorherigen Beispiel hat www.amazon.com die folgenden vier autoritativen Nameserver:
- ns-1019.awsdns-63.net.
- ns-1178.awsdns-19.org.
- ns-1568.awsdns-04.co.uk.
- ns-277.awsdns-34.com.
Jeder dieser vier Server kann Fragen zum Hostnamen www.amazon.com autoritativ beantworten. Verwenden Sie den Befehl dig, um direkt auf einen bestimmten Nameserver abzuzielen. Überprüfen Sie, ob jeder autoritative Nameserver für eine bestimmte Domain korrekt antwortet.
Das Folgende ist eine Beispielausgabe für eine Abfrage an www.amazon.com an einen seiner autoritativen Nameserver (ns-1019.awsdns-63.net). Aus der Serverantwort geht hervor, dass www.amazon.com unter 54.239.25.192 verfügbar ist:
$ dig www.amazon.com @ns-1019.awsdns-63.net. ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> www.amazon.com @ns-1019.awsdns-63.net. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31712 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;www.amazon.com. IN A ;; ANSWER SECTION: www.amazon.com. 60 IN A 54.239.25.192 ;; AUTHORITY SECTION: www.amazon.com. 1800 IN NS ns-1019.awsdns-63.net. www.amazon.com. 1800 IN NS ns-1178.awsdns-19.org. www.amazon.com. 1800 IN NS ns-1568.awsdns-04.co.uk. … ;; Query time: 7 msec ;; SERVER: 205.251.195.251#53(205.251.195.251) ;; WHEN: Fri Oct 21 21:50:00 2016 ;; MSG SIZE rcvd: 186
Die folgende Zeile zeigt, dass ns-576.awsdns-08.net ein autoritativer Nameserver für amazon.com ist:
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0
Das Vorhandensein der aa-Flag weist darauf hin, dass der Nameserver ns-1019.awsdns-63.net uns eine verbindliche Antwort für den Ressourceneintrag www.amazon.com gegeben hat.
Beheben Sie DNS-Fehler auf Windows-basierten Betriebssystemen
Verwenden Sie das Hilfsprogramm nslookup, um die einem Hostnamen zugeordnete IP-Adresse zurückzugeben, wie im folgenden Beispiel gezeigt:
C:\>nslookup www.amazon.com Server: ip-10-20-0-2.ec2.internal Address: 10.20.0.2 Non-authoritative answer: Name: www.amazon.com Address: 54.239.25.192
Um die autoritativen Nameserver für einen Hostnamen mithilfe des Dienstprogramms nslookup zu ermitteln, verwenden Sie das Flag -type=NS:
C:\>nslookup -type=NS www.amazon.com Server: ip-10-20-0-2.ec2.internal Address: 10.20.0.2 Non-authoritative answer: www.amazon.com nameserver = ns-277.awsdns-34.com www.amazon.com nameserver = ns-1019.awsdns-63.net www.amazon.com nameserver = ns-1178.awsdns-19.org …
Verwenden Sie die folgende Syntax, um zu überprüfen, ob ns-277.awsdns-34.com für www.amazon.com korrekt auf eine Anfrage für www.amazon.com reagiert:
C:\>nslookup www.amazon.com ns-277.awsdns-34.com Server: UnKnown Address: 205.251.193.21 Name: www.amazon.com Address: 54.239.25.200
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren