Корень DNS записывает hardcoded затем, почему он имеет ttl?

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

Почему TTL уменьшился бы, когда это - harcoded в файле конфигурации?
И почему был бы TTL на корневом уровне быть необходимым во-первых, когда это - harcoded?

8
задан 18 May 2015 в 13:59
3 ответа

Обычно корневые серверы DNS настраиваются явно так же, как и приведенный ниже фрагмент:

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

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

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

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

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

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

14
ответ дан 2 December 2019 в 22:45

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

Например, текущее обновление было в последний раз обновлено в 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
4
ответ дан 2 December 2019 в 22:45

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

.
2
ответ дан 2 December 2019 в 22:45

Теги

Похожие вопросы