DNS A 与 NS 记录

Tid*_*ddo 58 domain-name-system nameserver

我试图更好地理解 DNS,但我仍然没有完全获得 A 和 NS 记录。

据我所知,A 记录告诉我哪个 IP 地址属于(子)域,到目前为止我还很清楚。但据我所知,NS 记录告诉哪个名称服务器点属于(子)域,而该名称服务器应该告诉哪个 IP 地址属于(子)域。但这已经在同一个 DNS 文件的 A 记录中指定了。所以有人可以向我解释 NS 记录和名称服务器到底是做什么的,因为我可能理解错了。

编辑:据我所知,NS 记录告诉您要找到具有某个域的 A 记录的 DNS 服务器,而 A 记录告诉您哪个 IP 地址属于某个域。但是将 A 和 NS 记录放在同一个 DNS 文件中有什么用呢?如果某个域已经有 A 记录,那么为什么您需要指向另一个 DNS 服务器,它可能会给您相同的信息?

vor*_*aq7 59

虚拟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 .......
Run Code Online (Sandbox Code Playgroud)

A Record = "被称为主机的主机foo.com位于地址 192.168.100.1"
NS Record = "如果你想了解该foo.com区域中的主机,请询问名称服务器 ns1.bar.com"

  • 我喜欢 foobar 引用。:D (7认同)
  • @voretaq7 所以基本上 NS 记录用作备份机制并在域的 ip 地址更改时通知这些名称服务器? (3认同)
  • @Tiddo 一个重要的原因是从服务器通常会收到区域更改的通知,因为它们被列为 NS 记录。此外,如果您在查找其他内容的过程中向权威服务器查询 `ns1.foo.com` 的地址,并且那里不存在该记录,您将得到 `NXDOMAIN` 并且会发生坏事(但它会为查询 `com` 父服务器的人工作,因为那里大概会有胶水 A 记录) (2认同)
  • @tiddo 并作为上述和许多其他答案中的路标。可能还有其他关于 NS 记录的事情我已经忘记了,但那些是我想到的两个重要的事情。 (2认同)

And*_*w B 28

这是一个老问题,但我认为其他答案并没有真正触及混乱的根源。NS顶点处的NS记录与顶点下的记录遵循一组不同的规则。

从这些规则中,我们可以针对ADNS 服务器上存在同名记录时发生的情况推导出两种不同的行为:

  • 如果NS记录没有定义推荐,其他数据可以与它一起存在于同一区域中。由于服务器认为自己对NS记录和A记录都具有权威性,因此不存在冲突。这就是为什么其他数据通常与NS区域顶点的记录一起存在的原因。
  • 如果该NS记录确实定义了一个引用,则该A记录会被zone cut有效地“屏蔽” 。此A记录不具有权威性,不得出现在权威性回复的答案部分。它可以潜在地用作显示在参考的附加部分中的胶水数据,但仅此而已。

令人困惑?是啊,就是。如果您在执行此操作时遇到问题,请在评论中留言,我会看看我能做些什么。

  • 你说的APEX是什么意思? (6认同)
  • @Ryan-Neal `NS` 记录在区域文件的顶部。 (2认同)

nos*_*nos 15

A 记录将名称映射到 IP 地址。例如

binary.example.com。在 192.168.1.42

指出 binary.example.com。解析为 192.168.1.42

NS 记录将名称映射到另一个名称服务器,即为该域提供服务的另一个 DNS 服务器。即“我不知道这个名字的 IP 地址,但如果你去问那边的名字服务器,它可能知道”

binary.example.com。IN NS otherbox.example.com
otherbox.example.com。在 192.168.1.2

如果您询问具有 binary.example.com 的上述 2 条记录的 DNS 服务器。(或 www.binary.example.com. 或 foo.bar.binary.example.com)。它会告诉你你必须去请求 192.168.1.2 来翻译这些名字(好吧,或者 dns 服务器可以为你做这件事,或者它可以缓存解析的名字并将它们返回给你。)

  • 这是我最喜欢的解释! (2认同)

Duk*_*ion 12

如果您需要将子区域委托给不同的 DNS 服务器,那么在区域中同时拥有 NS 和 A 记录非常重要。

例如,我们有 DNS 服务器 ns1.bar.com 对区域 bar.com 具有权威性。我们需要将 foo.bar.com 委托给 ns1.foo.bar.com。所以我们需要创建区域 foo.bar.com 并将这些记录放在那里:

foo.bar.com.     IN NS ns1.foo.bar.com.
ns1.foo.bar.com. IN A  10.10.10.10
Run Code Online (Sandbox Code Playgroud)

如果我们没有 A 记录委派将不起作用。这样的记录对称为粘合记录。

Glue 记录是 DNS 系统查找非根区权威 DNS 服务器准确 IP 的唯一途径。如果您使用digwireshark检查任何域的NS记录或查看流量转储,您会看到答案中有“附加”部分。

;; 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
Run Code Online (Sandbox Code Playgroud)

在进行递归请求时,例如 www.foo.bar.com,您的 dns 客户端将请求 foo.bar.com 区域的 DNS 权威并得到答案 ns1.foo.bar.com。

为了更进一步,它需要发送对 ns1.foo.bar.com 的请求,该请求由... ns1.foo.bar.com 提供服务。要打破循环,委托 DNS 服务器应添加此附加部分,并带有 A 记录。

服务器 ns1.foo.bar.com 应该在其区域中具有相同的记录,因此它可以成为 foo.bar.com 区域的权威。


mrd*_*nny 10

NS 记录指定为该域名提供 DNS 服务的服务器。

A 记录将主机名(例如 www、ftp、mail)指向一个或多个 IP 地址。