问题:是否可以合并 DNS 名称服务器?
在这个例子中,假设我example.com
通过服务(godaddy
,name.com
等)租赁域名
我可以选择将此域名及其所有记录指向不同的名称服务器,但是如果我想保留此名称服务器以用于记录等内容A
,但将通配符子域名 ( *.example.com
) 指向不同的名称服务器,该怎么办?这可能吗?
我查看了NS
记录,但那些似乎只是为了在多个服务器之间平衡 DNS 负载。
此外,本例中的“自定义”名称服务器将是一个node
应用程序(域名解析)
尽管我不确定这是否重要。
进一步解释一下(为了解释,使用本地 IP):
我的要求如下:
这些记录托管在name.com
以下位置:
A - example.com to ns1.name.com nameserver
A - api.example.com to ns2.name.com nameserver
这些记录托管在dnsd
(不同的名称服务器):
A - *.example.com to 192.168.0.32 nameserver
example.com
一个潜在的解决方案是否是为( )定义一个名称服务器ns.example.com
,然后将ns
的记录指向?*.example.com
ns.example.com
答案1
DNS 记录是一个层次结构。同一级别的任何内容(v1.example.com、v2.example.com 等)都将由为该级别(example.com)设置的 NS 记录解析
你能如果您愿意的话,可以为不同的级别/子域设置不同的名称服务器,例如(godaddy 上的 example.com、subdomain1.example.com 网络解决方案、subdomain2.example.com dns 变得简单)。
这称为区域委派。
答案2
正确的做法是设置一个更大的集群,但您可以让 NS 记录指向这样的子域。您可以挖掘这个域,但我不会让它在这个虚拟机上保持活动状态那么久。
$TTL 1m
$ORIGIN foobook.com.
@ IN SOA ns1.foobook.com. joeblownonesuch.foobook.com. (
2016081602
1m ; refresh
2m ; update
2m ; expiry
2m ; minimum
)
@ IN NS ns1
@ IN NS ns2
ns1 IN A 212.109.220.95 ; glue records
ns2 IN A 212.109.220.96
@ IN A 212.109.220.95 ; misc a records for testing
www IN A 212.109.220.96
mail IN A 212.109.220.95
test IN A 212.109.220.95
@ IN MX 10 mail.foobook.com.
sub.foobook.com. NS ns1.sedoparking.com.
www.foobook.com. NS ns1.sedoparking.com. ; overlaps with a record www.foobook.com.
这将为您带来以下结果:
[root@otherserver master]# dig +short @localhost test.foobook.com
212.109.220.95 [answer is from my server]
[root@cpc2-cosh11-2-0-cust725 master]# dig +short @localhost www.foobook.com
72.52.4.120 [answer is from ns1.sedoparking.com]
[root@otherserver master]# dig +short @localhost whatever.sub.foobook.com
72.52.4.120 [answer is from ns1.sedoparking.com]
[root@otherserver master]# dig +short @localhost mail.foobook.com
212.109.220.95 [answer is from my server]
[root@otherserver master]# dig +short @localhost ns1.foobook.com
212.109.220.95 [answer is from my server]
无论如何,212.* 是我的服务器,72.* 意味着它遵循指向 sedoparking 的 NS 指针(它对所有内容使用通配符 dns 记录)。
您实际应该做什么:在类似情况下,我所做的是使用大量 bash 脚本将区域文件转换为新格式的区域文件,然后我使用 dig +short 脚本比较每个子域的两个服务器的输出。
当您希望不同的公司或部门管理他们自己的子域名时,设置不同的服务器来提供子域名的 DNS 信息非常有用。