Passa al contenuto principale

5. Insiemi di record di risorsa (Resource Record Sets)

Un Resource Record Set (RRSet) è l'insieme di tutti i Resource Record (RR) con lo stesso NAME, CLASS e TYPE. Ad esempio, l'insieme dei record MX di un dominio è un RRSet. L'insieme dei record A di un dominio è un altro RRSet.

Una zona può contenere RR con lo stesso nome, classe e tipo, che vengono trattati come un singolo RRSet, ma che hanno TTL diversi. Questo è un problema, poiché il RRSet è trattato come un'entità singola e i TTL dei singoli RR devono essere uguali.

Le seguenti sono le regole per la gestione dei RRSet:

5.1. Invio di RR da un RRSet (Sending RRs from an RRSet)​

Quando un server invia un RRSet in una risposta, deve inviare tutti gli RR del RRSet. Se il server sta inviando un RRSet parziale (ad esempio, a causa di limiti di dimensione del messaggio), deve impostare il bit TC (vedere la sezione 9).

5.2. TTL degli RR in un RRSet (TTLs of RRs in an RRSet)​

Il TTL di tutti gli RR in un RRSet deve essere lo stesso. Se un server riceve un RRSet con TTL diversi, deve utilizzare il TTL del RR con il TTL più basso come TTL del RRSet. Questo è un cambiamento rispetto a RFC1035, che richiedeva che tutti gli RR in un RRSet avessero lo stesso TTL.

Si noti che questo è un cambiamento rispetto alla precedente edizione di questo documento, che affermava che il TTL di un RRSet fosse indefinito se i TTL degli RR nel RRSet non fossero stati tutti uguali.

5.3. Casi speciali di DNSSEC (DNSSEC Special Cases)​

DNSSEC [RFC2065] introduce alcuni casi speciali per la gestione dei RRSet. In particolare, i record SIG che coprono un RRSet devono avere lo stesso TTL del RRSet che coprono. Questo è richiesto affinché i record SIG e il RRSet che coprono siano memorizzati nella cache e scadano insieme.

5.4. Ricezione di RRSet (Receiving RRSets)​

Quando un server riceve un RRSet, deve verificare che tutti gli RR nel RRSet abbiano lo stesso TTL. Se non lo hanno, deve utilizzare il TTL più basso come TTL del RRSet.

Un resolver non deve memorizzare nella cache un RRSet con TTL zero. Cioè, un RRSet con TTL zero non deve essere memorizzato nella cache.

5.5. Invio di RRSet (ripresa) (Sending RRSets (reprise))​

Quando un server invia un RRSet in una risposta, deve inviare tutti gli RR del RRSet. Se il server sta inviando un RRSet parziale (ad esempio, a causa di limiti di dimensione del messaggio), deve impostare il bit TC (vedere la sezione 9). Il server non deve dividere un RRSet su più messaggi a meno che il bit TC non sia impostato, e il client non deve riassemblare un RRSet da più messaggi a meno che il bit TC non sia impostato.