Identificazione subordinata
I record NS di livello Apex sono utilizzati da un server master per identificare i suoi subordinati. Quando i dati su un server dei nomi autorevole cambiano, li pubblicizzeranno tramite DNS NOTIFY
messaggi ( RFC 1996 ) a tutti i suoi colleghi in quell'elenco. Questi server a loro volta richiameranno con una richiesta per il SOA
record (che contiene il numero seriale) e decideranno se ritirare una copia più recente di quella zona.
- È possibile inviare questi messaggi a server non elencati nella
NS
sezione, ma ciò richiede direttive di configurazione specifiche del server (come la also-notify
direttiva ISC BIND ). I record NS dell'apice comprendono l'elenco di base dei server da notificare con una configurazione predefinita.
- Vale la pena notare che i server secondari invieranno anche i messaggi NOTIFY tra loro in base a questi
NS
record, di solito con conseguente rifiuto registrato. Questo può essere disabilitato chiedendo ai server di inviare notifiche solo per le zone per cui sono padroni (BIND:) notify master;
o di saltare le NS
notifiche basate interamente a favore delle notifiche esplicitamente definite nella configurazione. (BIND: notify explicit;
)
Definizione autorevole
La domanda sopra conteneva un errore:
Non vengono utilizzati memorizzando nella cache i server DNS per determinare i server autorevoli per il dominio. Questo è gestito dalla colla del nameserver, che è definita a livello di registrar. Il registrar non utilizza mai queste informazioni per generare i record di colla.
Questa è una conclusione facile da raggiungere, ma non accurata. I NS
dati e i dati dei record di colla (come quelli definiti nel tuo account registrar) non sono autorevoli. È ovvio che non possono essere considerati "più autorevoli" dei dati che risiedono sui server a cui viene delegata l'autorità. Ciò è sottolineato dal fatto che i referral non hanno il aa
flag (Risposta autorevole) impostato.
Illustrare:
$ dig @a.gtld-servers.net +norecurse +nocmd example.com. NS
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14021
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 5
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN NS
;; AUTHORITY SECTION:
example.com. 172800 IN NS a.iana-servers.net.
example.com. 172800 IN NS b.iana-servers.net.
;; ADDITIONAL SECTION:
a.iana-servers.net. 172800 IN A 199.43.135.53
a.iana-servers.net. 172800 IN AAAA 2001:500:8f::53
b.iana-servers.net. 172800 IN A 199.43.133.53
b.iana-servers.net. 172800 IN AAAA 2001:500:8d::53
Nota la mancanza di aa
nelle bandiere per la risposta sopra. Il rinvio in sé non è autorevole. D'altra parte, i dati sul server a cui si fa riferimento sono autorevoli.
$ dig @a.iana-servers.net +norecurse +nocmd example.com. NS
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2349
;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN NS
;; ANSWER SECTION:
example.com. 86400 IN NS a.iana-servers.net.
example.com. 86400 IN NS b.iana-servers.net.
Detto questo, questa relazione può diventare molto confusa in quanto non è possibile conoscere le versioni autorevoli di questi NS
record senza i record non autorevoli NS
definiti sul lato genitore del referral. Cosa succede se non sono d'accordo?
- La risposta breve è "comportamento incoerente".
- La risposta lunga è che i server dei nomi saranno inizialmente stub tutto fuori del deferimento (e colla) su una cache vuota, ma quelli
NS
, A
e AAAA
registrazioni possono eventualmente essere sostituiti quando sono aggiornati. Gli aggiornamenti si verificano quando scadono i TTL su tali record temporanei o quando qualcuno richiede esplicitamente la risposta per tali record.
A
e i AAAA
record per i dati fuori dalla zona (cioè i com
nameserver che definiscono la colla per i dati al di fuori della com
zona, simili example.net
) finiranno sicuramente per essere aggiornati, poiché è un concetto ben noto che un nameserver non dovrebbe essere considerato una fonte autorevole di tali informazioni . (RFC 2181)
- Quando i valori dei
NS
record differiscono tra i lati principale e secondario del riferimento (come i server dei nomi inseriti nel pannello di controllo del registrar diversi dai NS
record che vivono su quegli stessi server), i comportamenti sperimentati saranno incoerenti, fino al figlio compreso NS
i record vengono ignorati completamente. Questo perché il comportamento non è ben definito dagli standard e l'implementazione varia tra le diverse implementazioni del server ricorsivo. In altre parole, ci si può aspettare un comportamento coerente su Internet solo se le definizioni dei nameserver per un dominio sono coerenti tra i lati padre e figlio di un riferimento .
In sostanza, i server DNS ricorsivi su Internet torneranno indietro tra le destinazioni se i record definiti nella parte padre del referral non concordano con le versioni autorevoli di tali record. Inizialmente saranno preferiti i dati presenti nel rinvio, solo per essere sostituiti dalle definizioni autorevoli. Poiché le cache vengono costantemente ricostruite da zero su Internet, è impossibile che Internet si assesti su una singola versione della realtà con questa configurazione. Se i record autorevoli stanno facendo qualcosa di illegale secondo gli standard, come il puntamento dei NS
record agli alias definiti da aCNAME
, questo diventa ancora più difficile da risolvere; il dominio si alternerà tra funzionante e non funzionante per il software che rifiuta la violazione. (ad es. ISC BIND / nome)
RFC 2181 §5.4.1 fornisce una tabella di classificazione per l'affidabilità di questi dati e rende esplicito che i dati della cache associati ai riferimenti e alla colla non possono essere restituiti come risposta a una richiesta esplicita per i record a cui si riferiscono.
5.4.1. Ranking data
When considering whether to accept an RRSet in a reply, or retain an
RRSet already in its cache instead, a server should consider the
relative likely trustworthiness of the various data. An
authoritative answer from a reply should replace cached data that had
been obtained from additional information in an earlier reply.
However additional information from a reply will be ignored if the
cache contains data from an authoritative answer or a zone file.
The accuracy of data available is assumed from its source.
Trustworthiness shall be, in order from most to least:
+ Data from a primary zone file, other than glue data,
+ Data from a zone transfer, other than glue,
+ The authoritative data included in the answer section of an
authoritative reply.
+ Data from the authority section of an authoritative answer,
+ Glue from a primary zone, or glue from a zone transfer,
+ Data from the answer section of a non-authoritative answer, and
non-authoritative data from the answer section of authoritative
answers,
+ Additional information from an authoritative answer,
Data from the authority section of a non-authoritative answer,
Additional information from non-authoritative answers.
<snip>
Unauthenticated RRs received and cached from the least trustworthy of
those groupings, that is data from the additional data section, and
data from the authority section of a non-authoritative answer, should
not be cached in such a way that they would ever be returned as
answers to a received query. They may be returned as additional
information where appropriate. Ignoring this would allow the
trustworthiness of relatively untrustworthy data to be increased
without cause or excuse.