我拥有一个域名(我们称之为 example.com),由我自己的 DNS 服务器提供服务。(我要求我的注册商为 ns1.example.com 和 ns2.example.com 创建指向我服务器 IP 地址的粘合记录)
现在想象一下,我的一个朋友获得了一个名为 new-domain.com 的新域名,我想使用我的 DNS 服务器帮助他管理他的域名。
因此,在我的 DNS 服务器中,我创建了两个 A 记录:
my1.ns.example.com -> some.ip.addr
和
my2.ns.example.com -> some.ip.addr
(some.ip.addr 是我的 DNS 服务器的 IP 地址)
并要求他将域名服务器更改为
my.ns1.example.com
和
my.ns2.example.com
但是他无法设置它们,因为他的域名面板中出现无效的名称服务器错误!
我们询问了我朋友的域名支持团队,他们回答说这些名称服务器无效!
我联系了我的域名支持,他们说他们已经为我注册了这些名称(我猜他们创建了粘合记录!)并且它开始工作了。
我的理解是,因为 example.com 在 DNS 系统中运行正常,因此 my1.ns.example.com 和 my2.ns.example.com 可以正确解析为 IP 地址,所以没有什么可以阻止它们用作 new-domain.com 的名称服务器
我搜索了一下,发现有些人说应该注册名称服务器。我理解当我们必须要求设置粘合记录时进行注册,但对于这种情况,我不知道为什么我们需要注册这些名称。
有人能解释一下这个场景中发生了什么吗?
更新:
这是由 cloudflare.com dns 系统提供服务的域的 dig trace 输出。
dig +trace +additional davat.info @8.8.8.8
; <<>> DiG 9.9.5-3ubuntu0.10-Ubuntu <<>> +trace +additional davat.info @8.8.8.8
;; global options: +cmd
. 67120 IN NS a.root-servers.net.
. 67120 IN NS b.root-servers.net.
. 67120 IN NS c.root-servers.net.
. 67120 IN NS d.root-servers.net.
. 67120 IN NS e.root-servers.net.
. 67120 IN NS f.root-servers.net.
. 67120 IN NS g.root-servers.net.
. 67120 IN NS h.root-servers.net.
. 67120 IN NS i.root-servers.net.
. 67120 IN NS j.root-servers.net.
. 67120 IN NS k.root-servers.net.
. 67120 IN NS l.root-servers.net.
. 67120 IN NS m.root-servers.net.
. 67120 IN RRSIG NS 8 0 518400 20170724170000 20170711160000 15768 . hOOzt9mqEniQLhLc+jNqChne/uMaCy0COI/3JObhMhpZWilJxm7g71q2 H4OIfgpxAdG77B/dsQbgPfScW7jemvKyZ+Jr72+Fuv0zQB5BoY0PQ9i/ JOoQQ9T6yqoxyMCV5+elx5KA8q95cFO1kQ0U7GwXnM5nGOE2M1Xs7cWh kdz05pErCoZ1I2V2+/DEHNrjOtpGtO/ysX0UBeKeWpGB88k2BLN/yLBN 2g8AkGlv6+S/cC+WuMHAAg25DxtrDm06jt5cwiQ+MNj6wOihZX+vRx41 AJU9SQg5vYY8P8KRtXn2sbzBrrqR/eJPWeWeouDUYQAomp6PUG3dsEjz /0iZZg==
;; Received 525 bytes from 8.8.8.8#53(8.8.8.8) in 9070 ms
info. 172800 IN NS a0.info.afilias-nst.info.
info. 172800 IN NS a2.info.afilias-nst.info.
info. 172800 IN NS b0.info.afilias-nst.org.
info. 172800 IN NS b2.info.afilias-nst.org.
info. 172800 IN NS c0.info.afilias-nst.info.
info. 172800 IN NS d0.info.afilias-nst.org.
info. 86400 IN DS 8674 7 1 197789A2CBABA6FECD0B5AC88C5BC414CE1FC309
info. 86400 IN DS 8674 7 2 EC9B6082B96B5F87143696F2B483ACC9B2C433DCE0C94E70F1FF5648 CA18008B
info. 86400 IN RRSIG DS 8 1 86400 20170727050000 20170714040000 15768 . RAOIKJ8CIq3gwj+WNN8pOdsNR+2KevOjFU22joZZORzuc3h30cIpi8jJ zFFRNVd0bXAzi9xPEZBhzy3o5MuDjPfeOtrROT8/SBTV64eoMoxJn31F myy0Aq5h1NLiw3LYJMGhQ/9JKXQc9PN/d0ifYer57rxtKvsS3PAtXwLu vP166UgoovFP7u37R6+Lr8vKpaRJu7P6RTP42Gzams6xnLkupsnnuFYt 6YcCJ4G2f9tDQLP4aaV2WtbKoNz79G9gyWdkwS5N1jGHDZRTVv+VlKER Mive01mOp+DfsqHLtanB7kLT2EOCOpO6ApREjVHcM6bM8bRK6pQn3FdM lh0Hdw==
a0.info.afilias-nst.info. 172800 IN A 199.254.31.1
a2.info.afilias-nst.info. 172800 IN A 199.249.113.1
b0.info.afilias-nst.org. 172800 IN A 199.254.48.1
b2.info.afilias-nst.org. 172800 IN A 199.249.121.1
c0.info.afilias-nst.info. 172800 IN A 199.254.49.1
d0.info.afilias-nst.org. 172800 IN A 199.254.50.1
a0.info.afilias-nst.info. 172800 IN AAAA 2001:500:19::1
a2.info.afilias-nst.info. 172800 IN AAAA 2001:500:41::1
b0.info.afilias-nst.org. 172800 IN AAAA 2001:500:1a::1
b2.info.afilias-nst.org. 172800 IN AAAA 2001:500:49::1
c0.info.afilias-nst.info. 172800 IN AAAA 2001:500:1b::1
d0.info.afilias-nst.org. 172800 IN AAAA 2001:500:1c::1
;; Received 813 bytes from 198.41.0.4#53(a.root-servers.net) in 2475 ms
davat.info. 86400 IN NS jobs.ns.cloudflare.com.
davat.info. 86400 IN NS nicole.ns.cloudflare.com.
adnsd9nk7nk82he8h21rj0jjhj11o5gb.info. 3600 IN NSEC3 1 1 1 D399EAAB ADOJ3MLQ5868PVF3LE0F5DCDGAVUTU55 NS SOA RRSIG DNSKEY NSEC3PARAM
adnsd9nk7nk82he8h21rj0jjhj11o5gb.info. 3600 IN RRSIG NSEC3 7 2 3600 20170804103358 20170714093358 30893 info. FB7zcjFKGziJ457Vh/pIPkWqLguFe+rabdfJTa9McavqzOBGJIZTyhx/ icNVIyE4qBIJQ9xe7f1OmN5UHVe41nxBCWpH+JNQYHshWYKOIYCgdYE8 gHepP1ZR5AQ2Ev5lE0f/9+GBPlwxF47IKRQOYdFT51C2icm/SUvtdCG/ 4Ak=
2jefac1stko456rdlfe7g88kmtsvu2qs.info. 3600 IN NSEC3 1 1 1 D399EAAB 2JFPEQI6J2CMI8JU5V4Q0UTP6UDK9RQD NS DS RRSIG
2jefac1stko456rdlfe7g88kmtsvu2qs.info. 3600 IN RRSIG NSEC3 7 2 3600 20170730151955 20170709141955 30893 info. RQ4jTb4j7Dkp+M53zGqEiq3cyP6aCLqqIYyX9R9N4TXHHuBdw5XY78ma 9EDQt8I5NAiABKpImwy0HHudP8yVvaMhL/30ffHbt+naPWYTx9XVP/z9 xXkNtWAvATjf8Z9ntQOU/FBIOQHdfwg2HIv42PX+xvmsIMlx7HPmsyOW J4o=
;; Received 591 bytes from 199.249.113.1#53(a2.info.afilias-nst.info) in 983 ms
davat.info. 300 IN A 82.102.11.201
;; Received 55 bytes from 173.245.58.211#53(nicole.ns.cloudflare.com) in 181 ms
对于域名 davat.info,已设置两个 cloudflare 名称服务器。
jobs.ns.cloudflare.com.
nicole.ns.cloudflare.com.
我认为如果这两个名称服务器有任何粘合记录,则名称服务器响应后会有附加记录。
davat.info. 86400 IN NS jobs.ns.cloudflare.com.
davat.info. 86400 IN NS nicole.ns.cloudflare.com.
但没有!
如果我在上述 new-domain.com 域的域控制面板中输入 cloudflare 的这两个名称服务器,则不会出现错误!
因此,如果 jobs.ns.cloudflare.com 和 nicole.ns.cloudflare.com 确实没有设置粘合记录,那么为什么它对这些名称有效,而对我的域控制面板中的名称无效?
我需要知道这一点,因为我需要能够以编程方式创建动态名称服务器,并要求我的用户在其注册商中输入其域名的特定名称服务器。
答案1
我的理解是,因为 example.com 在 DNS 系统中运行正常,因此 my1.ns.example.com 和 my2.ns.example.com 可以正确解析为 IP 地址,所以没有什么可以阻止它们用作 new-domain.com 的名称服务器
我搜索了一下,发现有些人说应该注册名称服务器。我理解当我们必须要求设置粘合记录时进行注册,但对于这种情况,我不知道为什么我们需要注册这些名称。
不同之处在于胶水记录的位置。当您在注册商控制面板中看到有关无效名称服务器的错误时,对于其他可解析的 DNS 实体,通常它会抱怨缺少胶水记录在注册层级.com
无法为您的朋友的域提供粘合剂,因为记录是在 内定义的example.com
。
从纯粹的 DNS 角度来看,权威域名服务器(例如com
)不应该执行任何类型的递归来了解区域中定义的名称服务器的 IP 地址example.com
。相反,注册中心允许注册商向com
域添加粘合记录,并且这些注册商可以提供用户界面,以便这些自定义名称服务器所在的域的所有者可以这样做。(例如:Namecheap - 如何为我的域名注册个人名称服务器?)
(为了解决房间里的大象问题...不,这些胶水记录并不严格要求。但政策就是政策,如果注册商界面需要注册级粘合,你就别无选择。)
答案2
您的理解是正确的。我只能推测,当您的朋友将他的 NS 记录更新为“my.ns[12].example.com”时,它们尚未解析。事后很难确定。
答案3
如果您的朋友希望您为他设置 DNS,他只需在其注册商处输入 ns1/ns2.yourdomain.com 作为其名称服务器。
您需要为他设置适当的区域文件,其中包含 A 记录、MX 记录、SPF/TXT 记录等。
如果您想将子域名委托给他,您需要在您这边做一些事情,然后在他这边做一些事情,然后他就会拥有一个带有工作名称服务器的子域名。请注意,我还没有测试过这个子域名服务器作为第三个域名的域名注册中心中的 NS 条目,但它应该可以工作。
首先,在您的域上,在区域文件中创建子域。
$ORIGIN subdomain.example.com.
@ IN NS subdomain.example.com.
IN NS ns1.example.com.
subdomain.example.com. IN A 10.2.3.4
并且在named.conf
或named.conf.local
无论您存储“要服务的域名”信息的位置,指定对于该域名,您的名称服务器将为从属服务器,而他的服务器将为主服务器,使用10.2.3.4
subdomain.example.com (您的朋友地址)的 ip 地址替换 ip。
zone "subdomain.example.com" {
type slave;
file "sec.example.com";
masters { 10.2.3.4; };
};
现在,在他的服务器上,named.conf
或者named.conf.local
他需要添加一个条目来为该域提供服务,并允许您的名称服务器在他更新/发送通知时获取域名转移,用172.16.123.x
ns1.example.com 和 ns2.example.com 的 IP 地址替换地址
zone "subdomain.example.com" {
type master;
file "/etc/bind/pri.subdomain.example.com";
allow-transfer {172.16.123.231; 172.16.123.232;};
};
然后他创建了他的区域文件,/etc/bind/pri.subdomain.example.com
看起来像这样 -
$TTL 86400
@ IN SOA example.com. admin.example.com. (
2017030707 ; serial number
2h ; refresh = 2 hours
15M ; update retry = 15 minutes
3W12h ; expiry = 3 weeks + 12 hours
2h20M ; minimum = 2 hours + 20 minutes
)
; sub-domain name servers
IN NS subdomain.example.com.
IN NS ns1.example.com. ; see notes below
IN NS ns2.example.com. ; see notes below
; sub-domain mail server
IN MX 10 mail.subdomain.example.com.
subdomain.example.com. IN A 10.2.3.4
ns1.example.com. IN A 172.16.123.231 ; 'glue' record
ns2.example.com. IN A 172.16.123.232 ; 'glue' record
; and then some other hosts in the subdomain
www IN A 10.2.3.4
mail IN A 10.2.3.7
subdomain.example.com. TXT "v=spf1 a mx ptr ~all"
现在subdomain.example.com
是一个权威的名称服务器,并在其自己的区域中创建更多主机,或者它应该能够成为其他区域的主要名称服务器。