я dig xkcd.com
, и я получаю что-то вроде этого в ответ:
; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> xkcd.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52538
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 5
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xkcd.com. IN A
;; ANSWER SECTION:
xkcd.com. 769 IN A 107.6.106.82
;; AUTHORITY SECTION:
xkcd.com. 87784 IN NS dns3.p03.nsone.net.
xkcd.com. 87784 IN NS dns1.p03.nsone.net.
xkcd.com. 87784 IN NS dns2.p03.nsone.net.
xkcd.com. 87784 IN NS dns4.p03.nsone.net.
;; ADDITIONAL SECTION:
dns1.p03.nsone.net. 70809 IN A 198.51.44.3
dns2.p03.nsone.net. 70809 IN A 198.51.45.3
dns3.p03.nsone.net. 71406 IN A 198.51.44.67
dns4.p03.nsone.net. 70809 IN A 198.51.45.67
;; Query time: 222 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Wed Jan 21 22:16:42 HKT 2015
;; MSG SIZE rcvd: 206
В 769
это кешированный TTL
ценность для xkcd.com
. Однако, когда я повторяю dig xkcd.com
несколько раз (с интервалом в несколько секунд) я получаю, казалось бы, случайный TTL
ценность каждый раз. Вот последовательность:
TRY | ANSWER | AUTHORITY | ADDITIONAL | WHEN
====================================================================
1 | 586 | 59577 | 44474 | Wed Jan 21 22:18:31 HKT 2015
2 | 587 | 14242 | 56745 | Wed Jan 21 22:18:32 HKT 2015
3 | 658 | 87673 | 70698 | Wed Jan 21 22:18:34 HKT 2015
4 | 1022 | 76200 | 51189 | Wed Jan 21 22:18:40 HKT 2015
5 | 1200 | 160954 | 44662 | Wed Jan 21 22:18:41 HKT 2015
6 | 574 | 59565 | 44462 | Wed Jan 21 22:18:43 HKT 2015
7 | 646 | 87661 | 70686 | Wed Jan 21 22:18:46 HKT 2015
8 | 1200 | 121364 | 55967 | Wed Jan 21 22:18:47 HKT 2015
9 | 1200 | 83292 | 54698 | Wed Jan 21 22:18:48 HKT 2015
10 | 1024 | 40540 | 43816 | Wed Jan 21 22:18:49 HKT 2015
Почему я получаю эти, казалось бы, случайные (в определенном диапазоне) значения для TTL
? Я ожидаю, что он будет постепенно уменьшаться, так как он кэшируется.
Dig сообщает осталось время до истечения TTL а не фактическое значение TTL. Если число различается, наиболее вероятно, что вы запрашиваете разные DNS-серверы (например, циклический перебор), у которых записи кэшируются в течение разного времени и, следовательно, имеют разное время истечения срока действия.
Если вы запустите тот же запрос к тому же DNS-серверу, вы увидите, что TTL уменьшится (примерно) на то же количество секунд, которое вы ждали между запросами. Увидеть ниже:
ragnarok:~ cwatson$ dig a cwatson.org @192.168.50.11; sleep 2s; dig a cwatson.org @192.168.50.11
; <<>> DiG 9.8.3-P1 <<>> a cwatson.org @192.168.50.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39178
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;cwatson.org. IN A
;; ANSWER SECTION:
cwatson.org. 5847 IN A 46.249.223.150
;; Query time: 43 msec
;; SERVER: 192.168.50.11#53(192.168.50.11)
;; WHEN: Wed Jan 21 14:51:08 2015
;; MSG SIZE rcvd: 45
; <<>> DiG 9.8.3-P1 <<>> a cwatson.org @192.168.50.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24943
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;cwatson.org. IN A
;; ANSWER SECTION:
cwatson.org. 5845 IN A 46.249.223.150
;; Query time: 45 msec
;; SERVER: 192.168.50.11#53(192.168.50.11)
;; WHEN: Wed Jan 21 14:51:10 2015
;; MSG SIZE rcvd: 45
Итак, для вашего полного примера у вас есть 769 секунд до истечения срока действия записи A, что приведет к повторному поиску с вашего восходящего DNS-сервера.
Посмотреть ответ Вот для более подробной информации.