Сколько времени занимает распространение DNS-записей?

68

Это канонический вопрос о распространении DNS

Сколько времени требуется для распространения различных типов записей?
Одни распространяются быстрее других?
Почему для распространения DNS-записей требуется время и как это работает?

Сообщество
источник
1
Примечание. Исторически существовала заметная и значительная разница во времени, необходимом для обновления различных типов записей (в зависимости от того, кто их хранит и тому подобное). Сегодня это уже не так.
Крис С
4
Когда люди используют слово «распространять» для DNS, это ясно показывает, что они не знают, что такое DNS и как он работает. Будем надеяться, что документация будет «распространяться» достаточно быстро (скрестив пальцы).
Poige
3
@tonygil Пожалуйста, смотрите комментарий Пойджа. Там нет такого понятия, как распространение DNS. Кроме того, интернет-провайдеры не контролируют корневые серверы. Если DNS-серверы этих интернет-провайдеров кэшируют дольше, чем TTL записи, то они нарушают RFC. Похоже, у вас есть несколько недоразумений с тем, как работает DNS; но нарушения RFC обычно ломают способ, которым это должно работать. Это не имеет ничего общего с США или Европой.
Крис С
1
@tonygil: «Киберполицей», чтобы «обновлять» их, являются все системные администраторы, сетевые администраторы и т. д., оказывающие социальное давление на плохих актеров. Интернет работает, потому что мы все согласны с этим. Наилучшие интересы наших пользователей, сетей и т. Д. Проявляются в «наилучших интересах» Интернета. Re: «Пользователи не техногурус» - это сайт для профессиональных системных администраторов, а не конечных пользователей. Честно говоря, я ожидаю, что системные администраторы будут своего рода «техногуру» (если использовать вашу терминологию). Сисадмины являются , по роду занятий, должны заботиться , как работает этот материал.
Эван Андерсон
@EvanAnderson Я полностью согласен, что давление заставляет перемены. с другой стороны, реальность такова, что ленивые или некомпетентные сисадмины существуют в полчищах. и чем дальше ты уезжаешь от нас и европы, тем чаще они становятся. Ваши ожидания в порядке 4 США, но они не осуществимы в большинстве частей реального мира, где неподготовленные сисадмины являются правилом. Итак, пока вы ожидаете, что все будет хорошо, вы должны иметь дело с реальным миром, где их нет. во всяком случае, сделал мою точку зрения, вы сделали свою. давайте согласимся не соглашаться.
Тони Гил

Ответы:

71

«Распространение DNS» само по себе не является реальным явлением. Скорее, это явный эффект от функции кэширования, указанной в протоколе DNS. Сказать, что изменения «распространяются» между DNS-серверами, - это удобная ложь, которую, вероятно, легче объяснить нетехническим пользователям, чем описывать все детали протокола DNS. Это не совсем то, как работает протокол.

Рекурсивные DNS-серверы делают запросы от имени клиентов. Рекурсивные DNS-серверы, обычно используемые интернет-провайдерами или ИТ-отделами, используются клиентскими компьютерами для разрешения имен интернет-ресурсов. Рекурсивные DNS-серверы кэшируют результаты запросов, которые они делают для повышения эффективности. На запросы уже кэшированной информации можно ответить без каких-либо дополнительных запросов. Продолжительность в секундах, что результат кэшируются будет должен быть на основе настраиваемого значения называется Time To Live (TTL). Это значение указывается уполномоченным DNS-сервером для запрашиваемой записи.

На все задаваемые вопросы нет единого ответа, потому что DNS - это распределенный протокол. Поведение DNS зависит от конфигурации авторитетного DNS-сервера для данной записи, конфигурации рекурсивных DNS-серверов, выполняющих запросы от имени клиентских компьютеров, и функции кэширования DNS, встроенной в операционные системы клиентских компьютеров.

Рекомендуется указывать значение TTL, достаточно короткое, чтобы приспосабливаться к ежедневным изменениям записей DNS, но достаточно длинное, чтобы создать «выигрыш» в кэшировании (т. Е. Не настолько короткое, чтобы слишком быстро устаревать кэш-память, чтобы обеспечить любое повышение эффективности). Использование сбалансированной стратегии со значениями TTL приводит к "победе" для всех. Это уменьшает нагрузку и использование полосы пропускания для официальных DNS-серверов для данного домена, корневых серверов и серверов TLD. Это уменьшает использование полосы пропускания в восходящем направлении для оператора рекурсивного DNS-сервера. Это приводит к более быстрым ответам на запросы для клиентских компьютеров.

Так как TTL DNS-записи настроено на более низкую нагрузку и использование полосы пропускания на авторитетных DNS-серверах увеличится, потому что рекурсивные DNS-серверы не смогут кэшировать результат в течение длительного времени. Поскольку TTL записи выше, изменения в записях не будут «вступать в силу» быстро, потому что клиентские компьютеры будут продолжать получать кэшированные результаты, хранящиеся на их рекурсивных DNS-серверах. Установка оптимального TTL сводится к балансу между использованием и способностью быстро изменять записи и видеть, как эти изменения отражаются на клиентах.

