DNS A与NS记录


42

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

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

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


请原谅旧问题,但我是DNS管理员,因此我不认为有任何建议可以充分解释问题。我可以解决这个问题,因为我早年也有同样的困惑。我提供了自己的答案。
安德鲁B

Answers:


44

虚拟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 .......

A Record =“被叫主机foo.com住在地址192.168.100.1”
NS Record =“如果您想了解foo.com区域中的主机,请询问服务器ns1.bar.com。


3
我喜欢foobar引用。:D
JohnThePro 2011年

2
@Tiddo的一个重要原因是,从服务器通常会被通知区域更改,因为它们被列为NS记录。另外,如果您ns1.foo.com在查找其他内容的过程中向权威服务器查询的地址,但那里的记录不存在,NXDOMAIN则会出现“坏事”(但对于查询com父服务器的人来说,它会起作用),因为大概那里会有胶A记录)
voretaq7 2011年

1
@JohnThePro-我的另一个选择是example.com,但我讨厌example.com引用:-)
voretaq7 2011年

3
@ voretaq7,所以基本上将NS记录用作备份机制,并在域的ip地址更改时通知那些名称服务器?
Tiddo 2011年

2
@tiddo,并作为上述的路标和其他许多答案。可能还有其他一些事情让我忘记了NS记录,但这是我想到的两大问题。
voretaq7 2011年

18

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

从这些规则中,我们可以得出两种不同的行为,即当A记录存在于具有相同名称的DNS服务器上时发生的情况:

  • 如果NS记录未定义引用,则其他数据可以在同一区域中与它并存。由于服务器认为自己对NS记录和A记录都具有权威性,因此不存在冲突。这就是为什么其他数据通常与NS区域顶点处的记录一起存在的原因。
  • 如果NS记录确实定义了引荐,则该A记录将被区域切割有效地“掩盖” 。该A记录不具有权威性,并且不能出现在权威性回答的答案部分中。它可以用作引用的其他部分中显示的粘合数据,仅此而已。

令人困惑?是啊,就是。如果您在执行此操作时遇到问题,请在评论中添加注释,我会做的。


您所说的APEX是什么意思?
瑞安·尼尔·梅斯

@ Ryan-Neal NS区域文件顶部的记录。
安德鲁B

9

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

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


7

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

binary.example.com。在192.168.1.42中

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

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

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

如果您询问具有上述2条记录的DNS服务器的binary.example.com。(或www.binary.example.com。或foo.bar.binary.example.com)。它会告诉您,您将必须要求192.168.1.2转换这些名称(或者,dns服务器可以为您完成这些操作,或者可以将解析的名称缓存起来并返回给您。)


通常,您会看到DNS记录,其中指定了相同域的NS和A记录。但是,如果一个NS记录告诉要找到A记录,那么如果该A记录已经存在,那么在同一文件中该NS记录的用途是什么?
Tiddo 2011年

这是我最喜欢的解释!
本杰明

6

如果需要将子区域委派给其他DNS服务器,则在区域中同时包含NS和A记录很重要。

例如,我们拥有对bar.com区域具有权威的dns服务器ns1.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

如果我们没有A唱片代表团将行不通。这样的记录对称为粘合记录。

胶水记录是DNS系统为非根区域查找权威DNS服务器的确切IP的唯一方法。如果您使用来检查任何域的NS记录,dig或使用Wireshark查看流量转储,您都会看到答案中有“其他”部分。

;; 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

当执行递归请求时,例如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区域具有权威性。


直到我看到您的胶水记录解释之前,我一直很难理解鸡肉和鸡蛋的问题!
乔恩·斯卡佩提格

3

NS记录仅存在是为了定义哪个名称服务器负责特定域。

存在A记录,用于“寻址”特定的机器或服务。

适合您的示例:

在DNS控制面板中,您会看到一些NS记录,这些记录是您的NAMESERVERS或负责告诉互联网您域中内容所在位置的主要计算机。

NS1.CP.COM NS2.CP.COM

同样在DNS面板中,您将拥有一个自己的域(即-mikesfunhouse.com),该域需要一些服务,例如网站。

因此,您要做的是拥有Primary A记录,将“ mikesfunhouse.com”指向“ 76.19.87.956”(显然是假IP)。

然后,您将创建另一个记录,即www记录,该记录将重定向子域“ www”。主站点的一部分。

简而言之,您可以使用A记录将名称空间转换为IP地址。


1

名称服务器记录告诉Internet哪个DNS服务器保存A记录,因此要查找子域的A记录,大致过程如下:

查找域的名称服务器->在名称服务器中查询子域的A记录


但是,如果A记录已经在同一文件中,为什么还要指定NS记录呢?
Tiddo 2011年

1
这就是您要寻找的一切。NS记录就像一个起点。如果服务器以前从未访问过您的域,则它将首先找到NS服务器响应您的域。在确定该服务器后,它将向该服务器查询所涉及域的A记录。
JohnThePro 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.