我试图更好地了解DNS,但我仍然没有完全得到A和NSlogging。
据我所知,Alogging告诉哪个IP地址属于(子)域,到目前为止我仍然清楚。 但据我所知,NSlogging告诉哪个名称服务器点属于(子)域,并且该名称服务器应该知道哪个IP地址属于(子)域。 但是这已经在同一个DNS文件的Alogging中指定了。 那么有人可以向我解释一下NSlogging和名称服务器到底做了什么,因为我可能明白了一些错误。
编辑:正如我理解你的正确,一个NSlogging告诉你find一个特定的域的AloggingDNS服务器,Alogging告诉你哪个IP地址属于一个域。 但是将A和NSlogging放在同一个DNS文件中有什么用? 如果某个域名已经有Alogging,那么为什么还需要指向另一个DNS服务器,这可能会给你提供相同的信息?
虚构foo.com
区域文件的一些例子
....... SOA record & lots more stuff ....... foo.com. IN NS ns1.bar.com. foo.com. IN A 192.168.100.1 ....... More A/CNAME/AAAA/etc. records .......
一个logging =“主机名为foo.com
住在地址192.168.100.1”
NSlogging =“如果你想知道在foo.com
区域的主机,请问名称服务器ns1.bar.com”
这是一个古老的问题,但我认为其他答案并没有真正触及混淆的根源。 在顶点的NS
logging遵循与顶点下的NS
logging不同的一组规则。
NS
logging在顶点不定义一个介绍。 相反,他们提供了这些NS
logging的权威定义。 NS
logging都定义了一个推荐。 此NS
logging不被视为权威性的,也不是共享相同名称的A
logging。 从这些规则中,我们可以推导出两种不同的行为,以便在具有相同名称的DNS服务器上存在A
logging时发生的情况:
NS
logging没有定义引用,则其他数据可以在同一个区域中同时存在。 由于服务器认为自己是NS
logging和A
logging的权威,所以不存在冲突。 这就是为什么其他数据通常与区域顶点的NS
logging一起生活的原因。 NS
logging确实定义了一个推荐,那么A
logging就被一个区域切割有效地“掩盖”了。 这个A
logging不是权威性的,不能出现在权威性回答的答案部分。 它可能会被用作引用附加部分中显示的胶水数据 ,但就是这样。 混乱? 是啊,就是。 如果你在这之后遇到麻烦,请在评论中留言,我会看看我能做些什么。
NSlogging指定为该域名提供DNS服务的服务器。
A将主机名(例如www,ftp,mail)指向一个或多个IP地址。
如果您需要将子区域委托给不同的DNS服务器,则在区域中同时存在NS和Alogging非常重要。
例如,我们有dns服务器ns1.bar.com zone.com的权威性。 我们需要将foo.bar.com委托给ns1.foo.bar.com。 所以我们需要创buildzone foo.bar.com并在那里放置这些logging:
foo.bar.com. IN NS ns1.foo.bar.com. ns1.foo.bar.com. IN A 10.10.10.10
如果我们不会有一个logging代表团将无法正常工作。 这种logging对称为胶水logging。
胶水logging是DNS系统为非根区域查找权威DNS服务器的确切IP的唯一途径。 如果您使用dig
检查NSlogging的任何域,或者使用wireshark查看stream量转储,则会看到答案中有“附加”部分。
;; ANSWER SECTION: foo.bar.com. 10800 IN NS ns1.foo.bar.com. ;; ADDITIONAL SECTION: ns1.foo.bar.com. 7972 IN A 10.10.10.10
在做recursion请求的时候,例如www.foo.bar.com,你的DNS客户端将要求foo.bar.com区域的DNS权威,并且得到答案ns1.foo.bar.com。
要进一步发送,需要发送ns1.foo.bar.com的请求,该请求由… ns1.foo.bar.com提供。 要打破循环,委托DNS服务器应该添加这个附加部分,与Alogging。
服务器ns1.foo.bar.com应该在其区域中有相同的logging,所以它可以是foo.bar.com区域的权威。
NSlogging存在唯一的目的是定义哪些NAMESERVERS负责特定的域。
Alogging存在以“地址”特定的机器或服务。
你的例子:
在您的DNS控制面板中,您将看到一些NSlogging,这些是您的NAMESERVERS或主机负责告诉互联网您的域名所在的位置。
NS1.CP.COM NS2.CP.COM
同样在你的DNS面板中,你将拥有一个你自己拥有的域名(即-mikesfunhouse.com),你需要有一些服务,比如一个网站。
所以你要做的就是有一个主要的Alogging,把“mikesfunhouse.com”指向“76.19.87.956”(显然是假的IP)。
然后,您将创build另一个logging,一个wwwlogging,它将redirect子域名“www”。 部分到您的主站点。
简而言之,您使用Alogging将命名空间转换为IP地址。
Alogging将名称映射到IP地址。 例如
binary.example.com。 IN A 192.168.1.42
指出binary.example.com。 parsing为192.168.1.42
NSlogging将名称映射到另一个名称服务器,即服务于该域的另一个DNS服务器。 即“我不知道这个名字的IP地址,但如果你去那边问这个名字服务器,它可能知道”
binary.example.com。 在NS otherbox.example.com otherbox.example.com。 IN A 192.168.1.2
如果您要求具有上述2个logging的DNS服务器binary.example.com。 (或www.binary.example.com或foo.bar.binary.example.com)。 它会告诉你,你将不得不去问192.168.1.2来翻译这些名字(或者,DNS服务器可以为你做,或者它可以有解决的名字caching并返回给你。)
名称服务器logging告诉互联网哪个DNS服务器保存Alogging,所以要查找一个子域的Alogging,大概是以下过程:
查找域的名称服务器 – >查询子域名A Record的名称服务器