DNS查询后,查询结果一般如下:
mirror@Ubuntu22:~$ dig www.baidu.com
; <<>> DiG 9.18.12-0ubuntu0.22.04.1-Ubuntu <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2424
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 1146 IN CNAME www.a.shifen.com.
www.a.shifen.com. 38 IN A 153.3.238.102
www.a.shifen.com. 38 IN A 153.3.238.110
;; Query time: 40 msec
;; SERVER: 114.114.114.114#53(114.114.114.114) (UDP)
;; WHEN: Mon Nov 27 15:13:05 CST 2023
;; MSG SIZE rcvd: 101
mirror@Ubuntu22:~$
我们尝试对以上输出结果逐行进行分析。
flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
Flags(标志位):qr rd ra,表示这个DNS响应是一个查询响应,包含了递归查询(rd)和递归可用(ra)的标志位。
flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
在 DNS 查询结果中,ADDITIONAL 部分指的是附加信息部分,它包含了对进行 DNS 查询所得到的记录提供了额外支持的信息。
通常情况下,ADDITIONAL 部分可能包含了有助于解析和理解查询结果的其他相关记录,比如域名的附加信息、其他域名服务器的IP地址等。
;; ANSWER SECTION:
www.baidu.com. 1146 IN CNAME www.a.shifen.com.
www.a.shifen.com. 38 IN A 153.3.238.102
www.a.shifen.com. 38 IN A 153.3.238.110
第一个条目是 www.baidu.com 的CNAME记录,指向 www.a.shifen.com。
后面两个条目是 www.a.shifen.com 的A记录,分别对应IP地址 153.3.238.102 和 153.3.238.110。
;; Query time: 40 msec
Query Time(查询时间):40毫秒,这是指整个DNS查询操作所花费的时间。
;; SERVER: 114.114.114.114#53(114.114.114.114) (UDP)
Server(服务器):响应此DNS查询的服务器IP地址为 114.114.114.114,端口为 53,使用UDP协议。
;; WHEN: Mon Nov 27 15:13:05 CST 2023
时间戳:响应生成的时间为 Mon Nov 27 15:13:05 CST 2023。
DNS(Domain Name System)使用两个主要的端口号进行通信:
大多数的标准DNS查询都使用UDP端口53,但对于大型响应或特殊情况下,DNS可以使用TCP端口53进行通信。 DNS服务器通常同时支持UDP和TCP协议来处理DNS查询。
"Authoritative answer"是指从权威DNS服务器得到的响应。在DNS查询过程中,当客户端发送DNS查询请求时,可能会从缓存中获取响应,也可能会直接从权威DNS服务器获取响应。
当客户端向DNS服务器查询某个域名的解析信息时,如果该DNS服务器本身就是这个域名的权威DNS服务器(即拥有这个域名的解析权),并且能够直接给出准确的答案,那么这个答案就被称为“authoritative answer”,即权威回答。
权威回答通常被认为是最可信的答案,因为它们直接来自管理特定域名的DNS服务器,这些服务器负责该域名区域的解析记录。
mirror@Ubuntu22:~$ nslookup 114.114.114.114
114.114.114.114.in-addr.arpa name = public1.114dns.com.
Authoritative answers can be found from:
mirror@Ubuntu22:~$
权威DNS服务器是对特定域名区域(Zone)有权威的DNS服务器。当一个DNS服务器能够直接提供查询域名区域的确切解析信息时,它可以提供权威回答。这意味着它拥有查询的域名的权威数据,而不是从其他DNS服务器或缓存中获取的。
"Non-authoritative answer"是指从非权威DNS服务器得到的响应。在DNS查询中,当客户端向DNS服务器发出查询请求时,如果该DNS服务器并非域名的权威服务器,而是从其他DNS服务器或缓存中获取了答案,那么这个答案就被称为“non-authoritative answer”,即非权威回答。
非权威回答通常来自于DNS服务器的缓存或其他非权威来源。这种情况下,DNS服务器并不是负责管理查询域名的权威服务器,而是通过向其他DNS服务器查询获得了一个可能性较高的结果,并将其返回给请求者。
虽然非权威回答可能不像权威回答那样直接来自域名的管理服务器,但它们通常也是准确的,因为它们来自于经常更新和维护的DNS缓存或其他可靠来源。非权威回答在一般情况下是可以接受的,但在特定情况下,特别是对于对查询结果的准确性有严格要求的场景,可能需要权威回答。
同样是通过Google DNS服务器8.8.8.8 解析域名,解析baidu.com为Non-authoritative answer,解析Google.com则没有该提示。
mirror@Ubuntu22:~$ nslookup google.com 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Name: google.com
Address: 8.7.198.46
Name: google.com
Address: 8.7.198.46
mirror@Ubuntu22:~$ nslookup baidu.com 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: baidu.com
Address: 110.242.68.66
Name: baidu.com
Address: 39.156.66.10
mirror@Ubuntu22:~$