“什么是”呢;附加条款;在DNS中,它是如何工作的?

“什么是”呢;附加条款;在DNS中,它是如何工作的?,dns,bind,Dns,Bind,当我使用dig $ dig www.google.com ; <<>> DiG 9.10.6 <<>> www.google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59489 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORIT

当我使用
dig

$ dig www.google.com

; <<>> DiG 9.10.6 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59489
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 9

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.com.            IN  A

;; ANSWER SECTION:
www.google.com.     23  IN  A   69.171.247.71

;; AUTHORITY SECTION:
google.com.     124333  IN  NS  ns4.GOoGLE.cOM.
google.com.     124333  IN  NS  ns1.GOoGLE.cOM.
google.com.     124333  IN  NS  ns3.GOoGLE.cOM.
google.com.     124333  IN  NS  ns2.GOoGLE.cOM.

;; ADDITIONAL SECTION:
ns1.google.com.     300146  IN  A   216.239.32.10
ns1.google.com.     308505  IN  AAAA    2001:4860:4802:32::a
ns2.google.com.     303470  IN  A   216.239.34.10
ns2.google.com.     124333  IN  AAAA    2001:4860:4802:34::a
ns3.google.com.     303470  IN  A   216.239.36.10
ns3.google.com.     124333  IN  AAAA    2001:4860:4802:36::a
ns4.google.com.     302836  IN  A   216.239.38.10
ns4.google.com.     302716  IN  AAAA    2001:4860:4802:38::a
但是我不知道
附加部分的细节


我的意思是,
附加部分
来自何处(授权服务器?)以及它的用途?

附加部分
包含您没有明确要求的数据,但服务器还是给了您

服务器可以使用它来回答典型的后续问题,因为查找模式是可预测的。也就是说,如果您请求MX记录,您可能会在下一步查找返回的MX记录,如果权威服务器碰巧也有这些记录,则可以直接将它们返回给您,而无需执行一次或多次额外的DNS往返


在您的特定示例中,由于您请求了所有资源类型并获得了NS记录,因此同一个权威服务器也知道这些名称服务器的A和AAAA记录,并认为将它们提供给您是有帮助的

互联网草案“在DNS响应中返回附加答案”在引言中对其进行了总结:

通过在单个响应中提供多个答案,权威名称服务器可以在存根解析程序或其他客户端请求后续查询之前,帮助全服务解析程序预填充其缓存。除了减少最终用户的延迟外,这还减少了全服务解析程序需要发送的查询总数和权威服务器需要回答的查询总数

请参见第4.1节“消息格式”中有关DNS的内容

你会在那里看到:

“附加记录”部分包含RRs 与查询相关,但严格来说不是 问题

3.3下的各种格式解释了哪些记录将触发特定的“附加”处理

您还可以在RFC 1034第6.2节和第6.3节中找到一些查询和答复示例,您将在其中看到如何填写附加部分

现在回到您的示例,问题是您没有明确指定查询哪个名称服务器,这意味着您从默认的递归服务器获得答案

