Вчера истек срок действия одного из моих доменных имен, поэтому один из моих сайтов не работал. Я хорошо осведомлен о кешировании DNS, но думаю, что кое-что мне не хватает.
Мой сайт был не везде (благодаря кешированию DNS). Однако результаты, выдаваемые, например, сервером DNS Google, были разными для двух серверов. Как придешь ?
Мой DNS имеет расширение .paris (парижский запуск)
С моего компьютера он работал нормально. Вот результат раскопок:
dig @8.8.8.8 mydomain.paris
; <<>> DiG 9.8.3-P1 <<>> @8.8.8.8 mydomain.paris
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 189
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;mydomain.paris. IN A
;; ANSWER SECTION:
mydomain.paris. 27 IN A 104.25.219.14
mydomain.paris. 27 IN A 104.25.218.14
;; Query time: 75 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec 9 19:47:52 2015
;; MSG SIZE rcvd: 63
С другого сервера не работало:
dig @8.8.8.8 mydomain.paris
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @8.8.8.8 mydomain.paris
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61073
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;mydomain.paris. IN A
;; AUTHORITY SECTION:
paris. 1799 IN SOA a.nic.fr. hostmaster.nic.paris. 2222333866 3600 1800 3600000 5400
;; Query time: 18 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec 9 20:02:24 2015
;; MSG SIZE rcvd: 90
Оба раза я запрашиваю DNS-сервер Google. Почему я получаю разные результаты? Есть ли кеширование даже с dig @
команда? И почему мне отвечают, а нет AUTHORITY SECTION
, в первом случае и только AUTHORITY SECTION
а во втором случае нет ответов? Что AUTHORITY SECTION
?
Большое спасибо :)
Для Google (8.8.8.8), как и у многих провайдеров, служба разрешения балансирует нагрузку по нескольким узлам, и поскольку каждый узел поддерживает свой собственный кеш, последующие запросы к явно одному и тому же серверу имен могут фактически поступать с другого узла и давать разные ( кешировано) результаты. (Различные ошибки, разные значения TTL и т. Д.)
@ используется dig для выбора определенного сервера имен, а не сервера (ов) имен по умолчанию, как указано в /etc/resolv.conf
ни больше, ни меньше, это не определяет кеширование на этом сервере имен.
Чтобы избежать кеширования результатов, вы можете использовать dig +trace
опция, которая заставит dig использовать трассировку, итеративные запросы для разрешения искомого имени. Он будет следить за ссылками с корневых серверов, показывая ответ от каждого сервера, который использовался для разрешения поиска.
Касаемо раздела АВТОРИТЕТ: кешировано полученные результаты не являются авторитетными и не содержат авторитетных данных.
RFC 2308 требует, чтобы кешированные ошибки (NXDOMAIN) действительно включает раздел полномочий; «он ДОЛЖЕН добавить кэшированную запись SOA в раздел полномочий ответа с уменьшенным TTL на количество времени, в течение которого она хранилась в кэше. Это позволяет ответу NXDOMAIN / NODATA правильно истечь время ожидания».