在Azure-通配符CNAME或基于API的DNS(如Route 53)上配置子域,哪个更好?

在Azure-通配符CNAME或基于API的DNS(如Route 53)上配置子域,哪个更好?,azure,dns,cname,wildcard-subdomain,Azure,Dns,Cname,Wildcard Subdomain,我正在Azure上构建一个应用程序,需要为每个客户使用子域。子域将在注册过程中设置。自Azure以来,我必须决定是使用通配符CNAME还是使用API(如)手动添加每个条目 我担心通配符CNames,因为它们是否得到所有DNS系统的完全支持。我知道这是RFC规范的一部分,但我担心所有DNS系统都是最新的 或者,我担心为客户实时提供新的CNAME DNS条目。他们是否必须等待TTL过期,或者是否会立即获取新的子域CNAME条目 谢谢, Doug我不知道有多少DNS系统支持通配符,但我知道DNS缓存失

我正在Azure上构建一个应用程序,需要为每个客户使用子域。子域将在注册过程中设置。自Azure以来,我必须决定是使用通配符CNAME还是使用API(如)手动添加每个条目

我担心通配符CNames,因为它们是否得到所有DNS系统的完全支持。我知道这是RFC规范的一部分,但我担心所有DNS系统都是最新的

或者,我担心为客户实时提供新的CNAME DNS条目。他们是否必须等待TTL过期,或者是否会立即获取新的子域CNAME条目

谢谢,
Doug

我不知道有多少DNS系统支持通配符,但我知道DNS缓存失败。因此,如果用户在您设置新域之前请求它(或者可能从基本域请求任何内容),那么他需要等待TTL才能看到新条目。

DNS通配符就像是DNS服务器的元信息。它从不离开名称服务器,只是指示服务器以某种方式处理DNS查询

您的DNS客户端或其递归解析程序不知道、不需要知道,也不能告诉*您正在使用带有通配符的CNAME

您拥有的Serverfault链接意味着您将很难找到可以添加通配符的主机

如果Amazon Route 53支持CNAMES的通配符,那么这对于生产来说是好的,假设服务器的其余部分符合其他DNS RFC。您唯一应该关心通配符支持的其他时间是在不同的提供程序中使用辅助NS记录

关于TTL,有两个TTL需要注意:您创建的通配符CNAME或静态CNAME的TTL。还有一个记录TTL存储在Microsoft的名称服务器上,您无法控制它。(在SOA记录中,您也无法控制MSFT的NX域到期,但这是切线),当在PRD和DEV之间切换时,客户端需要缓存前一个记录直到A记录过期。如果您使用的是移动应用程序,那么我已经看到移动ISP缓存该条目的时间比预期的长,一些手机缓存a记录的时间也更长。有时解决这个问题的方法是重新启动手机

底线是不要担心CNAMETTL,重要的是A记录,MSFT拥有这一记录。执行dig或NSlookup以查看值。如果您发现一个支持通配符的名称服务器,请继续使用它,但我会担心安全性以及与其他RFC的兼容性。我真的只信任我的ISP(ATT)、UltraDNS和Dynect的DNS提供商。亚马逊和UltraDNS有着良好的关系。除ATT之外的所有应用程序都有一个SOAP API

如果您想使用ATT,您可以将其(或其他ISP)用作辅助DNS服务器,并使其成为主要名称服务器。然后对隐藏的主DNS进行所有更改

我喜欢DNS,所以请随时提出后续问题


*脚注:他们可以通过查询RandomGUID.domain.com来判断您是否使用CNAME。如果他们得到相同的答案,那么他们可以假设您使用的是通配符CNAME。

您最后做了什么?无论我的通配符CNAME DNS配置如何(Amazon Route 53),DNS查找都会失败,因此我正在努力将域添加到Azure。