我对 DNS 的工作原理总体上有一些怀疑 - 即使我有理论基础。让我们考虑以下输出:
[user@host ~]$ dig google.com
[...]
;; ANSWER SECTION:
google.com. 102 IN A 172.217.3.174
[user@host ~]$ dig -x 172.217.3.174
[...]
;; ANSWER SECTION:
174.3.217.172.in-addr.arpa. 17514 IN PTR sea15s11-in-f14.1e100.net.
174.3.217.172.in-addr.arpa. 17514 IN PTR sea15s11-in-f174.1e100.net.
[user@host ~]$ dig -x 172.217.3.174
[...]
;; ANSWER SECTION:
174.3.217.172.in-addr.arpa. 299 IN PTR sea15s11-in-f14.1e100.net.
174.3.217.172.in-addr.arpa. 299 IN PTR sea15s11-in-f174.1e100.net.
[user@host ~]$ dig -x 172.217.3.174
[...]
;; ANSWER SECTION:
174.3.217.172.in-addr.arpa. 299 IN PTR sea15s11-in-f14.1e100.net.
174.3.217.172.in-addr.arpa. 299 IN PTR sea15s11-in-f174.1e100.net.
[user@host ~]$ dig -x 172.217.3.174
[...]
;; ANSWER SECTION:
174.3.217.172.in-addr.arpa. 298 IN PTR sea15s11-in-f14.1e100.net.
174.3.217.172.in-addr.arpa. 298 IN PTR sea15s11-in-f174.1e100.net.
[user@host ~]$ dig -x 172.217.3.174
[...]
;; ANSWER SECTION:
174.3.217.172.in-addr.arpa. 297 IN PTR sea15s11-in-f14.1e100.net.
174.3.217.172.in-addr.arpa. 297 IN PTR sea15s11-in-f174.1e100.net.
TTL 字段到底是什么意思?
第一个答案是:17514,然后是 299、298...
我知道定义,它是这样的:客户端应将答案保留在缓存中多长时间(限制对 DNS 的查询)
但是,
1. 它是否只与应用程序客户端有关?毕竟,Linux 不会缓存 DNS 答案,因此此字段无关紧要。2
. 它是否也与辅助 DNS 服务器有关(换句话说,将主 DNS 中的信息保留多长时间这个特定的记录?那么在 master 中刷新 SOA 字段呢?
3. 它是如何变得越来越小的?谁对此负责?我的客户端(RHat 上的 dig)还是 DNS 服务器?权威服务器还是从属服务器?/etc/resolv.conf?
顺便说一句:我认为 master 和 Authorative 是相同的,并且 slave=secondary=non-Authorative
答案1
- 大多数客户端都会缓存 DNS 响应,大多数 Linux 发行版默认不会缓存,但也可以安装软件来执行此操作。
- 是的,大多数 DNS 服务器都会缓存它们不具有权威性的域的响应。这是按记录进行的。另一方面,权威开始 (SOA) 刷新间隔适用于 DNS 群集,其中主服务器保存区域的主副本,而 SOA 记录刷新间隔设置从属服务器应多久从主服务器请求整个区域的副本一次。
- 通常,客户端会保留已收到的记录的缓存,并在记录过期时清除它们。链中的所有非权威服务器都会对缓存的响应执行相同的操作。Linux 默认不会这样做,因此您看到的答案来自一些上游非权威 DNS 服务器。
权威/非权威与 DNS 中的“主/从”含义不同。权威 DNS 服务器是将特定区域发布到全球 DNS 其余部分的服务器。非权威 DNS 服务器是不负责特定区域但恰好拥有该区域记录副本的服务器。DNS 服务器可以是某个区域的权威服务器,例如 abc.com,也可以是另一个区域的非权威服务器,例如 bcd.com。
主 DNS 服务器和从属 DNS 服务器与集群相关。在 DNS 服务器集群中,一台服务器为主服务器,并保存该集群所负责的所有区域的主副本。然后,从属服务器轮询主服务器以获取区域的副本,然后作为该区域的权威 DNS 服务器做出响应。这样,所有更改都只在主服务器上进行,并复制到从属服务器。通常,从属服务器是唯一响应外部 DNS 查询的服务器,主服务器只与从属服务器通信。