我有域名 example1.com - DNS 由 Linode.com 管理
在 example1.com (1.1.1.2) 上托管有一个网站,并且运行良好。
我有一条 example1.com 的 A 记录,它将 sub.example1.com 指向 1.1.2.2
我可以确认对 sub.example1.com 的请求解析为 1.1.2.2,正如预期的那样。
我已将 sub.example1.com 添加到 DigitalOcean 并链接到我的服务器。
sub.example1.com 可以从 DigitalOcean 的服务器成功加载我的网站。
现在,我添加了一个*
指向相同 1.1.2.2 (*.sub.example1.com) 的A 记录通配符
我已经等待 DNS 传播很长时间了,但由于无法找到主机,对 random.sub.example1.com 的 ping 操作失败。
为什么我不能为子域名的子域名添加通配符?这可能吗?
答案1
似乎存在配置错误。您正在尝试为子域定义单独的 DNS 区域,但面向互联网的 DNS 服务器上不存在该区域。
这是我所看到的,将您的域名替换为example.com.ng
:
$ dig +trace accounts.example.com.ng SOA
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> +trace accounts.example.com.ng SOA
;; global options: +cmd
. 130141 IN NS l.root-servers.net.
. 130141 IN NS i.root-servers.net.
. 130141 IN NS d.root-servers.net.
. 130141 IN NS e.root-servers.net.
. 130141 IN NS g.root-servers.net.
. 130141 IN NS j.root-servers.net.
. 130141 IN NS k.root-servers.net.
. 130141 IN NS c.root-servers.net.
. 130141 IN NS m.root-servers.net.
. 130141 IN NS a.root-servers.net.
. 130141 IN NS b.root-servers.net.
. 130141 IN NS f.root-servers.net.
. 130141 IN NS h.root-servers.net.
;; Received 488 bytes from 75.75.75.75#53(75.75.75.75) in 15 ms
ng. 172800 IN NS ns1.nic.net.ng.
ng. 172800 IN NS ns2.nic.net.ng.
ng. 172800 IN NS ns3.nic.net.ng.
ng. 172800 IN NS ns4.nic.net.ng.
ng. 172800 IN NS nsa.nic.net.ng.
;; Received 246 bytes from 128.63.2.53#53(128.63.2.53) in 48 ms
example.com.ng. 21600 IN NS ns1.linode.com.
example.com.ng. 21600 IN NS ns2.linode.com.
example.com.ng. 21600 IN NS ns3.linode.com.
;; Received 104 bytes from 194.0.1.29#53(194.0.1.29) in 81 ms
example.com.ng. 86400 IN SOA ns1.linode.com. REDACTED.gmail.com. 2015030476 14400 14400 1209600 86400
;; Received 108 bytes from 65.19.178.10#53(65.19.178.10) in 74 ms
看到SOA
末尾的记录了吗?这不是SOA
您的第二个区域的记录。我们无法告诉您为什么会出现这种情况,但在更正此问题之前,您在第二个区域文件中所做的任何更改都不会影响 DNS 查询。
答案2
我将分享我从 Linode 和 Digital Ocean 收到的回复,因为我相信它们在某些时候可能会对某些人有用:
利诺德
我认为您看到的问题是由于您没有二级域名的 DNS 区域。据我所知,您需要为 accounts.example.com.ng 创建一个新区域,您需要在 example.com.ng 区域上创建指向 ns1.linode.com - ns5.linode.com 的 NS 记录。
完成此操作后,您可以为通配符创建 CNAME,指向您想要指向的位置。然后,您需要为“accounts.example.com.ng”创建 A 记录(主机名字段将为空白),该记录指向您选择的任何 IP 地址(甚至 127.0.0.1)。
我希望这有帮助!
数字海洋
我看到您在此处将通配符记录添加到 DNS 设置中,并且看起来正确;但是,如果顶级域 (example.com.ng) DNS 由 Linode 的名称服务器提供服务,则应在此处添加记录,而不是在 DigitalOcean 上创建单独的 DNS 区域文件。如果有任何配置问题,他们的支持团队可以看到您尝试创建的 DNS 记录,并且能够更好地提供帮助。
如果您还有其他问题请告知我们!
第二条记录(不同员工):
感谢您今天抽出时间写信。这种级别的 DNS 服务是完全有可能的。您面临的问题是,您在创建 accounts.example.com.ng 时只是添加了一条 A 记录。而 *.accounts.example.com.ng 记录需要实际的子域委派才能工作。子域需要名称服务器记录指向新服务器进行委派。如果您在 accounts.example.com.ng 上运行名称服务器并将整个区域委派给该服务器,那么您可以让 accounts.example.com.ng 托管 *.accounts..example.com.ng。
它看起来类似于这样:
ns1.linode.com (权威服务器) - example.com.ng
| -----> ns1.accounts.example.com.ng (权威服务器) - accounts.example.com.ng (DigitalOcean Droplet) | -----> ns1.accounts.example.com.ng A 1.1.2.2 -----> *.accounts.example.com.ng A 1.1.2.2
您还可以尝试测试双通配符记录。它看起来类似于以下内容:
*.*.example.com.ng A 1.1.2.2
为了更好地理解通配符 DNS 记录,我建议阅读http://en.wikipedia.org/wiki/Wildcard_DNS_record如需更深入地了解该主题,请阅读 https://www.rfc-editor.org/rfc/rfc4592
如果我们还能为您提供其他帮助,请告知我们。
最好的,Mike DigitalOcean 支持查看我们的社区,获取精彩的教程、文章和常见问题解答! https://digitalocean.com/community
我将对此进行分析并尝试建议的解决方案。我会用任何可行的方法更新此帖子!
更新: 与 Linode 支持人员交换了几条消息后,我能够正确配置 DNS。以下回复很有帮助:
唯一的方法是将 accounts.example.com.ng 设置为单独的区域,然后在该区域内为 accounts.example.com.ng 当前设置的 IP 创建 A 记录,然后将该区域内的 *.accounts.example.com.ng 设置为您需要的 IP。