שאלה כיצד ניתן לראות את Time-To-Live (TTL) עבור רשומת DNS?


ברצוני לראות את ערך זמן-חיים (TTL) עבור רשומת CNAME.

יש לי גישה אל 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

האם הערך '43200' TTL עבור רשומת DNS זו?


106
2017-09-09 18:21






תשובות:


כן, המספר הוא מספר השניות שנותרו עד שתוקפו יפוג (בתנאי שאנו לא מציגים שאילתת שרת שמות סמכותי). ברור עם CNAME יש רמה של ניתוב מחדש, כך TTL עבור הרשומה זה נקודות במקרה זה עשוי להיות חשוב גם כן.

אם אתה ממתין מספר שניות ומריץ שוב את השעון בשרת השמות המקומי שלך, עליך לראות שמספר 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

אז בשאילתה לעיל, אנו שאילתה שרת שמות כי הוא סמכותי עבור stackoverflow.com. אם אתה מבחין flags סעיף, להקדיש תשומת לב מיוחדת א דגל אשר מציין את זה תשובה סמכותית (כלומר לא במטמון).

$ 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

בשאילתה הקודמת, אין לנו א דגל, ואת TTL תמשיך לרדת ככל שאנו שאילתה שאילתה. זה בעצם הדלפק שדיברתי עליו קודם.


129
2017-09-09 18:28



תשובה מצויינת! תודה! :) - Paul Calabro


אם יקרה לך להיות תקוע על תיבת חלונות יש רק גישה 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?

כן - כפי שדווח לך על ידי השרת שענה על השאילתה שלך (אם אתה שואל שרת אחסון במטמון הוא יחזיר את הזמן הנותר במטמון שלו).

כדי לראות את TTL מוגדר על שאילתת הרשומה בפועל שרת שמות סמכותי (dig @some.dns.server host.example.gov - שרתי ה- DNS הסמכותי יירשמו בסעיף הרשות של פלט dig)

בדיקה מהירה כדי לראות אם אתה שואל את NS סמכותי: אם אתה מפעיל dig שוב השינויים TTL אתה כנראה להכות מטמון. אם זה נשאר אותו אתה בטח שואל את השרת הסמכותי (או אחד שיש לו שבר במטמון).


14
2017-09-09 18:32



אם ttl לא משנה את זה יכול להיות רק אחד שמאמין את עצמו להיות סמכותי: בעל התחום יכול לשנות שרת DNS מבלי shuttiong הישן אחד למטה .... היתה בעיה בחודש שעבר. - Jasen
@ Jasen כן, זה בהחלט אפשרי (זה מצביע על משהו חשוב גם כן: מנהל ה- DNS יהיה לקנות משקאות בחברה הבאה יציאה עבור הברגה את ההגירה!) - voretaq7


לא הצלחתי לראות את השרתים הסמכותיים בפלט ברירת המחדל לחפירה, אך להלן

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

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