Назад | Перейти на главную страницу

можно ли увидеть оставшийся отрицательный кеш DNS для домена?

Для обычных поисков DNS можно использовать Dig, чтобы получить ответ, включая оставшийся TTL для записи DNS. Если этот ответ из кеша, TTL будет «отсчитывать» до следующего авторитетного запроса и оставшееся время до появления этого запроса (как указано в этом вопросе: Проверьте оставшийся TTL для сервера имен).

Как я могу получить соответствующее «оставшееся время» для записи с отрицательным кешем? Ответом по определению является «NXDOMAIN» или несуществующий домен; похоже, что с этим ответом не связано никакого TTL, кроме записи SOA (максимально возможное значение времени).

У меня также есть доступ к серверу [BIND 9] напрямую, поэтому способы получить эту информацию напрямую из кеша также приветствуются, хотя я надеюсь, что для этого есть способ на основе запросов.

Не существует способа получить состояние сервера на основе запроса. Клей, таймеры отрицательного кэша и т. Д. Необходимо выгружать из памяти с помощью rndc dumpdb команда.

  • Типы записей, начинающиеся с \- отрицательно кэшируются. \-A, \-AAAA, и т.д.
  • \-ANY указывает на истинное NXDOMAIN. Никакие записи не живут рядом или ниже этого объекта.

Вышеизложенное может сбить с толку, если вы не знакомы с концепцией NODATA перед. (RFC 2308) Это означает ответ NOERROR с 0 ответами, в отличие от NXDOMAIN. NXDOMAIN указывает, что записей с таким именем вообще не существует.

Пример отрицательных кэшированных записей:

test1.example.com. 442 \-ANY ;-$NXDOMAIN
test2.example.com. 352 \-AAAA ;-$NXRRSET

Автоматический синтаксический анализ этого файла не для слабонервных, особенно когда имя метки опущено из-за повторения.

Во-первых, TTL для NXDOMAIN должен передаваться через запись SOA в AUTHORITY SECTION ответа. Смотрите мой ответ на Как долго обычно длится отрицательное кеширование DNS? для подробностей.

Что касается вопроса о том, что при последующих запросах TTL уменьшается. Я считаю, что это деталь реализации DNS-сервера.

В ходе тестирования я заметил, что некоторые рекурсивные серверы имен не возвращают AUTHORITY SECTION с записью SOA с уменьшающимся TTL для последующих запросов, тогда как другие делают.

Например, распознаватель облачных бликов (обратите внимание на уменьшение значения TTL):

$ dig nxdomain.serverfault.com @1.1.1.1 | grep 'AUTHORITY SECTION' -A 1
;; AUTHORITY SECTION:
serverfault.com.    674 IN  SOA ns-1135.awsdns-13.org. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
$ dig nxdomain.serverfault.com @1.1.1.1 | grep 'AUTHORITY SECTION' -A 1
;; AUTHORITY SECTION:
serverfault.com.    668 IN  SOA ns-1135.awsdns-13.org. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

В то время как преобразователь по умолчанию в AWS VPC ответит разделом полномочий только на первый запрос:

$ dig nxdomain.serverfault.com @169.254.169.253 | grep 'AUTHORITY SECTION' -A 1
;; AUTHORITY SECTION:
serverfault.com.    300 IN  SOA ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300
$ dig nxdomain.serverfault.com @169.254.169.253 | grep 'AUTHORITY SECTION' -A 1 | wc -l
0

Обратите внимание, что полномочный сервер всегда должен возвращать полный TTL, который должен быть меньше значения поля SOA.MINIMUM и TTL самой записи SOA. Вы увидите только уменьшение TTL в ответах от рекурсивного (кэширующего) сервера имен.

Также обратите внимание, что при запросе рекурсивных серверов вы часто будете сталкиваться с балансировщиком нагрузки, и, следовательно, вы получите разные ответы в зависимости от того, на каком сервере с балансировкой нагрузки вы случайно попали.