Frage Wie lange dauert das negative DNS-Caching normalerweise?


Wenn ein DNS-Server einen Datensatz nachschlägt und dieser fehlt, wird die Tatsache, dass dieser Datensatz fehlt, "negativ" zwischengespeichert und nicht für eine Weile erneut gesucht. Ich sehe nichts in der RFC über die TTL bei negativem Caching sollte sein, also ich vermute es ist etwas willkürlich. Wie lange bleiben diese negativen Aufzeichnungen in der realen Welt bestehen?


30
2017-09-12 15:53


Ursprung


RFC 2308, Negative Caching von DNS-Abfragen erklärt, wie das funktionieren soll. (Verwandte SO Frage: Speichert ein Caching-Nameserver normalerweise die negative DNS-Antwort SERVFAIL?) - Skyhawk


Antworten:


Die TTL für das negative Caching ist nicht beliebig. Es stammt aus dem SOA-Datensatz am Anfang der Zone, zu der der angeforderte Datensatz gehört hätte, wenn er existiert hätte. Zum Beispiel:

example.org.    IN      SOA     master-ns1.example.org. Hostmaster.example.org. (
            2012091201 43200 1800 1209600 86400 )

Der letzte Wert im SOA-Record ("86400") ist die Zeitspanne, in der Clients aufgefordert werden, negative Ergebnisse zwischenzuspeichern example.org..

Wenn ein Client anfordert doesnotexist.example.org., wird das Ergebnis für 86400 Sekunden zwischengespeichert.


41
2017-09-12 16:07



@MarcusAdams ... und ein Client speichert keine Datensätze auf SERVFAIL. Die TTL im SOA-Datensatz wird tatsächlich für das negative Caching verwendet. Aus diesem Grund wird der SOA-Datensatz in NXDOMAIN-Antworten erstellt. - Celada
@MarcusAdams Korrigieren. Wenn Sie einen SERVFAIL erhalten, erhalten Sie weder eine SOA noch eine TTL. Es gibt keine Antwort auf den Negativ-Cache. Wenn Sie stattdessen ein NXDOMAIN als Sie erhalten tun Erhalte eine SOA mit einer TTL. Sie werden diese Antwort für die Dauer der TTL negativ zwischenspeichern. - Celada
Beartrap für DNS-RBL-Benutzer: Da RBL-Antworten eher minimal sind (und die DNS-Server-Implementierung möglicherweise nicht konform ist), erhalten Sie möglicherweise keine SOA mit der NXDOMAIN-Antwort. Dies kann bedeuten, dass Ihr DNS-Cache NXDOMAIN (d. H. Die Nicht-Spammer) überhaupt nicht zwischenspeichert: - / - mr.spuratic


Dies hängt von Ihrer genauen Definition einer "negativen Abfrage" ab, die jedoch in beiden Fällen in dokumentiert ist rfc2308 «Negatives Cachen von DNS-Anfragen (DNS NCACHE)»:


NXDOMAIN

  • Wenn die Auflösung erfolgreich ist und zu Ergebnissen führt NXDOMAIN, die Antwort wird mit einem kommen SOA Aufzeichnung, die die enthalten würde NXDOMAIN TTL (traditionell bekannt als MINIMUM Feld). rfc2308#section-4

SERVFAIL

  • Wenn die Auflösung nicht erfolgreich ist und zu einem Timeout führt ( SERVFAIL), dann darf es auch nicht zwischengespeichert werden und darf unter keinen Umständen länger als 5 Minuten zwischengespeichert werden. rfc2308#section-7.1

    Beachten Sie, dass in der Praxis das Zwischenspeichern solcher Ergebnisse für die maximal zulässigen 5 Minuten eine großartige Möglichkeit ist, die Erfahrung eines Clients zu mindern, sollte der Cache-Server gelegentlich kurzzeitige Konnektivitätsprobleme haben (und effektiv anfällig für Denial-of-Service-Verstärkungen machen), wo ein paar Sekunden Ausfallzeit dazu führen würden, dass bestimmte Teile des DNS für die fünf vollen Minuten ausfallen würden.

    Vor BIND 9.9.6-S1 (veröffentlicht 2014), anscheinend, SERVFAIL wurde überhaupt nicht zwischengespeichert. a878301 (2014-09-04)

    Zum Beispiel, zum Zeitpunkt Ihrer Frage und in allen Versionen von BIND, die vor 2014 veröffentlicht wurden, hat der rekursive BIND-Resolver NICHTS Cached SERVFAIL überhaupt, wenn das obige commit und die Dokumentation über die erste Einführung in 9.9.6-S1 ist zu glauben.

    Im aktuellen BIND-Format der Standardwert servfail-ttl ist 1sund die Einstellung ist bis zu einer Decke von 30s (anstelle der RFC-mandatierten Obergrenze von 300s). 90174e6 (2015-10-17)

    Im Folgenden finden Sie einige bemerkenswerte Zitate zu diesem Thema:

    Das Ergebnis der Zwischenspeicherung von SERVFAIL-Antworten umfasste einige Situationen, in denen es sich als nachteilig für die Kundenerfahrung erwies, insbesondere, wenn die dem Kunden angebotenen Ursachen für den SERVFAIL vorübergehender Natur waren und in einem Szenario, in dem eine sofortige Wiederholung der Abfrage erfolgen würde geeignetere Maßnahmen.

    Die zweite Taktik besteht darin zu behaupten, dass weit verbreitete DNS-Clients etwas besonders Böses tun, wenn sie nicht alle DNS-Server erreichen können. Das Problem mit diesem Argument ist, dass die Behauptung falsch ist. Ein solcher Client ist eindeutig fehlerhaft und kann auf dem Markt nicht überleben: Überlegen Sie, was passiert, wenn die Router des Clients kurzzeitig ausfallen oder wenn das Netzwerk des Kunden vorübergehend überflutet wird.


Zusammenfassend, ein NXDOMAIN Die Antwort wird im Cache gespeichert, wie in der SOA der anwendbaren Zone, während SERVFAIL Es ist unwahrscheinlich, dass sie zwischengespeichert wird, oder wenn sie zwischengespeichert wird, ist sie höchstens eine zweistellige Anzahl von Sekunden.


6
2018-01-08 00:49