Как я могу увидеть Time-To-Live (TTL) для записи DNS?

Я хотел бы увидеть значение 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?

103 голоса | спросил Stefan Lasiewski 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 09 Sep 2010 22:21:18 +0400 2010, 22:21:18

4 ответа


124

Да, число есть количество секунд, оставшихся до истечения этой записи (при условии, что мы не запрашиваем авторитетный сервер имен). Очевидно, что с 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

Итак, в приведенном выше запросе мы запрашиваем сервер имен, который является авторитетным для 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 будет продолжать уменьшаться по мере запроса и запроса. Это, по сути, счетчик, о котором я говорил ранее.

ответил Philip Reynolds 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 09 Sep 2010 22:28:38 +0400 2010, 22:28:38
42

Если вы застряли в окне Windows и имеете доступ только к nslookup:

nslookup -qa=A -debug host.example.com authoritiative-dns-host-here.com
ответил M Sleman 24 Jam1000000amThu, 24 Jan 2013 02:41:36 +040013 2013, 02:41:36
14

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

Да - как сообщается вам сервером, ответившим на ваш запрос (если вы запрашиваете сервер кэширования, он вернет оставшееся время в кеше).

Чтобы увидеть, что TTL, установленный в фактическом запросе записи, является авторитетным сервером имен (dig @some.dns.server host.example.gov). Властные DNS-серверы будут перечислены в разделе «Управление» вывести выход)

Быстрая проверка, если вы спрашиваете авторитетную NS: если вы снова запустите dig, а изменения TTL вы, вероятно, попадете в кеш. Если он остается таким же, вы, вероятно, спрашиваете авторитетный сервер (или тот, у которого есть сломанное кэширование).

ответил voretaq7 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 09 Sep 2010 22:32:07 +0400 2010, 22:32:07
5

Я не мог видеть авторитетные серверы в выводе вывода по умолчанию, но следующие

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 [email protected]
ответил Adam 19 +04002012-10-19T18:04:10+04:00312012bEurope/MoscowFri, 19 Oct 2012 18:04:10 +0400 2012, 18:04:10

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132