Soru Bir DNS kaydı için Time-To-Live (TTL) nasıl görebilirim?


Bir CNAME kaydı için Time-To-Live (TTL) değerini görmek istiyorum.

Erişimim var kazmak (Apple Mac OS X'te), bana bö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

Bu DNS kaydı için '43200' değeri TTL mi?


106
2017-09-09 18:21


Menşei




Cevaplar:


Evet, sayı o kaydın sona ermesine kadar geçen sürenin sayısıdır (yetkili ad vericiyi sorgulamadığımız sürece). Açıkça bir CNAME ile bir yönlendirme seviyesi vardır, bu nedenle bu durumda işaret ettiği TTL için TTL de önemli olabilir.

Birkaç saniye beklerseniz ve yerel ad sunucunuzda tekrar kazarsanız, TTL numarasının beklediğiniz saniye sayısına (yaklaşık olarak) göre azaldığını görmelisiniz. 0 olduğunda, yenilenir veya ad sunucunuz herhangi bir nedenle bölgeyi yeniliyorsa.

Yukarıda belirtildiği gibi, önbelleğe alınmış bir girdiye sahip bir ad vericiye karşı çalıştırılan kazı ile bu giriş için yetkili ad sunucusu arasında bir fark vardır.

(Aşağıda kullandığım örneklerde kullanıyorum +noauthority  +noquestion & +nostats sadece çıkış terse tutmak için bayraklar).

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

Yani yukarıdaki sorguda, stackoverflow.com için yetkili olan bir nameserver'ı sorgulıyoruz. Eğer fark ederseniz flags bölümüne dikkat edin aa bunu gösteren bayrak bir yetkili cevap (yani, önbelleğe alınmamış).

$ 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 bayrak ve TTL sorgulama ve sorgulama yaparken azalacaktır. Bu aslında daha önce bahsettiğim sayaçtır.


129
2017-09-09 18:28



Mükemmel cevap! Teşekkürler! :) - Paul Calabro


Bir pencere kutusu üzerinde sıkışmış ve sadece nslookup erişiminiz varsa:

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

43
2018-01-23 22:41





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

Evet - sizin sorgunuzu cevaplayan sunucu tarafından size bildirildiği üzere (bir önbellek sunucusunu soruyorsanız, kalan süreyi önbelleğinde döndürecektir).

Gerçek kayıt sorgusunda belirlenen TTL'yi yetkili ad sunucusu olarak görmek içindig @some.dns.server host.example.gov - Yetkili DNS sunucuları, kazı çıktısının Yetkilendirme bölümünde listelenir)

Yetkili NS'yi sorup sormadığınızı hızlı kontrol edin: Eğer koşarsanız dig Tekrar ve TTL değişiklikleri muhtemelen bir önbellek isabet ediyor. Aynı kalırsa, büyük olasılıkla yetkili sunucuyu (veya önbelleğe alma işlemini kırmış olan) soruyorsunuzdur.


14
2017-09-09 18:32



ttl değişmezse, yalnızca yetkili olduğuna inanan bir kişi olabilirdi: etki alanı sahibi eski sunucuyu kapatmadan DNS sunucusunu değiştirmiş olabilir .... geçen ay bu sorun vardı. - Jasen
@Jasen Evet, bu kesinlikle mümkündür (Bu önemli bir şeyi de gösterir: DNS yöneticisi, geçişi engellemek için bir sonraki şirkette içki satın alacak!) - voretaq7


Yetkili sunucuları varsayılan kazı çıktısında göremedim, ancak aşağıdakiler

dig +nssearch host.example.com

onları döndürdü, daha sonra kayıt için gerçek TTL değerini almak için voretaq7 tarafından açıklandığı gibi kullanılabilir.

Güncelleme: Bunu nasıl yapacağınızı unutup geri gelmek zorunda kaldınız, bu yüzden ilk önce yetkili ad sunucusunu almak için küçük bir komut dosyası yazdınız

#!/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 $@

5
2017-10-19 14:04