DNS CNAME& MX通配符

时间:2016-01-07 17:54:38

标签: amazon-web-services dns amazon-route53

我正在使用AWS上的所有基础架构,我需要:

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通配符不起作用。

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

非常感谢!!

大卫

2 个答案:

答案 0 :(得分:1)

您遇到的问题是rules of DNS的问题,该问题禁止存在另一条记录的CNAME记录。

  

如果节点上存在CNAME RR,则不应该有其他数据   当下;这可以确保规范名称及其别名的数据   不可能是不同的。此规则还可确保缓存的CNAME可以   使用时不使用权威服务器检查其他RR类型。

您是否有特殊原因要使用通配符MX记录?我看不到它提供好处的任何情况,但很多地方它会是一个非常糟糕的主意! (特别是它使网络上的任何主机成为发送垃圾邮件的可行目标,因为任何可以解析到该域的主机都有权发送垃圾邮件。

如果您明确命名您的MX记录,您可以拥有CNAME通配符(实际上我可能需要检查它!但我确实相信)

答案 1 :(得分:1)

如您所见,您不能在DNS层次结构的同一级别拥有CNAME和任何其他类型的记录。您在裸域和www中使用的Route 53 Alias records是为了解决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到原点,以及您要转发的任何其他标题。然后,您应该能够创建通配符Alias A记录,指向CloudFront分配,它将请求转发到beanstalk应用程序。