Bir DNS kaydı için Yaşam Süresi (TTL) nasıl görebilirim?


117

CNAME kaydının Yaşam Süresi (TTL) değerini görmek istiyorum.

Kazıma erişebiliyorum (Apple Mac OS X'te), bu bana şöyle bir cevap veriyor:

% 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' değeri bu DNS kaydı için TTL mi?

Yanıtlar:


142

Evet, bu sayı sona erene kadar kalan saniye sayısı var (yetkili ad sunucusunu sorgulamamamız şartıyla). Açıkçası bir CNAME ile bir miktar yeniden yönlendirme var, bu nedenle işaret ettiği A kaydı için TTL de önemli olabilir.

Birkaç saniye beklerseniz ve yerel ad sunucunuzda tekrar kazarsanız, TTL numarasının beklediğiniz saniye kadar azaldığını görmelisiniz (yaklaşık). 0'a ulaştığında, yenilenir veya ad sunucunuz herhangi bir nedenle bölgeyi yenerse.

Yukarıda belirtildiği gibi, kazma, önbelleğe alınmış bir girişe sahip bir ad sunucusuna karşı çalıştırma ve bu giriş için yetkili olan ad sunucusu arasında bir fark vardır.

(aşağıda kullandığım örneklerde +noauthority +noquestion& +nostatsbayraklarını sadece çıktıları sabit tutmak için kullanıyorum).

Aşağıdaki sorgular arasındaki farka dikkat edin:

$ 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

Bu yüzden yukarıdaki sorguda stackoverflow.com için yetkili bir ad sunucusunu sorguluyoruz. flagsBölümü fark ederseniz , bunun yetkili bir cevap olduğunu belirten aa bayrağına özellikle dikkat edin (yani önbelleklenmemiş).

$ 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

Yukarıdaki sorguda bir aa bayrağımız yok ve sorgu ve sorgu yaptığımızda TTL azalmaya devam edecek. Bu aslında daha önce bahsettiğim sayaç.


49

Eğer bir pencere kutusuna sıkışmışsanız ve sadece nslookup'a erişebiliyorsanız:

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

15

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

Evet - sorgunuzu cevaplayan sunucu tarafından size bildirildiği gibi (bir önbellek sunucusuna soruyorsanız, önbelleğinde kalan zamanı döndürür).

Asıl kayıt sorgusunda TTL ayarını görmek için yetkili ad sunucusu ( dig @some.dns.server host.example.gov- Yetkili DNS sunucuları, kazı çıktısının Yetki bölümünde listelenecektir)

Yetkili NS'yi sorup sormadığınızı görmek için hızlı kontrol edin: Tekrar çalışırsanız digve TTL değişirse, muhtemelen bir önbellek atarsınız. Aynı kalırsa, muhtemelen yetkili sunucuya (veya önbelleğe alma işlemini bozmuş olan) soruyorsunuz.


1
ttl değişmezse, yalnızca yetkili olduğuna inanan biri olabilir: etki alanı sahibi, eski sunucuyu kapatmadan DNS sunucusunu değiştirdi ... geçen ay bu sorunu yaşadı.
Jasen,

2
@Jasen Evet, bu kesinlikle mümkün (Aynı zamanda önemli bir şey olduğunu gösteriyor: DNS yöneticisi, bir sonraki şirkette göçü berbat etmek için içki alacak!)
voretaq7

7

Varsayılan kazı çıkışında yetkili sunucuları göremedim, ancak

dig +nssearch host.example.com

bunları geri döndürdü; bu daha sonra kaydın gerçek TTL değerini almak için voretaq7 tarafından açıklandığı gibi kullanılabildi.

Güncelleme: bunun nasıl yapılacağını unutmaya devam etti ve geri gelmek zorunda kaldı, bu yüzden önce yetkili ad sunucusunu almak için küçük bir senaryo yazdı, sonra onu kullanarak kaz

#!/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 $@
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.