whi*_*edb 4 dns nameserver dig
这个问题来自这个话题。当我这样做时,我会得到剩余的秒数,直到查询的名称服务器中的 A 记录过期:
dig stackexchange.com
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,我会得到权威的 TTL 值:
dig any stackexchange.com
Run Code Online (Sandbox Code Playgroud)
所以,我不明白为什么dig any stackexchange.com当我真正进行递归查询时,我得到所有 TTL 值,就好像我做了一个权威问题一样。
小智 7
简而言之,您在问题中提到的两个查询都是非权威查询。
可以从缓存 DNS 服务器或权威 DNS 服务器查询域的 DNS 记录。因此,当您要查询缓存 DNS 服务器时,您可以指定 DNS IP 地址,或者如果未指定,则将使用已配置的默认 DNS 服务器/etc/resolv.conf。
非权威查询
$ dig stackexchange.com
Run Code Online (Sandbox Code Playgroud)
或者
$ dig stackexchange.com @8.8.8.8
Run Code Online (Sandbox Code Playgroud)
在上述两种情况下,查询都返回非权威回复,因为您的 ISP 的 DNS 或 Google 的公共 DNS (8.8.8.8) 对stackexchange.com域不具有权威性。当您查询非权威名称服务器时,它提供的 TTL 值会随着您每次查询而减少。一旦 TTL 值到期,缓存名称服务器将重新查询权威 DNS 服务器。
权威查询
因此,要获得权威回复,您需要从权威 DNS 服务器查询记录,可以使用以下方法找到该记录。
$ dig ns stackexchange.com
...
;; ANSWER SECTION:
stackexchange.com. 84894 IN NS cf-dns02.stackexchange.com.
stackexchange.com. 84894 IN NS cf-dns01.stackexchange.com.
...
Run Code Online (Sandbox Code Playgroud)
在回答部分提供了域的权威域名服务器stackexchange.com,因此,如果我们需要得到权威的答复,然后
$ dig stackexchange.com @cf-dns01.stackexchange.com.
Run Code Online (Sandbox Code Playgroud)
当我们查询权威 DNS 服务器时,TTL 值不会改变,因为这些名称服务器是信息的主要来源,并且在管理员更改它之前它们不会过期。
任何记录的工作原理
ANY 记录就像一个通配符,您可以使用它来获取缓存/存储在 DNS 服务器中的所有记录。例如,我查询stackexchange.com了任何记录,我的默认 DNS 服务器回复如下。
$ dig any stackexchange.com
....
;; ANSWER SECTION:
stackexchange.com. 86350 IN SOA cf-dns01.stackexchange.com. dns.cloudflare.com. 2017456480 10000 2400 604800 3600
stackexchange.com. 176 IN A 198.252.206.140
stackexchange.com. 84338 IN NS cf-dns01.stackexchange.com.
stackexchange.com. 84338 IN NS cf-dns02.stackexchange.com.
....
Run Code Online (Sandbox Code Playgroud)
在这里你可以看到回复只包含关于SOA,A和NSrecord 的信息。但实际上还有更多记录stackexchange.com没有缓存在我的默认 DNS 服务器中,因为我没有查询过。
现在我正在MX向我的默认 DNS 服务器查询记录,回复如下
$ dig MX stackexchange.com
....
;; ANSWER SECTION:
stackexchange.com. 300 IN MX 10 aspmx3.googlemail.com.
stackexchange.com. 300 IN MX 5 alt2.aspmx.l.google.com.
stackexchange.com. 300 IN MX 5 alt1.aspmx.l.google.com.
stackexchange.com. 300 IN MX 10 aspmx2.googlemail.com.
stackexchange.com. 300 IN MX 1 aspmx.l.google.com.
....
Run Code Online (Sandbox Code Playgroud)
现在我再次查询ANY记录,现在您可以看到该查询ANY也返回了MX记录。因此ANY记录将只提供仅缓存在您的默认名称服务器上的记录。
$ dig any stackexchange.com
....
;; ANSWER SECTION:
stackexchange.com. 298 IN MX 5 alt1.aspmx.l.google.com.
stackexchange.com. 298 IN MX 10 aspmx2.googlemail.com.
stackexchange.com. 86084 IN NS cf-dns01.stackexchange.com.
stackexchange.com. 298 IN MX 10 aspmx3.googlemail.com.
stackexchange.com. 298 IN MX 1 aspmx.l.google.com.
stackexchange.com. 298 IN MX 5 alt2.aspmx.l.google.com.
stackexchange.com. 86084 IN NS cf-dns02.stackexchange.com.
stackexchange.com. 243 IN A 198.252.206.140
stackexchange.com. 86343 IN SOA cf-dns01.stackexchange.com. dns.cloudflare.com. 2017456480 10000 2400 604800 3600
....
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,非权威回复的 TTL 值正在发生变化。
| 归档时间: |
|
| 查看次数: |
5157 次 |
| 最近记录: |