我们可以有多个CNAMES作为单个名称吗?

我可以有多个CNAMES作为单个名称吗? 我需要这个负载平衡。 例如,我有两个azure色的存储帐户(比如a和b),这些blob地址是a.blob.core.windows.net和b.blob.core.windows.net。 他们都存储相同的数据。 现在我需要提供一个指向两个存储帐户的单个外部名称(比如说mydata.com),并且应该循环工作。 如果我在DNS中创build两个CNAME条目,就可以实现这一点,并在循环中parsing其中的一个。

  1. mydata.com CNAME a.blob.core.windows.net
  2. mydata.com CNAME b.blob.core.windows.net

但是我不能在windows dns服务器上为一个名字创build两个CNAMES。 那么有可能吗?

同一个完全限定的域名的多个CNAMElogging违反了DNS的规范。 一些版本的BIND将允许你这样做(一些只有当你指定了multiple-cnames yes选项时)才会循环负载平衡,但在技术上并不合法。

不应该有与CNAME同名的资源logging(RR),并且要选取包含多个相同CNAME的尼特(nits)。 Quoth RFC 1034,第3.6.2节:

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

用来处理你正在做的事情的RFC方法是用一个指向负载平衡的“A”logging的单个CNAME。

你不能。 一个CNAME使一个logging另一个名字。 如果一个logging可能有两个名字的CNAMES,那么这两个名字都不会是另一个名字,而是一个全新的名字,使得CNAME条目不合适。

尽pipe如此,解决外部问题可能是一个好方法。 例如,您可以有多个Alogging。