1

Я обнаружил, что поле TTL в ответе может значительно различаться (и часто увеличиваться) между последующими запросами к одному и тому же доменному имени (и тому же разрешающему DNS-серверу).

$ dig stackexchange.com

; <<>> DiG 9.9.5-4.3ubuntu0.2-Ubuntu <<>> stackexchange.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45575
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;stackexchange.com.     IN  A

;; ANSWER SECTION:
stackexchange.com.  107 IN  A   104.16.13.13
stackexchange.com.  107 IN  A   104.16.12.13

;; Query time: 12 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Thu Apr 09 14:28:45 BST 2015
;; MSG SIZE  rcvd: 78

 

$ dig stackexchange.com

; <<>> DiG 9.9.5-4.3ubuntu0.2-Ubuntu <<>> stackexchange.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9152
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;stackexchange.com.     IN  A

;; ANSWER SECTION:
stackexchange.com.  201 IN  A   104.16.13.13
stackexchange.com.  201 IN  A   104.16.12.13

;; Query time: 13 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Thu Apr 09 14:28:46 BST 2015
;; MSG SIZE  rcvd: 78

Я запустил tcpdump для проверки пакетов (просто чтобы убедиться, что в dig нет ошибок), где я вижу, что пакеты возвращают разные значения TTL.

14:28:45.011150 IP (tos 0x18, ttl 48, id 0, offset 0, flags [DF], proto UDP (17), length 106)
192.168.1.1.domain > 192.168.1.109.10403: [udp sum ok] 27042 q: A? stackexchange.com. 2/0/1 stackexchange.com. [1m47s] A 104.16.13.13, stackexchange.com. [1m47s] A 104.16.12.13 ar: . OPT UDPsize=4096 (78)
14:28:46.671406 IP (tos 0x0, ttl 64, id 39411, offset 0, flags [DF], proto UDP (17), length 74)
192.168.1.109.24817 > 192.168.1.1.domain: [udp sum ok] 57829+ [1au] A? stackexchange.com. ar: . OPT UDPsize=4096 (46)
14:28:46.682634 IP (tos 0x18, ttl 48, id 0, offset 0, flags [DF], proto UDP (17), length 106)
192.168.1.1.domain > 192.168.1.109.24817: [udp sum ok] 57829 q: A? stackexchange.com. 2/0/1 stackexchange.com. [3m21s] A 104.16.13.13, stackexchange.com. [3m21s] A 104.16.12.13 ar: . OPT UDPsize=4096 (78)

Я бы подумал, что это связано с произвольным вещанием и потенциальной балансировкой нагрузки на несколько DNS-серверов в одном центре обработки данных. Проблема в том, что запросы разрешаются через мой маршрутизатор, который, как я предполагаю, кэширует записи вплоть до их TTL. Поэтому я должен видеть уменьшающееся поле TTL в каждом последующем ответе. Может ли это быть ошибкой в моем роутере или это просто не кеширование?

1 ответ1

2

Многие маршрутизаторы, особенно более дешевые, на самом деле не обеспечивают DNS-кэширование. Из-за произвольных DNS-серверов вашего провайдера значение TTL записей будет отличаться от сервера к серверу в зависимости от того, когда они впервые / в последний раз разрешили этот домен.

Вы можете посмотреть на это, посетив такой сайт, как digwebinterface.com: http://www.digwebinterface.com/?hostnames=stackexchange.com&type=A&useresolver=8.8.4.4&ns=all&nameservers=

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .