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

Кеширование значений и изменение серверов имен

Я только что осознал, что мое понимание кэширования DNS должно быть хотя бы немного ошибочным, и я хочу исправить свое понимание.

Когда доменное имя зарегистрировано, я понимаю, что серверы имён для него добавляются в корневые серверы имён. Я также понимаю, что мой файл зоны включает записи SOA и NS с TTL.

Предполагая, что я обновляю серверы имен для example.com (и не удаляю старые серверы имен из ответа), сколько времени пройдет до того, как старые серверы имен будут забыты, т.е. какие настройки используются DNS для кеширования ответа? [Я могу представить, что это TTL записи ns, но я не уверен, что это правильно]. Какой документ RFC ожидает поведения?

Соответственно, с точки зрения рекурсивного сервера, используются ли записи SOA для чего-либо или они предназначены исключительно для обработки передачи зон?

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

Это распространенное заблуждение. Корневые серверы имен знают только о серверах имен "домена верхнего уровня" (TLD). Ваш NS записи были добавлены в реестр для вашего TLD. Реестр, в свою очередь, публикует те NS записи на «серверах имен TLD» для вашего TLD.

Если у вас есть доступ к командной строке dig утилиту, вы можете увидеть полный путь делегирования, запустив dig +trace example.com NS. . представляет корневые серверы имен, а com. - это зона, управляемая реестром для TLD "dot com".

Означает ли это, что ttls в записях NS контролируют кеширование?

Да. Есть два набора NS записи, о которых вам нужно знать. Первый набор находится в вашей авторитетной зоне. Другой набор находится в делегировании, обслуживаемом серверами имен TLD. (см. dig +trace example.com вывод из предыдущего примера)

При изменении IP-адресов вашего сервера имен данные должны продолжать жить на старых серверах до тех пор, пока больше из этих двух наборов TTL истек. Серверы имен TLD обычно имеют TTL, измеряемые днями.

Если это сбивает с толку, подумайте об этом так: у вас нет возможности контролировать, какой из этих двух TTL, которые серверы в Интернете видели в последнее время. Вы также не можете контролировать, предпочитают ли DNS-серверы один набор NS записи над другими. Единственное, что вы можете сделать, - это убедиться, что вы ждали более длительного из двух интервалов.

Соответственно, с точки зрения рекурсивного сервера, используются ли записи SOA для чего-либо или они предназначены исключительно для обработки передачи зон?

Числовые интервалы, определенные в SOA записи в основном используются для связи между вашим главным и вторичным серверами. Последнее поле, SOA.MINIMUM, является специальным и используется рекурсивными DNS-серверами при вычислении того, как долго им разрешено кэшировать отсутствие записи DNS. (формула min(SOA TTL,SOA.MINIMUM), видеть RFC 2308)