Стоит отметить, что некоторые интернет-провайдеры несправедливы и игнорируют значения TTL, указанные авторитетными DNS-серверами (заменяя их собственными административными переопределениями, что является нарушением RFC). С технической точки зрения ничего не поделаешь. Если операторы несправедливых DNS-серверов могут быть обнаружены, жалобы их системным администраторам могут привести к их внедрению лучших практик (возможно, что является здравым смыслом для любого сетевого инженера, знакомого с DNS). Этот тип злоупотребления не является технической проблемой.

Если все «играют по правилам», изменения в записях DNS могут «вступить в силу» очень быстро. Например, в случае изменения IP-адреса, назначенного записи «A», будет выполнен экспоненциальный откат значения TTL, что приведет к тому времени, когда будет произведено изменение. TTL может начинаться, например, с 1 дня и может быть уменьшен до 12 часов в течение 24-часового периода, затем до 6 часов в течение 12-часового периода, 3 часов в течение 6-часового периода и т. Д. До некоторого достаточно небольшого интервала. После того, как TTL был отозван, запись может быть изменена, и TTL вернется к желаемому значению для повседневных операций. (Нет необходимости использовать экспоненциальный откат, однако эта стратегия минимизирует время, в течение которого запись будет иметь низкий TTL, и уменьшает нагрузку на авторитетный DNS-сервер.)

После внесения изменений в записи DNS следует отслеживать журналы на предмет попыток доступа, сделанных в результате старой записи DNS. В примере изменения записи «A» для ссылки на новый IP-адрес сервер должен оставаться на старом IP-адресе для обработки попыток доступа, возникающих из-за того, что клиентские компьютеры все еще используют старую запись «A». Как только попытки доступа, основанные на старой записи, достигли приемлемо низкого уровня, старый IP-адрес может быть отменен. Если запросы, относящиеся к старой записи, не уменьшаются быстро, возможно, что (как описано выше) рекурсивный DNS-сервер игнорирует авторитетный TTL. Однако знание исходного IP-адреса попытки доступа не дает прямой информации о рекурсивном DNS-сервере, отвечающем за предоставление старой записи.

Лично я видел, что изменения «вступают в силу» сразу, через несколько часов, а в некоторых случаях с конкретным провайдером, поврежденным мозгом, через несколько дней. Отказ от своего TTL и помнить о том, как этот процесс работает, увеличит ваши изменения для успеха, но вы никогда не сможете быть уверенными в том, что может делать какой-то благий идиот со своими рекурсивными DNS-серверами.

Эван Андерсон
источник
9
Это не ответ об «OpenDNS» - это ответ о DNS. Любой рекурсивный DNS-провайдер может реализовать любые интерфейсы, которые он хочет, чтобы разрешить очистку кэша и т. Д. Мы говорим о DNS, а не об API поставщика. Что касается ваших правок: я поддерживаю фразу «поврежденный мозг» как фразу, которая давно используется в хакерской культуре, и я использую ее в этом контексте (см. «Файл жаргона», «Хакеры» Стивена Леви и т. Д.) , Что касается «идиотизма», я думаю, что достаточно обоснованно установлено, что вне юридических кодексов это разговорный термин для действий, которые некомпетентны. Я тоже поддерживаю это.
Эван Андерсон
11
@tonygil - OpenDNS не является DNS. Это просто услуга, которую кто-то предлагает. Что, если FooDNS откроется завтра и у него будет новый захватывающий API очистки кеша? Должен ли мой ответ включать это тоже? Где это останавливается? Это вырождается в безумие. Re: гражданские права - я не работодатель или государственное учреждение, отказывающее в гражданских правах члену защищенного класса. Конечно, иди и посмотри, сможешь ли ты найти кого-то, кто хочет преследовать меня. Они могут связаться со мной по почте на PO Box 852, Troy, OH. (866) 569-9799, x801 переадресация на мой мобильный телефон 24x7. (Это хорошая детективная работа, глядя на мой профиль, кстати.)
Эван Андерсон
1
вы видите, вы сказали, что давление со стороны сверстников приносит изменения. это было то, что я сделал. обратил ваше внимание на то, что я не согласен с тем, что вы используете «идиот» и «поврежденный мозг», потому что они оскорбительны и уничижительны. тот факт, что кто-то использует его обильно (например, хакеры), не делает это правильным. Ккк использовал n-слово обильно. Пожалуйста, уважайте тех из нас, кто заботится о людях с умственными недостатками. Я понимаю, что вы включили эти термины метафорически в ваш красочный стиль, но поверьте: они оскорбительны и не нужны.
Тони Джил
О соблюдении TTL: TTL - это максимальное значение для хранения вещей в кэше, решатель кэширования может свободно отбрасывать данные перед этим. Таким образом, они могут понизить это, если они хотят. Однако это правда, что они не должны увеличивать его, что является нарушением протокола. Но для людей, помещающих как 1 секунду в TTL, некоторые кэши защищают себя, просто не соблюдая это и вместо этого зажимая примерно 5 минут.
Патрик Мевзек,
Рекурсивные DNS-серверы, обычно управляемые интернет-провайдерами или ИТ-отделами, в настоящее время представляют собой огромный флот (произвольное облако) открытых рекурсивных серверов имен, таких как 1.1.1.1или 8.8.8.8или 9.9.9.9или 80.80.80.80. Важно понимать, что они anycasted: ответ может измениться в зависимости от исходного IP-адреса, потому что он может попасть в совершенно другой физический экземпляр И кеш, который они имеют, может быть глобальным для всех экземпляров или нет.
Патрик Мевзек,