Inoltra il dominio principale al sottodominio www utilizzando i record DNS


16

Ho www.mydomain.comindicato un sito Web di Azure.

www.mydomain.com --- CNAME --- mydomain.azurewebsites.net

Quando visito www.mydomain.com, tutto funziona bene. Questo è buono.

Il problema è mydomain.comche non funziona. Azure consente solo il sottodominio www.

In alcuni server dei nomi, utilizzo un Record FWD per inoltrare il root su www, e questo funziona benissimo. Il mio attuale server dei nomi (zoneedit.com) non ha questo Record FWD.

Esiste un record DNS che possiamo utilizzare per inoltrare il dominio principale al sottodominio www?


2
ZoneEdit ha un "WebForward" che lo farà.
Michael Hampton

@MichaelHampton Perfect. Abbiamo usato@ | StealthForward | http://www.example.com
Shaun Luttin il

È fantastico. Fa essenzialmente quello che ho descritto (indica un IP reale, ovvero un server Web che reindirizza con una serie HTTP 300 su www.domain.com).
DTK,

Risposte:


17

Sfortunatamente, questo è un noto difetto del protocollo DNS. Non esiste un tipo di record definito negli standard DNS che ti permetta di alias l'apice di un dominio. Molte persone presumono che i CNAMErecord possano essere utilizzati per raggiungere questo obiettivo, ma ci sono ragioni tecniche per cui non possono .

Molti provider DNS implementano tipi di record DNS personalizzati (leggi: falsi) per provare a colmare questa lacuna. Dietro le quinte, questi record falsi implementano comportamenti personalizzati nel software di quell'azienda utilizzando una combinazione di Arecord sintetizzati e reindirizzamento del server web per raggiungere l'obiettivo desiderato. FWDè uno di questi, proprio come quello a WebForwardcui Michael ti ha indirizzato nei commenti.


8

Riepilogo: in breve, non è possibile avere il record desiderato e l'host DNS sta facendo le cose nel modo giusto.

Spiegazione: È una violazione degli standard DNS avere un CNAME (record alias / record forward) all'apice della zona (il nome vuoto nella parte anteriore della zona).

La ragione di ciò è che un record CNAME non può avere un conflitto di parte del nome con nessun record tranne un record DNSSec. In una zona tipica, un record CNAME all'apice della zona si scontrerebbe con almeno i record SOA e NS (e probabilmente molti altri). Sebbene alcuni server DNS lo consentano, è una cosa negativa e può causare errori difficili da diagnosticare (per non parlare del fatto che non funzionerà se si sposta l'hosting della zona su un server DNS conforme agli standard, come qualsiasi cosa basata su BIND) .

O hanno record A all'apice della zona (possono essere un semplice server Web che lancia semplicemente un HTTP 302 su www). Se è possibile ottenere numeri IP statici per le istanze del server di Azure, inserire un record A per ciascuno all'apice della propria zona e creare un singolo record CNAME chiamato "www" che punti al record dell'apice.

Come esempio :

 

$ ORIGIN example.com.

@ IN SOA ns1.example.com. admin@example.com. (
                                 101;
                                 172800;
                                 900;
                                 1209600;
                                 3600; )
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN A 123.234.1.123
@ IN A 123.234.1.124
@ IN A 123.234.1.125
ns1 IN A 123.234.1.126
ns2 IN A 123.234.1.127
www IN CNAME example.com.

5
IMO: Non vale la pena ripetere all'infinito perché gli apici CNAME non funzionano. Se l'utente chiede perché non funzionano, abbiamo una risposta canonica per questo con riferimenti RFC. (divulgazione completa: l'ho scritto) Se non lo chiedono, è meglio attenersi alla risposta alla domanda come formulata.
Andrew B,

Grazie. Avrei dovuto cercare una risposta canonica. Lo terrò a mente per la prossima volta.
DTK

2

Alcuni protocolli hanno standard per i tipi di record DNS, diversi dai record A, per la ricerca del servizio. SMTP con i relativi record MX associati ne è un buon esempio. Non ci sono tipi di record DNS definiti per HTTP. È probabile che il tuo precedente provider DNS / registrar avesse un reindirizzamento HTTP o un servizio proxy inverso.

Per raggiungere il tuo obiettivo dovrai impostare un server web (host virtuale) per eseguire un reindirizzamento HTTP 301 o 302 da un nome host all'altro, impostare un proxy HTTP inverso, impostare host virtuali indipendenti o utilizzare gli alias host virtuali in modo da la stessa istanza del server web risponderà a entrambi i nomi A.


0

Se si desidera una risposta specifica per Azure, è necessario creare un altro record CNAME che punti a awverify.mydomain.azurewebsite.net come questo

www.mydomain.com --- CNAME --- awverify.mydomain.azurewebsites.net
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.