Корневая запись DNS жестко, тогда почему у него есть ttl?

8

Я размещаю рекурсивный сервер имен локально, поэтому мне не нужен мой поставщик услуг или другой общедоступный DNS-сервер для разрешения имен. Хотя IP-адреса корневого сервера имен жестко заданы в файле конфигурации (в /etc/bind/db.rootфайле Bind ), когда я запускаю несколько последовательных nslookupкоманд для корневого сервера имен для ., поле TTL все еще уменьшается.

Почему TTL уменьшится, если он будет записан в файле конфигурации?
И зачем вообще нужен TTL на корневом уровне, когда он зашифрован?

user2632528
источник

Ответы:

14

Обычно вы явно настраиваете корневые серверы DNS, как показано ниже:

zone "." {
  type hint;
  file "/etc/bind/db.root";
};

Где вы замечаете , что тип зоны не является общим , masterни slave но особый тип зоны называется hint.

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

Поскольку они кэшируются, им потребуется TTL, и, как вы заметили, этот TTL будет уменьшаться, как и любая другая кэшированная запись DNS.

Если для класса IN зона подсказок не указана, сервер использует скомпилированный по умолчанию набор подсказок корневых серверов. Источник: Справочное руководство администратора Bind .

Как пояснил Брайан в своем ответе, корневая зона изменяется, и пока хотя бы один сервер имен остается действительным, зона подсказок позволяет вносить такие изменения в корневые серверы имен, не требуя от всех существующих серверов имен обновлять свои статические файлы конфигурации.

HBruijn
источник
4

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

Например, последний раз последний раз обновлялся в 2014 году, как показано в начале файла здесь :

;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC 
;       under anonymous FTP as
;           file                /domain/named.cache
;           on server           FTP.INTERNIC.NET
;       -OR-                    RS.INTERNIC.NET
;
;       last update:    November 05, 2014
;       related version of root zone:   2014110501
;
; formerly NS.INTERNIC.NET
;
.                        3600000      NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:ba3e::2:30
Брайан
источник
2

db.root используется только как часть процесса запуска DNS-сервера для поиска реальных текущих корневых серверов. Затем они обновляются в соответствии с TTL.

Том Халлам
источник