Короче говоря, оба запроса, которые вы упомянули в вопросе, являются неавторизованными.
Записи DNS для домена могут быть запрошены с кэширующего DNS-сервера или с официального DNS-сервера. Таким образом, если вы хотите запросить DNS-сервер с кэшированием, вы можете указать IP-адрес DNS-сервера или, если он не указан, будет выбран DNS-сервер по умолчанию, который был настроен /etc/resolv.conf
.
Неавторизованный запрос
$ dig stackexchange.com
или же
$ dig stackexchange.com @8.8.8.8
В обоих случаях запрос возвращает неавторизованный ответ, поскольку DNS вашего интернет-провайдера или общедоступный DNS Google (8.8.8.8) не являются полномочными для stackexchange.com
домена. Когда вы запросили неавторизованный сервер имен, значение TTL, которое он предоставляет, будет уменьшаться при каждом запросе. Как только значение TTL истечет, кэширующий сервер имен будет запрашивать полномочный DNS-сервер.
Авторитетный запрос
Таким образом, чтобы получить достоверный ответ, вам нужно запросить запись с авторитетного DNS-сервера, которую можно найти с помощью метода ниже.
$ dig ns stackexchange.com ... ;; ANSWER SECTION: stackexchange.com. 84894 IN NS cf-dns02.stackexchange.com. stackexchange.com. 84894 IN NS cf-dns01.stackexchange.com. ...
ОТВЕТ Раздел предоставляет полномочные сервера для домена stackexchange.com
и поэтому, если нам нужно, чтобы получить авторитетный ответ, то
$ dig stackexchange.com @cf-dns01.stackexchange.com.
Хотя мы запрашиваем авторитетный DNS-сервер, значения TTL не изменятся, поскольку эти серверы имен являются основным источником информации, и срок их действия не истекает до тех пор, пока администратор не изменит их.
Как работает ЛЮБАЯ запись
ЛЮБАЯ запись похожа на шаблон, вы можете использовать ее для получения всех записей, которые кэшируются / хранятся на DNS-сервере. Например, я запросил stackexchange.com
ЛЮБУЮ запись, и мой DNS-сервер по умолчанию отвечает, как показано ниже.
$ dig any stackexchange.com .... ;; ANSWER SECTION: stackexchange.com. 86350 IN SOA cf-dns01.stackexchange.com. dns.cloudflare.com. 2017456480 10000 2400 604800 3600 stackexchange.com. 176 IN A 198.252.206.140 stackexchange.com. 84338 IN NS cf-dns01.stackexchange.com. stackexchange.com. 84338 IN NS cf-dns02.stackexchange.com. ....
Здесь вы можете увидеть, что ответ содержит только информацию о SOA
, A
и NS
запись. Но на самом деле есть еще записи, stackexchange.com
которые не кэшируются на моем DNS-сервере по умолчанию, поскольку я не запрашивал их.
Теперь я запрашиваю MX
запись на мой DNS-сервер по умолчанию, и ответ
$ dig MX stackexchange.com .... ;; ANSWER SECTION: stackexchange.com. 300 IN MX 10 aspmx3.googlemail.com. stackexchange.com. 300 IN MX 5 alt2.aspmx.l.google.com. stackexchange.com. 300 IN MX 5 alt1.aspmx.l.google.com. stackexchange.com. 300 IN MX 10 aspmx2.googlemail.com. stackexchange.com. 300 IN MX 1 aspmx.l.google.com. ....
Теперь я снова запрашиваю ANY
запись, и теперь вы можете видеть, что запрос ANY
также вернул MX
записи. И поэтому ANY
запись будет просто предоставлять записи, которые кэшируются только на вашем сервере имен по умолчанию.
$ dig any stackexchange.com .... ;; ANSWER SECTION: stackexchange.com. 298 IN MX 5 alt1.aspmx.l.google.com. stackexchange.com. 298 IN MX 10 aspmx2.googlemail.com. stackexchange.com. 86084 IN NS cf-dns01.stackexchange.com. stackexchange.com. 298 IN MX 10 aspmx3.googlemail.com. stackexchange.com. 298 IN MX 1 aspmx.l.google.com. stackexchange.com. 298 IN MX 5 alt2.aspmx.l.google.com. stackexchange.com. 86084 IN NS cf-dns02.stackexchange.com. stackexchange.com. 243 IN A 198.252.206.140 stackexchange.com. 86343 IN SOA cf-dns01.stackexchange.com. dns.cloudflare.com. 2017456480 10000 2400 604800 3600 ....
И, как вы можете видеть, значения TTL меняются для неавторизованных ответов.