Pertanyaan Bagaimana saya bisa melihat Time-To-Live (TTL) untuk catatan DNS?


Saya ingin melihat nilai Time-To-Live (TTL) untuk data CNAME.

Saya memiliki akses ke menggali (di Apple Mac OS X), yang memberi saya jawaban seperti ini:

% 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

Apakah nilai '43200' TTL untuk catatan DNS ini?


105
2017-09-09 18:21






Jawaban:


Ya, jumlahnya ada jumlah detik yang tersisa hingga catatan itu berakhir (asalkan kita tidak mempertanyakan nameserver yang berwenang). Tentunya dengan CNAME ada tingkat pengalihan, sehingga TTL untuk catatan A yang ditunjukkannya dalam kasus ini mungkin juga penting.

Jika Anda menunggu beberapa detik dan menjalankan penggalian lagi di server nama lokal Anda, Anda akan melihat bahwa angka TTL berkurang dengan jumlah detik yang Anda tunggu (kira-kira). Ketika hits 0, itu akan menyegarkan atau jika nameserver Anda me-refresh zona untuk beberapa alasan.

Seperti disebutkan di atas, ada perbedaan antara penggali yang dijalankan dengan nameserver dengan entri cache dan nameserver yang berwenang untuk entri tersebut.

(dalam contoh yang saya gunakan di bawah ini saya gunakan +noauthority  +noquestion & +nostats hanya untuk menjaga output tetap singkat).

Perhatikan perbedaan antara pertanyaan berikut:

$ 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

Jadi dalam kueri di atas, kami melakukan kueri nameserver yang otoritatif untuk stackoverflow.com. Jika Anda memperhatikan flags bagian, memberi perhatian khusus pada A A Bendera yang menunjukkan ini adalah sebuah jawaban otoritatif (bukan cache).

$ 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

Di kueri di atas, kami tidak memiliki A A bendera, dan TTL akan terus menurun saat kami melakukan query dan query. Ini pada dasarnya adalah counter yang saya bicarakan sebelumnya.


127
2017-09-09 18:28



Jawaban yang bagus! Terima kasih! :) - Paul Calabro


Jika Anda terjebak di kotak windows dan hanya memiliki akses ke nslookup:

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?

Ya - seperti yang dilaporkan kepada Anda oleh server yang menjawab pertanyaan Anda (jika Anda meminta server cache, itu akan mengembalikan waktu yang tersisa di cache-nya).

Untuk melihat TTL yang ditetapkan pada permintaan rekaman aktual, nameserver yang berwenang (dig @some.dns.server host.example.gov - Server DNS otoritatif akan terdaftar di bagian Otoritas hasil penggalian)

Periksa cepat untuk melihat apakah Anda meminta NS otoritatif: Jika Anda menjalankan dig lagi dan perubahan TTL Anda mungkin memukul cache. Jika tetap sama Anda mungkin meminta server otoritatif (atau salah satu yang melanggar cache).


14
2017-09-09 18:32



jika ttl tidak mengubah itu hanya bisa menjadi salah satu yang percaya dirinya menjadi berwibawa: pemilik domain mungkin telah mengubah server DNS tanpa mematikan yang lama .... memiliki masalah itu bulan lalu. - Jasen
@Jasen Ya, itu pasti mungkin (Ini menunjukkan sesuatu yang penting juga: Admin DNS akan membeli minuman di tamasya perusahaan berikutnya untuk mengacaukan migrasi!) - voretaq7


Saya tidak bisa melihat server otoritatif dalam output penggalian default, tetapi yang berikut

dig +nssearch host.example.com

mengembalikannya, yang kemudian dapat digunakan seperti yang dijelaskan oleh voretaq7 untuk mendapatkan nilai TTL aktual untuk catatan.

Pembaruan: terus lupa bagaimana melakukan ini dan harus kembali, jadi menulis skrip kecil untuk pertama kali mengambil nameserver yang berwenang lalu gali menggunakan itu

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