在这种情况下,您会看到:

  • 在“回答”中,精确记录您的查询(默认情况下,如果您没有指定任何内容,dig将执行
    A
  • 在“Authority”中,您可以看到递归服务器了解到哪些名称服务器对您的记录具有权威性
  • 在“附加”中,您将获得上一节中名称服务器的IP地址,尤其是在这里,因为您处于“辖区内”情况(通常称为“胶水”),所以您(作为递归名称服务器)将无法连接权威名称服务器
让我们直接使用权威名称服务器重新执行查询,然后与另一个案例进行比较:

$dig google.com NS@a.gtld-servers.net

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> google.com NS @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12149
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 9
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com.            IN  NS

;; AUTHORITY SECTION:
google.com.     172800  IN  NS  ns2.google.com.
google.com.     172800  IN  NS  ns1.google.com.
google.com.     172800  IN  NS  ns3.google.com.
google.com.     172800  IN  NS  ns4.google.com.

;; ADDITIONAL SECTION:
ns2.google.com.     172800  IN  AAAA    2001:4860:4802:34::a
ns2.google.com.     172800  IN  A   216.239.34.10
ns1.google.com.     172800  IN  AAAA    2001:4860:4802:32::a
ns1.google.com.     172800  IN  A   216.239.32.10
ns3.google.com.     172800  IN  AAAA    2001:4860:4802:36::a
ns3.google.com.     172800  IN  A   216.239.36.10
ns4.google.com.     172800  IN  AAAA    2001:4860:4802:38::a
ns4.google.com.     172800  IN  A   216.239.38.10

;; Query time: 68 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Mon Sep 03 19:23:20 EST 2018
;; MSG SIZE  rcvd: 287
请密切注意“授权”部分中的NAMServer列表以及“附加”部分中具有
A
/
AAAA
记录的NAMServer列表。您将认识到,只有那些以
.com
.net
结尾的TLD(因为这是一种特殊情况,其中这两个TLD都由同一个注册表处理)具有IP地址,因为
.com
/
.net
的权威名称服务器对其他TLD中的名称和IP地址一无所知

这个例子更能说明这一点:

$ dig aridns.com NS @a.gtld-servers.net

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> aridns.com NS @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2552
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;aridns.com.            IN  NS

;; AUTHORITY SECTION:
aridns.com.     172800  IN  NS  dns1.ausregistry.net.au.
aridns.com.     172800  IN  NS  dns1-1.ausregistry.net.au.
aridns.com.     172800  IN  NS  dns1-2.ausregistry.net.au.
aridns.com.     172800  IN  NS  dns2-1.ausregistry.net.au.

;; Query time: 68 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Mon Sep 03 19:28:07 EST 2018
;; MSG SIZE  rcvd: 139
$dig aridns.com NS@a.gtld-servers.net
;  挖掘9.11.3-1ubuntu1.1-Ubuntu aridns.com NS@a.gtld-servers.net
;; 全局选项:+cmd
;; 得到答案:

;; ->>标题您引用的文档是一份草稿,指定回答最初要求的更多内容,例如在要求
a
时给出
AAAA
记录。这是除了核心协议为本节规定的内容之外,没有计划这样使用。除了第一句话之外,不幸的是,其余的都不正确。附加部分还有另一个具体用途,请参见我的答案。在
MX
之后回答
A
记录是协议的扩展,而不是它的核心。挖掘MX stackoverflow.com
,您将不会看到任何额外的部分,正如预期的那样。“同一权威服务器也知道这些命名服务器的A和AAAA记录,并认为将其提供给您是有帮助的。”在这种特定情况下;对于所有位于辖区内的名称服务器,这个权威服务器必须为您提供IP地址,因为如果它没有提供IP地址(对于执行所有这项工作的递归名称服务器),那么当您遇到鸡和蛋的问题时,名称服务器将无法继续并解决名称问题。
$ dig ultradns.com NS @a.gtld-servers.net

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> ultradns.com NS @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54105
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 10, ADDITIONAL: 5
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ultradns.com.          IN  NS

;; AUTHORITY SECTION:
ultradns.com.       172800  IN  NS  pdns196.ultradns.com.
ultradns.com.       172800  IN  NS  pdns196.ultradns.net.
ultradns.com.       172800  IN  NS  pdns196.ultradns.org.
ultradns.com.       172800  IN  NS  pdns196.ultradns.info.
ultradns.com.       172800  IN  NS  pdns196.ultradns.biz.
ultradns.com.       172800  IN  NS  pdns196.ultradns.co.uk.
ultradns.com.       172800  IN  NS  ari.alpha.aridns.net.au.
ultradns.com.       172800  IN  NS  ari.beta.aridns.net.au.
ultradns.com.       172800  IN  NS  ari.gamma.aridns.net.au.
ultradns.com.       172800  IN  NS  ari.delta.aridns.net.au.

;; ADDITIONAL SECTION:
pdns196.ultradns.com.   172800  IN  A   156.154.64.196
pdns196.ultradns.com.   172800  IN  AAAA    2001:502:f3ff::e8
pdns196.ultradns.net.   172800  IN  A   156.154.65.196
pdns196.ultradns.net.   172800  IN  AAAA    2610:a1:1014::e8

;; Query time: 72 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Mon Sep 03 19:25:24 EST 2018
;; MSG SIZE  rcvd: 432
$ dig aridns.com NS @a.gtld-servers.net

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> aridns.com NS @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2552
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;aridns.com.            IN  NS

;; AUTHORITY SECTION:
aridns.com.     172800  IN  NS  dns1.ausregistry.net.au.
aridns.com.     172800  IN  NS  dns1-1.ausregistry.net.au.
aridns.com.     172800  IN  NS  dns1-2.ausregistry.net.au.
aridns.com.     172800  IN  NS  dns2-1.ausregistry.net.au.

;; Query time: 68 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Mon Sep 03 19:28:07 EST 2018
;; MSG SIZE  rcvd: 139