2016-01-07 86 views
0

我使用AWS的所有基础设施,我需要:DNS CNAME和MX通配符

mydomain.com A ALIAS {S3-bucket- > } s3-website-eu-west-1.amazonaws.com. 
www.mydomain.com CNAME mydomain.com 
    -> website on Amazon S3 


*.mydomain.com CNAME {beanstalk} -> myserver-app.elasticbeanstalk.com 
    -> all other subdomains redirect to the Amazon Beanstalk app 


*.mydomain.com MX -> 
     10 XXYY.in1.mandrillapp.com. 
     20 XXYY.in2.mandrillapp.com. 
     -> all emails goes to mandrillapp. 

如何能做到这一点?

由于CNAME和MX通配符写入它不起作用。

我无法使用所有名称,因为子域将动态生成。

非常感谢!

大卫

+1

当你说“它不工作”,什么是不工作?你看到的具体问题是什么? –

回答

1

正如你所发现的,你不能有一个CNAME和任何其他类型的记录在同一级别的DNS层次结构Route 53 Alias records,重新使用您的裸露域名并为www创建了解决DNS设计中的此限制,并且不具有相同的不兼容性问题...但Alias记录的目标只能是以下四项之一:此刻:一个CloudFront分配, Elastic Load Balancer,与A记录中的主机名称相同的S3存储桶或同一托管区域中相同类型的其他记录。

最后两个不会帮助你,但前两个都可以。

如果您的beanstalk应用程序已经有ELB,您可以在EC2控制台的Load Balancers下找到该名称,并且您应该可以将其用作您的域的*通配符A记录别名的别名目标。或者,您可以为您的Beanstalk应用程序添加一个负载均衡器。

或者,您可以创建CloudFront分配,并将myapp.elasticbeanstalk.com配置为分配的“自定义原点”服务器。配置CloudFront在*.example.com的分配中调用"alternate domain name (CNAME)" - 顺便说一句,忽略CloudFront控制台将其称为“CNAME”的事实。它们也可以用作别名目标。将发行版配置为forward the incoming Host: header以指定原始地址,以及要转发的任何其他标题。然后,您应该能够创建您的通配符别名A记录,指向CloudFront分配,这会将请求转发到Beanstalk应用程序。

+0

非常感谢你! – David

1

您遇到的问题是与rules of DNS,其中禁止在那里另一个记录存在CNAME记录的问题。

如果一个CNAME RR存在于一个节点上,其他数据应该不存在 ;这可以确保规范名称及其别名 的数据不能不同。此规则还可以确保缓存的CNAME可以使用 ,而无需与其他RR类型的授权服务器进行检查。

是否有特殊原因需要通配符MX记录?我无法看到任何可以带来益处的情况,但很多情况下这是一个非常糟糕的主意! (特别是它使得网络上的任何主机成为发送垃圾邮件的可行目标,因为任何可以解析为域的主机都有权发送。

如果明确命名MX记录,可以使用CNAME通配符实际上我可能需要检查!但我确实相信)

+0

是的,我需要它 - 这是一个应用程序,客户可以将你自己的电子邮件作为[用户] @ [公司名称] .mydomain.com – David