DNS 查找中答案顺序的重要性

DNS 查找中答案顺序的重要性

DNS 应答的顺序有多重要?

例子:

如果你host -a google.com在终端中输入,你会看到:

;; ANSWER SECTION:
google.com.     300 IN  A   172.217.21.14
google.com.     300 IN  AAAA    2a00:1450:4016:80b::200e
google.com.     3600    IN  TXT "v=spf1 include:_spf.google.com ~all"
google.com.     345600  IN  NS  ns4.google.com.
google.com.     600 IN  MX  30 alt2.aspmx.l.google.com.
google.com.     600 IN  MX  40 alt3.aspmx.l.google.com.
google.com.     345600  IN  NS  ns2.google.com.
google.com.     60  IN  SOA ns1.google.com. dns-admin.google.com. 192227941 900 900 1800 60
google.com.     300 IN  TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
google.com.     600 IN  MX  20 alt1.aspmx.l.google.com.
google.com.     600 IN  MX  50 alt4.aspmx.l.google.com.
google.com.     345600  IN  NS  ns3.google.com.
google.com.     86400   IN  CAA 0 issue "pki.goog"
google.com.     600 IN  MX  10 aspmx.l.google.com.
google.com.     345600  IN  NS  ns1.google.com.

我的问题
回复的顺序有多重要?因为我看到很多网站都是先发送 然后MX然后TXT然后SOA然后 然后 最后NS然后A。速度有差异吗,还是其他原因?

答案1

查询host -a记录ANY。这是 DNS 中特殊的“魔法”类型之一。ANY 不是查询 A、AAAA 或 MX 等单一类型,而是检索所有可用的给定名称的类型。

ANY请求主要是人类操作员的诊断工具。通常,应用程序只会针对单一特定类型进行查询。

ANY返回响应的顺序无关紧要。


当你查询特定的记录类型时,即使用host -t MX google.comdig -t A serverfault.com,你会得到多个响应,可能确实有相关效果按照返回的顺序。

名称服务器和解析器通常执行轮询 DNS当特定查询将导致多个响应时。它们发送这些响应的顺序会因请求的不同而不同。由于大多数客户端将连接到它们收到的第一个响应,因此这种变化将导致一些负载平衡。

AAAAANS(并且可能其他的) - 允许多个响应,并且可能出现循环 DNS。
例如,看看当您对 serverfault.com ip 地址执行多次查找时会发生什么:

$ host -t A serverfault.com
serverfault.com has address 151.101.193.69      <=== 1
serverfault.com has address 151.101.1.69        <=== 2
serverfault.com has address 151.101.65.69       <=== 3
serverfault.com has address 151.101.129.69      <=== 4

$ host -t A serverfault.com
serverfault.com has address 151.101.1.69        <=== 2
serverfault.com has address 151.101.65.69       <=== 3
serverfault.com has address 151.101.129.69      <=== 4
serverfault.com has address 151.101.193.69      <=== 1

$ host -t A serverfault.com
serverfault.com has address 151.101.65.69       <=== 3
serverfault.com has address 151.101.129.69      <=== 4
serverfault.com has address 151.101.193.69      <=== 1
serverfault.com has address 151.101.1.69        <=== 2

MX- 允许多个响应。解析器返回它们的顺序通常对客户端来说并不重要,因为MX记录优先定义可用 MX 记录的相对排名的字段,但具有相同优先级的多个 MX 记录应导致类似于例如多个 A 记录的循环效果:

                              _ MX preference aka priority 
                             /
google.com.     600 IN  MX  30 alt2.aspmx.l.google.com.
google.com.     600 IN  MX  40 alt3.aspmx.l.google.com. 
google.com.     600 IN  MX  20 alt1.aspmx.l.google.com.
google.com.     600 IN  MX  50 alt4.aspmx.l.google.com.
google.com.     600 IN  MX  10 aspmx.l.google.com.

SOA- 只允许一个回复,排序不是问题

CNAME- 只允许一个答案(参见此问答),订购不是问题

相关内容