如何查看DNS记录的生存时间(TTL)?

我想查看CNAME记录的生存时间(TTL)值。

我可以使用dig(在Apple 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

 

是的,这个记录还有剩余的秒数(假设我们不查询权威的名称服务器)。看起来,对于CNAME,存在一定程度的重定向,因此在这种情况下,它指向的A记录的TTL也可能很重要。

如果您等待几秒钟,然后在本地名称服务器上再次运行dig,则应该看到TTL值减少了您等待的秒数(大约)。当它达到0时,可以刷新或您的名称服务器出于某种原因刷新区域。

因此,针对具有缓存负载的名称服务器运行的挖掘与与此相关的具有权威性的名称服务器之间存在差异。

(在下面的示例中,我使用+noauthority +noquestion+nostats标志只是为了保持简洁)。

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

 dig +nocmd www.google.com +noall +answer | tail -1
$ 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部分,请特别注意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会不断分解。从本质上讲,这是我之前所说的计数器。


49

如果您碰巧被卡在Windows框上,并且只能访问nslookup:

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

15

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

是的-回答查询的服务器报告给您(如果您要查询缓存服务器,则返回其缓存中的剩余时间)。

要查看实际记录上设置的TTL,请查询权威名称服务器(dig @some.dns.server host.example.gov-权威DNS服务器将在dig输出的Authority部分中列出)

快速检查一下,是否在询问权威的NS:如果dig再次运行和TTL更改,则可能是缓存。如果保持不变,您可能会询问权威服务器(或缓存中断的服务器)。

 

1个
如果ttl不变,那可能只是一个认为自己具有权威性的域名:域名所有者可能没有关闭旧域名就更改了DNS服务器...上个月出现了此问题。
—  杰森2015年

2
@Jasen是的,这绝对是可能的(这也表明了重要的一点:DNS管理员将在下一家公司郊外购买酒水,以防止迁移!)
—  voretaq7

7

我在默认情况下的挖掘输出中看不到权威服务器,但是以下内容

dig +nssearch host.example.com

返回它们,然后可以按照voretaq7的描述使用它们来获取记录的实际TTL值。

更新:一直忘了怎么做,不得不回来,所以写了一个小脚本,首先获取权威的名称服务器,然后使用它进行挖掘

#!/bin/bash

show_help(){
        echo Usage $0 domain
}

if [ -z "$1" ]; then
        show_help
        exit 1
fi

DOMAIN=$1
APEX_DOMAIN=`echo $DOMAIN | sed 's/\(.*\.\)\([^.]*\.[^.]*\)/\2/'`
FIRST_AUTHORITATIVE_NS=$(dig +nssearch $APEX_DOMAIN | awk '$1=="SOA"{sub(".$","",$2);print $2;exit;}')

echo
echo Using authoritative nameserver $FIRST_AUTHORITATIVE_NS

dig @$FIRST_AUTHORITATIVE_NS $@
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值