如何查看DNSlogging的生存时间(TTL)?

我希望看到CNAMElogging的生存时间(TTL)值。

我有机会在苹果Mac OS X上进行挖掘 ,这给了我一个这样的答案:

% dig host.example.gov <*SNIP*> ;; ANSWER SECTION: host.example.gov. 43200 IN CNAME host1.example.gov. host1.example.gov. 43200 IN A 192.168.16.10 

值“43200”是这个DNSlogging的TTL值吗?

是的,这个数字是在logging到期之前剩下的秒数(假设我们没有查询权威的域名服务器)。 很显然,使用CNAME有一定程度的redirect,所以在这种情况下,它指向的Alogging的TTL可能也很重要。

如果您等待几秒钟并在本地名称服务器上再次运行挖掘,则应该看到TTL号码减less了您等待(大约)的秒数。 当它达到0时,它会刷新,或者如果你的名字服务器由于某种原因刷新区域。

如上所述,在名称服务器和caching条目之间进行挖掘以及对该条目授权的名称服务器是有区别的。

(在下面的示例中,我使用+noauthority +noquestion+nostats标志来保持输出简洁)。

请注意以下查询之间的区别:

 $ dig +noauthority +noquestion +nostats stackoverflow.com @ns2.p19.dynect.net. ; <<>> DiG 9.7.0-P1 <<>> +noauthority +noquestion +nostats stackoverflow.com @ns2.p19.dynect.net. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50066 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; ANSWER SECTION: stackoverflow.com. 432000 IN A 69.59.196.211 

所以在上面的查询中,我们正在查询一个名称为stackoverflow.com的权威服务器。 如果您注意到了flags部分,请特别注意表示这是一个权威答案 (即未caching)的aa标志。

 $ dig +noauthority +noquestion +noadditional +nostats stackoverflow.com ; <<>> DiG 9.7.0-P1 <<>> +noauthority +noquestion +noadditional +nostats stackoverflow.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43514 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 ;; ANSWER SECTION: stackoverflow.com. 246696 IN A 69.59.196.211 

在上面的查询中,我们没有一个aa标志,并且在我们查询和查询时,TTL将继续下降。 这基本上是我之前谈论的那个反击。

如果你碰巧被困在一个窗口框,只能访问nslookup:

 nslookup -qa=A -debug host.example.com authoritiative-dns-host-here.com 

Is the value '43200' the TTL for this DNS record?

是的 – 正如回答您的查询的服务器向您报告的(如果您要求caching服务器,则会将剩余的时间返回到caching中)。

要查看实际logging中设置的TTL,请查询权威域名服务器( dig @some.dns.server host.example.gov – 授权DNS服务器将在挖掘输出的“权威”部分中列出)

快速检查,看看你是否问权威的NS:如果你再次运行dig和TTL的变化,你可能打一个caching。 如果保持不变,您可能会询问授权服务器(或已经破坏caching的服务器)。

我在默认的挖掘输出中看不到权威的服务器,但是下面是

 dig +nssearch host.example.com 

返回它们,然后可以按照voretaq7的描述获得logging的实际TTL值。

更新:一直忘记如何做到这一点,不得不回来,所以写了一个小脚本首先获取权威域名服务器,然后挖掘使用它

 #!/bin/bash show_help(){ echo Usage $0 domain } if [ -z "$1" ]; then show_help exit 1 fi DOMAIN=$1 FIRST_AUTHORITATIVE_NS=$(dig +nssearch $DOMAIN | sed -n 's/^SOA \([^ ]*\)\.[ ].*/\1/p' | head -1) echo echo Using authoritative nameserver $FIRST_AUTHORITATIVE_NS dig @$FIRST_AUTHORITATIVE_NS $@