通配符CNAME DNS记录有效吗?


Answers:


60

可以这样做。有一点它悬而未决,直到4592澄清它应该得到支持。

仅仅因为有可能并不意味着所有DNS提供商都支持它。例如,GoDaddy不允许您在CNAME记录中设置通配符。

关于是否建议这样做,取决于您的用法。通常,当您指向不受DNS控制的“外部”域名时,CNAMES通常用于方便使用。

例如,假设您设置了一个CMS系统,该系统允许您将* .mycms.com作为站点名称(它使用主机标头)。您希望客户能够轻松设置* .cms.customer.com,而不必担心您可能会在某个时候更改IP地址。在这种情况下,您可以建议他们将通配符CNAME设置为* .cms.customer.com到www.mycms.com。

由于并非所有提供程序(例如GoDaddy)都支持通配符CNAMES,因此,当您为各种客户建议使用通配符CNAMES(您不知道其提供程序的功能)时,我不建议您使用通配符。


8
实际上,您可以使用GoDaddy设置通配符DNS。只需将主机设置为“ **”。
克里斯·彼得施曼

2
我看到**被GoDaddy的DNS管理器工具接受,但是它可以用作通配符吗?似乎是一个未记录的功能。
dunxd 2011年

4
我已经测试过:**在GoDaddy DNS中不能用作通配符。我多次致电以确保在由于这个原因而切换到另一个提供商之前,没有办法(即使使用他们的Premium DNS)也是如此。
mltsy 2012年

3
@mltsy:我们的主要站点之一与GoDaddy一起使用通配符dns。我们已经有几年了,我们没有使用他们的Premium DNS。另外,*不是**
NotMe 2013年

2
@DaveKanter哦,对了。文章声明仅提及A记录。不过,*今年2月,我已经成功为客户设置了通配符CNAME记录。使用GoDaddy仪表板。我确认它可以像人们期望的那样工作。
e1v

20

我加了线

*.www        IN CNAME        my_webserver

到我的绑定配置中的区域文件,并且效果很好(即whatever.www.domain.comwhatever2.www.domain.com所有指向my_webserver

也可以通过添加以下行来添加例外

exception.www        IN CNAME        another_server

因此exception.www.domain.com指出another_server



4

我们一直使用通配符dns,并且没有任何问题。如果将其指向ipaddres,请使用:

*.mysite.com     Host (A)    Default     xxx.xxx.xxx.xxx

如果要使用别名,请执行以下操作:

*.mysite.com.   IN CNAME mysite.com.

当我们使用通配符ssl证书(ssl.com)时,第一个设置对我们来说效果很好,我们希望每个用户都具有username.mysite.com
Yogi

4

据我所知,您可以执行此操作,但随后CNAME不能被任何其他记录类型(如NS或MX)使用。

不太确定您要使用“通配符”实现什么,因此我必须给出一个通用答案:)

为了明确起见,CNAME aserver.domain表示您不能具有另一个名称。aserver.domain

当然也有例外,但是我不知道它们是什么,您并不确定要做什么,所以我不会浪费时间。


感谢您关于CNAME与同一域的另一种记录类型共享记录的警告。我有一个类似的问题,我的DNS服务器通常会警告我有关冲突的信息,但在这种情况下,并不是因为CNAME是针对的*.example.com,而额外的记录(一条TXT记录)是针对特定子域的subdomain1.example.com。因此它没有引起冲突!哎呀
Paul d'Aoust '16

2

创建CNAME记录时,在指向服务器的末尾加点,例如:*。mydomain.com。注意最后一个点


1

这是我测试的结果。我删除了mysite.com和www.mysite.com的A记录,并为* .mysite.com添加了CNAME记录。该测试无效。mysite.com无法解决。需要明确的是,我将OpenDNS用于我的DNS服务器。也许它可以与其他DNS服务器配合使用,但是我显然希望它能够普遍运行。基于这些结果,我将坚持使用标准A记录。


这不是预期的行为吗?据我所知,无论RR类型如何,*。mysite.com都不与mysite.com相匹配。这对A记录有用吗?
markdrayton

不,“ ”匹配一个或多个标签,因此“ .example.com”与“ example.com”不匹配
Alnitak

我不知道,但这是有道理的。因此,看来我至少需要一个A记录作为根域名,然后才能使用通配符CNAME记录来覆盖其他所有内容。那并不是我想要的解决方案,但至少我知道。
本·米尔斯

1

现在可以正常工作了。

只需在Godaddy的区域文件编辑器或DNS管理器的cname部分中使用“ *”,即可指向IP或DNS名称。

以我为例,我将其与指向Microsoft Azure云服务的DNS名称一起使用,并且效果很好。这适用于bla.domain.ext,但也适用于bla.bla.domain.ext。对于其他提供商,可能会有所不同。


1
DNS CNAME记录不指向URL或IP,而是指向具有CNAME条目的名称等效的单个DNS名称。
Falcon Momot 2013年

注意,我更改了答案
Martijn van Halen 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.