मैं DNS रिकॉर्ड के लिए टाइम-टू-लाइव (TTL) कैसे देख सकता हूं?


117

मैं CNAME रिकॉर्ड के लिए टाइम-टू-लाइव (TTL) मान देखना चाहूंगा।

मेरे पास खुदाई करने के लिए पहुंच है (Apple मैक ओएस एक्स पर), जो मुझे इस तरह से जवाब देता है:

% 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

इस DNS रिकॉर्ड के लिए TTL का मान '43200' है?

जवाबों:


142

हां, उस रिकॉर्ड को समाप्त होने तक सेकंड की संख्या शेष है (बशर्ते कि हम आधिकारिक नाम देने वाले को क्वेरी नहीं कर रहे हैं)। जाहिर है CNAME के ​​साथ पुनर्निर्देशन का स्तर होता है, इसलिए A रिकॉर्ड के लिए 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

ऊपर क्वेरी में, हम एक नहीं है झंडा, और टीटीएल के रूप में हम क्वेरी और कम हो रही रखेंगे क्वेरी। यह अनिवार्य रूप से वह काउंटर है जिसके बारे में मैं पहले बात कर रहा था।


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?

हाँ - जैसा कि आपके प्रश्न का उत्तर देने वाले सर्वर द्वारा आपको सूचित किया गया है (यदि आप कैशिंग सर्वर से पूछ रहे हैं तो यह शेष समय उसके कैश में वापस आ जाएगा)।

टीटीएल को वास्तविक रिकॉर्ड क्वेरी पर सेट करने के लिए आधिकारिक नामवर ( dig @some.dns.server host.example.gov- आधिकारिक डीएनएस सर्वर को खुदाई आउटपुट के प्राधिकरण अनुभाग में सूचीबद्ध किया जाएगा)

यह देखने के लिए त्वरित जांच करें कि क्या आप आधिकारिक NS पूछ रहे हैं: यदि आप digफिर से चलते हैं और TTL बदल जाता है तो आप शायद कैश मार रहे हैं। यदि यह वही रहता है जो आप शायद आधिकारिक सर्वर (या एक जो कैशिंग टूट गया है) से पूछ रहे हैं।


1
अगर ttl नहीं बदलता है तो यह केवल एक ही हो सकता है जो खुद को आधिकारिक मानता है: डोमेन स्वामी ने DNS सर्वर को पुराने एक को बंद किए बिना बदल दिया हो सकता है .... पिछले महीने यह समस्या थी।
जैस

2
@ जेसेन हां, यह निश्चित रूप से संभव है (यह कुछ महत्वपूर्ण के रूप में अच्छी तरह से इंगित करता है: डीएनएस व्यवस्थापक प्रवास को
खराब

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 $@
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.