Encaminhar o domínio raiz para o subdomínio www usando registros DNS

16

Tenho www.mydomain.comapontou para um site Azure.

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

Quando eu visito www.mydomain.com, tudo funciona bem. Isso é bom.

O problema é mydomain.comque não funciona. O Azure permite apenas o subdomínio www.

Em alguns servidores de nomes, eu uso um registro FWD para encaminhar a raiz para o www, e isso funciona bem. Meu servidor de nomes atual (zoneedit.com) não possui esse registro FWD.

Existe um registro DNS que possamos usar para encaminhar o domínio raiz para o subdomínio www?

Shaun Luttin
fonte
2
O ZoneEdit possui um "WebForward" que fará isso.
Michael Hampton
@MichaelHampton Perfect. Usamos@ | StealthForward | http://www.example.com
Shaun Luttin
Isso é ótimo. Essencialmente, ele faz o que eu descrevi (aponta para um IP real, que é um servidor da Web que apenas redireciona com uma série HTTP 300 para www.domain.com).
DTK

Respostas:

17

Infelizmente, essa é uma falha bem conhecida do protocolo DNS. Não há nenhum tipo de registro definido nos padrões de DNS que permita o alias do ápice de um domínio. Muitas pessoas assumem que os CNAMEregistros podem ser usados ​​para fazer isso, mas há razões técnicas pelas quais eles não podem .

Muitos provedores de DNS implementam tipos de registros DNS personalizados (leia-se: falsos) para tentar solucionar esse problema. Nos bastidores, esses registros falsos implementam um comportamento personalizado no software da empresa, usando uma combinação de Aregistros sintetizados e redirecionamento de servidor da web para atingir o objetivo desejado. FWDé um desses, muito parecido com o WebForwardque Michael o indicou nos comentários.

Andrew B
fonte
8

Resumo: Em resumo, você não pode ter o registro desejado e seu host DNS está fazendo as coisas da maneira certa.

Explicação: É uma violação dos padrões DNS ter um CNAME (alias registro / encaminhamento) no ápice da zona (o nome vazio na frente da zona).

A razão para isso é que um registro CNAME não pode ter a parte do nome em conflito com nenhum registro, exceto um registro DNSSec. Em uma zona típica, um registro CNAME no ápice da zona colidiria com pelo menos os registros SOA e NS (e provavelmente vários outros). Embora alguns servidores DNS permitam isso, é uma coisa ruim e pode causar falhas difíceis de diagnosticar (para não mencionar, não funcionará se você mover a hospedagem da zona para um servidor DNS compatível com os padrões, como qualquer coisa baseada em BIND) .

Os registros A têm um apex na zona (eles podem ser um servidor da web simples que apenas lança um HTTP 302 para www). Se você pode obter números de IP estáticos para as instâncias do servidor Azure, coloque um registro A para cada um no ápice da sua zona e crie um único registro CNAME chamado "www" que aponte para o registro do ápice.

Como um exemplo :

 

$ ORIGIN example.com.

@ IN SOA ns1.example.com. [email protected]. (
                                 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 EM A 123.234.1.126
ns2 EM A 123.234.1.127
www IN CNAME example.com.
DTK
fonte
5
IMO: Não vale a pena reiterar infinitamente por que os vértices do CNAME não funcionam. Se o usuário perguntar por que eles não funcionam, temos uma resposta canônica para isso com referências RFC. (divulgação completa: escrevi) Se eles não perguntarem sobre isso, é melhor continuar respondendo à pergunta como formulada.
Andrew B
Obrigado. Eu deveria ter procurado uma resposta canônica. Vou me lembrar disso para a próxima vez.
DTK
2

Alguns protocolos têm padrões para os tipos de registro DNS, além dos registros A, para encontrar o serviço. O SMTP com seus registros MX associados é um bom exemplo disso. Não há tipos de registro DNS definidos para HTTP. É provável que o seu provedor DNS / registrador anterior tenha um serviço de redirecionamento HTTP ou proxy reverso.

Para atingir seu objetivo, você precisará configurar um servidor da Web (host virtual) para fazer um redirecionamento HTTP 301 ou 302 de um nome de host para outro, configurar um proxy HTTP reverso, configurar hosts virtuais independentes ou usar aliases de host virtual para a mesma instância do servidor da web responderá aos dois nomes A.

Joshua Hoblitt
fonte
0

Se você quiser uma resposta específica para o Azure, precisará criar outro registro CNAME apontando para awverify.mydomain.azurewebsites.net como este

www.mydomain.com --- CNAME --- awverify.mydomain.azurewebsites.net
Abhishek Siddhu
fonte