YoK*_*GFX 0 domain-name-system
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.
Run Code Online (Sandbox Code Playgroud)
我的问题
这个回复的顺序有多重要?因为我看到很多网站都发送MX
然后TXT
然后SOA
然后NS
毕竟A
。是否有速度差异,或其他什么?
与host -a
您查询ANY
记录。这是 DNS 中特殊的“魔法”类型之一。ANY 不是对单个类型(如 A 、 AAAA 或 MX )的查询,而是检索给定名称的所有可用类型。
ANY
请求主要是人类操作员的诊断工具。通常,应用程序只会对单个特定类型进行查询。
ANY
返回响应的顺序没有相关性。
当您查询特定的记录类型时,即使用host -t MX google.com
ordig -t A serverfault.com
并且您得到多个响应时,确实可能会按照它们返回的顺序产生相关影响。
当特定查询将导致多个响应时,名称服务器和解析器通常会执行循环 DNS。在一个请求和下一个请求之间,它们发送这些响应的顺序会有所不同。由于大多数客户端将连接到他们收到的第一个响应,因此这种变化将导致一些负载平衡。
A
, AAAA
, NS
(可能还有其他) - 允许多个响应,并且可能会发生循环 DNS。
例如,看看当您对 serverfault.com ip-address 执行多次查找时会发生什么:
$ 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
Run Code Online (Sandbox Code Playgroud)
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.
Run Code Online (Sandbox Code Playgroud)
SOA
- 只允许一个响应,订购不是问题
CNAME
- 只允许一个响应(请参阅此问答),订购不是问题