Was bedeutet die TTL in einem CNAME-Datensatz?

22

Aufgrund der vielen Server in meinem Netzwerk fällt es mir schwer, alle zu organisieren. Einige von ihnen haben keine statischen IP-Adressen, daher dachte ich, es wäre schön, wenn ich eine config.mydomain.com-Domain erstellen würde. In dieser Domäne konnte ich A-Einträge und die IP für jeden der Server speichern. So habe ich es eingerichtet:

s1.config.mydomain.com.     A   10.0.0.1    #ttl 60
s2.config.mydomain.com.     A   10.0.0.2    #ttl 60
s3.config.mydomain.com.     A   10.0.0.3    #ttl 60
# etc

Jeder dieser Datensätze hat eine TTL von 60, falls ich eine IP schnell ändern muss, aber ich möchte nicht, dass Clients alle 60 Sekunden eine Verbindung herstellen, um eine Aktualisierung durchzuführen. Nehmen wir nun an, ich richte meine Domains so ein, dass sie diese verwenden:

mydomain.com.           CNAME   s2.config.mydomain.com.   #ttl 3600
mail.mydomain.com.      CNAME   s2.config.mydomain.com.   #ttl 10800
svn.mydomain.com.       CNAME   ns1.config.mydomain.com.  #ttl 21600

Die TTLs für die CNAMES sind höher. Nehmen wir also an, ich gehe zu mydomain.com. Es fragt meinen DNS-Server nach der IP von mydomain.comund mein Server kehrt zurück. CNAME s2.config.mydomain.com.Dann fragt es meinen Server nach der IP von s2.config.mydomain.comund mein Server kehrt zurück 10.0.0.1.

Würde es den CNAME s2.config.mydomain.comDatensatz für 3600 Sekunden und den A 10.0.0.1Datensatz für 60 Sekunden zwischenspeichern? Das heißt, dass alle 60 Sekunden mein Server nach der IP-Adresse gefragt wird?

Oder wird der See zwischengespeichert CNAME s2.config.mydomain.com, der A 10.0.0.1abgerufen und beide für 3600 Sekunden zwischengespeichert?

Wenn es das erste ist, muss ich wahrscheinlich einen anderen Weg finden, um sie zu verwalten, also hoffe ich, dass es das zweite ist, aber ich bin nicht sicher. Kennen Sie einen besseren Weg, um den Überblick zu behalten?

Ryan Pendleton
quelle
Können Sie klarer definieren, wen Sie mit "wird es zwischenspeichern" meinen ? Leider gibt es viele verschiedene Resolver-Implementierungen. Ich wäre überhaupt nicht überrascht, wenn Sie feststellen würden, dass beide Verhaltensweisen zutreffen.
Zoredache
@zoredache Ich denke, was @Ryan wissen möchte, ist: DNS-Resolver zwischenspeichern normalerweise den CNAME oder das Ergebnis einer aufgelösten CNAME-Suche?
Coredump
@coredump, ja das habe ich gemeint.
Ryan Pendleton

Antworten:

10

Gemäß dieser Nachricht in der ISC- Mailingliste werden CNAME und der Datensatz, auf den es verweist, durch Auflösen von Nameservern ( normal auflösende Nameserver ) zwischengespeichert, damit Resolver den Auflösungs- / Caching-Prozess auf der Clientseite optimieren können.

Wenn also die CNAME-TTL gültig ist, aber das A, auf das sie zeigt, ungültig ist, wird nur der Suchlauf zum angegebenen Datensatz wiederholt, nicht zum ursprünglichen CNAME (bis auch die CNAME-TTL aktiv ist).

Core-Dump
quelle
Wenn ich dieses Recht verstehe, wird der CNAME-Datensatz nach Ablauf der TTL angefordert, und der A-Datensatz, auf den er verweist, wird ebenfalls angefordert, aber nach Ablauf der eigenen TTL?
Ryan Pendleton
1
Ja. Das heißt, TTL funktioniert für CNAME-Datensätze genauso wie für andere Datensätze.
Coredump
3

Alle CNAME-Einträge werden für maximal 3600, 10800 und 21600 Sekunden zwischengespeichert.

Die A-Sätze werden unabhängig voneinander behandelt und alle 60 Sekunden erneut abgefragt.

Falls der CNAME jedoch abläuft, sollte der A-Datensatz gleichzeitig aktualisiert werden.

CNAME-Datensätze haben verschiedene Fallstricke, die in RFC 1912 erläutert werden. Mydomain.com. kann kein CNAME sein, da SOA- und NS-Einträge verwendet werden: Dies ist eine Delegation von com. Domain.

Ihre Frage ist alt. Heutzutage folgen einige DNS-Anbieter nicht den RFCs, indem Benutzer CNAMEs in die SOA einfügen lassen (sie nennen es APEX-Domänen). Auch hier verwenden Sie auf eigene Gefahr.

Zu guter Letzt können Sie CNAMEs mit höheren TTL-Werten versehen, wenn Ihre Kunden nach einem IPv6-Eintrag fragen: AAAA. Zumindest die CNAME-Zuordnung bleibt im Cache und nur die IP-Adresse wird zweimal abgefragt.

Kurz gesagt: Wenn Sie eine höhere TTL für den CNAME festlegen, werden die Antworten Ihrer Kunden kürzer. Es sollte auch dem Resolver-Server helfen. Die Anzahl der Anfragen pro Sekunde sollte jedoch ungefähr gleich sein.

Xavier Nicollet
quelle