ฉันจะดู Time-To-Live (TTL) สำหรับระเบียน DNS ได้อย่างไร


117

ฉันต้องการดูค่า Time-To-Live (TTL) สำหรับระเบียน CNAME

ฉันสามารถเข้าถึงขุด (บน 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

ค่า '43200' เป็น TTL สำหรับระเบียน DNS นี้หรือไม่

คำตอบ:


142

ใช่ตัวเลขที่มีจำนวนวินาทีที่เหลือจนกว่าระเบียนนั้นจะหมดอายุ เห็นได้ชัดว่า CNAME มีระดับการเปลี่ยนเส้นทางดังนั้น TTL สำหรับระเบียน A ที่ชี้ไปที่ในกรณีนี้อาจมีความสำคัญเช่นกัน

หากคุณรอสองสามวินาทีและเรียกใช้ขุดอีกครั้งบนเนมเซิร์ฟเวอร์ท้องถิ่นของคุณคุณจะเห็นว่าหมายเลข TTL ลดลงตามจำนวนวินาทีที่คุณรอ (โดยประมาณ) เมื่อมันมาถึง 0 มันจะรีเฟรชหรือถ้าเซิร์ฟเวอร์ของคุณรีเฟรชโซนด้วยเหตุผลบางประการ

ดังกล่าวข้างต้นมีความแตกต่างระหว่างการขุดที่ถูกเรียกใช้กับเนมเซิร์ฟเวอร์ที่มีรายการแคชและเนมเซิร์ฟเวอร์ที่มีสิทธิ์สำหรับรายการนั้น

(ในตัวอย่างที่ฉันใช้ด้านล่างฉันใช้ปุ่ม+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

ดังนั้นในแบบสอบถามด้านบนเรากำลังสอบถาม nameserver ที่มีสิทธิ์สำหรับ 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

หากคุณบังเอิญติดอยู่ในกล่องหน้าต่างและมีสิทธิ์เข้าถึง 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 ที่มีสิทธิ์จะปรากฏในส่วนผู้มีอำนาจของเอาต์พุตขุด)

ตรวจสอบอย่างรวดเร็วเพื่อดูว่าคุณกำลังถาม NS ที่มีสิทธิ์: ถ้าคุณทำงานdigอีกครั้งและการเปลี่ยนแปลง TTL คุณอาจจะกดปุ่มแคช ถ้ามันยังคงเหมือนเดิมคุณอาจถามเซิร์ฟเวอร์ที่เชื่อถือได้ (หรืออันที่แคชเสีย)


1
หาก ttl ไม่เปลี่ยนอาจเป็นเพียงคนที่เชื่อว่าตัวเองมีสิทธิ์: เจ้าของโดเมนอาจมีการเปลี่ยนแปลงเซิร์ฟเวอร์ DNS โดยไม่ต้องปิดเก่าลง .... มีปัญหาที่เมื่อเดือนที่แล้ว
Jasen

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 $@
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.