5. Ressourcen-Datensätze-Mengen (Resource Record Sets)
Ein Resource Record Set (RRSet) ist die Menge aller Resource Records (RR) mit demselben NAME, CLASS und TYPE. Beispielsweise ist die Menge der MX-Einträge einer Domäne ein RRSet. Die Menge der A-Einträge einer Domäne ist ein anderes RRSet.
Eine Zone kann RRs desselben Namens, derselben Klasse und desselben Typs enthalten, die als ein einzelnes RRSet behandelt werden, jedoch unterschiedliche TTLs aufweisen. Dies ist ein Problem, da das RRSet als eine einzige Entität behandelt wird und die TTLs der einzelnen RRs identisch sein müssen.
Die folgenden Regeln gelten für den Umgang mit RRSets:
5.1. Senden von RRs aus einem RRSet (Sending RRs from an RRSet)
Wenn ein Server ein RRSet in einer Antwort sendet, muss er alle RRs des RRSet senden. Wenn der Server ein teilweises RRSet sendet (z. B. aufgrund von Nachrichtengrößenbeschränkungen), muss er das TC-Bit setzen (siehe Abschnitt 9).
5.2. TTLs von RRs in einem RRSet (TTLs of RRs in an RRSet)
Die TTL aller RRs in einem RRSet muss identisch sein. Wenn ein Server ein RRSet mit unterschiedlichen TTLs empfängt, muss er die TTL des RR mit der niedrigsten TTL als TTL des RRSet verwenden. Dies ist eine Änderung gegenüber RFC1035, die verlangte, dass alle RRs in einem RRSet dieselbe TTL haben.
Beachten Sie, dass dies eine Änderung gegenüber der vorherigen Ausgabe dieses Dokuments ist, in der festgelegt wurde, dass die TTL eines RRSet undefiniert ist, wenn die TTLs der RRs im RRSet nicht alle gleich sind.
5.3. DNSSEC-Sonderfälle (DNSSEC Special Cases)
DNSSEC [RFC2065] führt einige Sonderfälle für den Umgang mit RRSets ein. Insbesondere müssen die SIG-RRs, die ein RRSet abdecken, dieselbe TTL wie das abgedeckte RRSet aufweisen. Dies ist erforderlich, damit die SIG-RRs und das abgedeckte RRSet gemeinsam zwischengespeichert und abgelaufen werden.
5.4. Empfang von RRSets (Receiving RRSets)
Wenn ein Server ein RRSet empfängt, muss er prüfen, dass alle RRs im RRSet dieselbe TTL haben. Wenn nicht, muss er die niedrigste TTL als TTL des RRSet verwenden.
Ein Resolver darf ein RRSet mit TTL null nicht zwischenspeichern. Das heißt, ein RRSet mit TTL null darf nicht zwischengespeichert werden.
5.5. Senden von RRSets (Wiederholung) (Sending RRSets (reprise))
Wenn ein Server ein RRSet in einer Antwort sendet, muss er alle RRs des RRSet senden. Wenn der Server ein teilweises RRSet sendet (z. B. aufgrund von Nachrichtengrößenbeschränkungen), muss er das TC-Bit setzen (siehe Abschnitt 9). Der Server darf ein RRSet nicht über mehrere Nachrichten aufteilen, es sei denn, das TC-Bit ist gesetzt, und der Client darf ein RRSet nicht aus mehreren Nachrichten zusammenfügen, es sei denn, das TC-Bit ist gesetzt.