DNS: Subdomínios que exigem um registro MX e um CNAME

16

Digamos que nós possuamos a zona mywebservice.com.

Gostaria que cada um dos meus clientes obtivesse seu próprio subdomínio, como customer.mywebservice.com.

customer.mywebservice.com precisa ser um CNAME para um determinado servidor externo. Como esse site gerencia seu próprio equipamento e pode alterar endereços a qualquer momento, o CNAME é um requisito.

As pessoas também precisam enviar e-mails para [email protected], o que exigiria um registro MX simples.

No entanto, e é aqui que eu gostaria de receber algumas orientações:

De acordo com RFC 1034 :

If a CNAME RR is present at a node, no other data should be
present; this ensures that the data for a canonical name and its aliases
cannot be different.

Também verifiquei que meu servidor DNS se recusará a fornecer qualquer coisa que não seja um CNAME para hosts que os usam.

Então, parece que eu posso ter uma situação perdida. Se eu quiser usar o registro MX, preciso usar um A em vez de um CNAME.

Alguém pode pensar em alguma solução alternativa? Obrigado!

    
por Michael Gorsuch 02.06.2009 / 20:15

8 respostas

19

Infelizmente, o que você está enfrentando é uma limitação da especificação do DNS. Ter um registro MX para o mesmo nome de host definido como um registro CNAME falhará na maioria das implementações de servidor DNS. Alguns servidores DNS antigos permitirão isso, mas foram em grande parte eliminados em favor de implementações mais novas e mais seguras.

Em vez de usar registros CNAME, você precisará usar os registros 'A' com os endereços IP dos sites dos clientes diretamente, em vez de usar o alias dos nomes.

    
por 02.06.2009 / 20:55
16

Depois de muito trabalho e pesquisa aqui, encontrei uma solução aceitável. Primeiro, é importante que todos sigam as RFCs. Eu atualizei meu servidor DNS para violar o RFC e descobri que vários outros servidores DNS importantes não respeitariam a mudança.

O movimento apropriado é colocar o MX no host para o qual o CNAME aponta. Portanto, se customer.mywebservice.com for um CNAME para o registro loadbalancer.mywebservice.com, é apropriado também criar um registro MX para loadbalancer.mywebservice.com. Eu verifiquei que isso funciona com todos os principais resolvedores.

Se uma consulta MX for feita para customer.mywebservice.com, a biblioteca do resolvedor seguirá o CNAME e obterá o MX apropriado para o registro A final. Viva!

    
por 21.06.2009 / 09:31
4

customer.mywebservice.com needs to be a CNAME to a given server offsite. Since that site manages its own equipment and can change addresses at any point in time, the CNAME is a requirement.

Can anyone think of any workarounds? Thanks!

Você tem a exigência de que os clientes possam alterar o endereço. Você considerou permitir que o cliente atualize dinamicamente seu próprio registro? Com o DNS dinâmico, você poderia usar o registro A e o cliente poderia alterar o registro conforme necessário. Isso exigiria um pouco de trabalho, mas você poderia cada subdomínio individual como uma zona separada para garantir que um cliente possa tocar apenas em sua própria zona.

Eu não tentei, mas o gnudip parece ser uma ferramenta de código aberto para facilitar atualizações dinâmicas sem ter que lidar com autenticação e configurar muitas zonas em seu servidor DNS.

    
por 02.06.2009 / 21:11
3

Se os seus registros MX forem os mesmos para todos esses registros, você poderá tentar usar um DNAME para redirecionar XYZ.mywebservice.com para hosting.mywebservice.com. Em hosting.mywebservice.com, adicione seus registros MX e A do relavent.

Devo dizer que nunca usei registros DNAME em produção, mas você pode ler mais sobre eles em RFC2672 .

    
por 02.06.2009 / 20:25
3

O RHS do customer.mywebservice.com CNAME tem uma entrada MX?

Nesse caso, o servidor de email usará esse MX para localizar o servidor de email a ser usado. Espero que você possa controlar isso.

    
por 02.06.2009 / 21:04
1

A resposta de Michael Gorsuch é em grande parte correta, o CNAME - > A + MX chain funciona ... principalmente . No entanto, ele aciona algum mau comportamento em determinados MTAs. O que eu encontrei executando esta solução em uma quantidade decente de escala:

  • alguns MTAs simplesmente se recusam a encontrar o registro.
  • outros substituirão incorretamente o registro A no qual o CNAME deve estar: ou seja, enviei um e-mail para "[email protected]", que é CNAMES para web.example.com, que tem um MX de mail.example.com e o MTA reescreve o cabeçalho do envelope como "Para: [email protected]".

Ainda não está claro o quão difundidos são esses problemas (google / hotmail / yahoo / etc, todos parecem lidar com isso corretamente), mas eles certamente nos procuram para melhores soluções.

    
por 12.03.2012 / 14:04
0

Uma solução possível e válida seria criar um nome de host básico para todos os seus clientes e configurá-lo para o registro ae aaaa do servidor da Web externo e seu mx e, em seguida, CNAME todos os seus clientes para esse único nome de host. Dessa forma, você só terá que alterar um registro quando o endereço IP fora do site for alterado.

É a única maneira possível e valiosa, já que CNAME é um alias para um conjunto completo de registros, não apenas um.

    
por 24.07.2016 / 01:56
-4

MX e CNAME são registros completamente separados - primeiro, um determina o servidor de e-mail de determinado domínio, e o segundo, o endereço de um domínio. Isso deve funcionar:

@       IN      SOA     ns1.mywebservice.com. root.mywebservice.com. (
                        2009060201
                        12h
                        1h
                        1w
                        8h
)

                        NS      ns1.mywebservice.com.
                        NS      ns2.mywebservice.com.

customer                CNAME   offsite.host.
customer                MX 10   mail.server.
    
por 02.06.2009 / 20:22