È consentita una catena da CNAME a CNAME?


68

Nel DNS è consentito avere un record CNAME che punti a un altro record CNAME?

La ragione per cui abbiamo bisogno di questo è che abbiamo un nome host che vogliamo essere consultato sull'indirizzo IP del nostro computer server web. Abbiamo anche un altro computer server Web in attesa che potrebbe essere attivato nel caso in cui il primo morisse. In tal caso, dovremmo rapidamente puntare il nome host all'indirizzo IP del computer server Web stand-by.

Purtroppo il nome host risiede in un dominio DNS in cui qualsiasi modifica richiederebbe molto tempo a causa dell'operazione manuale dipendente da altri amministratori di sistema. Ma abbiamo un altro dominio DNS in cui possiamo eseguire rapidamente le modifiche da soli. Avere la catena CNAME su CNAME sembra una possibile soluzione. Ma è permesso? I browser web lo capiranno?

Risposte:


81

Da RFC 1034 - Nomi di dominio - concetti e strutture :

I nomi di dominio nei RR che puntano a un altro nome devono sempre puntare al nome principale e non all'alias. Questo evita ulteriori indicazioni indirette nell'accesso alle informazioni. Ad esempio, l'indirizzo per denominare RR per l'host sopra dovrebbe essere:

52.0.0.10.IN-ADDR.ARPA  IN      PTR     C.ISI.EDU

piuttosto che indicare USC-ISIC.ARPA. Naturalmente, secondo il principio di robustezza, il software di dominio non dovrebbe fallire quando presentato con catene o loop CNAME; Le catene CNAME devono essere seguite e gli anelli CNAME segnalati come errore.

Quindi sì, è consentito e il software scritto correttamente lo gestirà correttamente. Le catene CNAME non sono tuttavia considerate buone pratiche e impongono un sovraccarico all'infrastruttura.


3
+1 per il riferimento RFC
Alnitak

16
Anche se lo faccio sempre, la citazione sopra è fuori contesto. Appena sopra questo paragrafo si legge ..Domain names in RRs which point at another name should always point at the primary name and not the alias. This avoids extra indirections in accessing information.
Molomby

3
Citato dal ragazzo della rete di Microsoft Azure , il concatenamento CNAME è importante per eseguire il bilanciamento del carico AnyCast per loro.
Paul Lan,

26

Certo, è possibile.

Tuttavia è generalmente scoraggiato , per l'ovvia ragione che utilizza più risorse DNS. Per esempio:

foo   IN      CNAME  someserver.somehost.com.
bar   IN      CNAME  foo

La query di "barra" comporterebbe fool'interrogazione di CNAME , quindi someserver.somehost.com.l'interrogazione, con conseguente ulteriore query.

Per ogni elemento nella catena che aggiungerai, sarà richiesta un'altra query.

Un altro motivo per cui questo è scoraggiato è che, creando catene come queste, aumentano le possibilità che in qualche modo creerai dei loop CNAME ; questi dovrebbero essere rilevati automaticamente dagli attuali server DNS, ma importerebbero comunque un grande carico sui server.


5

Sì, è consentito e funzionerà, ma non è considerato una buona pratica. Le ricerche multiple utilizzano più risorse e c'è il rischio di creare accidentalmente un ciclo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.