Я всегда слышу, как системные администраторы говорят об ожидании распространения записей DNS «по Интернету» или «по всему миру», когда они говорят о внесении изменений в DNS. Дело в том, что мои записи DNS не распространяются ни на какие другие DNS-серверы, кроме серверов имен, на которых размещено мое пространство имен (первичный, вторичный, третичный). Когда я меняю запись DNS (A
, CNAME
, MX
и т. д.) эти изменения немедленно отражаются в моей зоне и никуда не распространяются. Когда люди говорят о распространении записей DNS, на самом деле имеют в виду кэширование TTL. Эта статья в Википедии кратко объясняет это:
http://en.wikipedia.org/wiki/Domain_Name_System
Разве концепция распространения DNS - это не миф? Итак, почему это называется «распространение»?
Миф? Вид.
Есть 2 аспекта, которые люди часто путают. Если вы вносите изменения в свое доменное имя с помощью регистратора доменных имен, например, меняете серверы имен, это будет перенесено на серверы имен для вашего TLD (.com, .ca, .fr и т. Д.). Вот где в игру вступает распространение. В прошлые годы это могло занимать часы или даже дни, ожидая, пока регистратор возьмет предоставленную вами информацию и отправит ее на свои серверы развертывания, которые будут обновлять корневые серверы TLD дважды в день. С годами ситуация быстро улучшается, и часто изменения, внесенные в ваше доменное имя, вступают в силу почти сразу.
С другой стороны, если вы вносите изменения в свою зону DNS, например добавляете запись A или изменение MX, это должно занять «до», пока параметр TTL будет обновляться повсюду. Это не совсем распространение, это кеширование. Например, Microsoft DNS по умолчанию составляет 1 час TTL.
При кешировании, если вы используете доменное имя непосредственно перед внесением изменений, а TTL составляет 1 час, то для его обновления потребуется час. Однако, если вы ничего не тестировали с доменным именем непосредственно перед изменением, ваше изменение будет для вас немедленно. (т.е. добавьте новую запись A, с которой вы еще не тестировали, и она немедленно вступит в силу).
Итак, в настоящее время почти все изменения вступают в силу в течение часа (или независимо от того, для чего установлен ваш DNS TTL). Единственными исключениями являются случаи, когда DNS-сервер не соблюдает TTL (спамеры часто этого не делают), или если серверы вашего регистратора доменных имен не обновляются должным образом в Интернете, и вы меняете уровень регистратора. Однако это случается не часто.
Да - люди говорят о тайм-ауте поиска кеша для кешей DNS-сервера, когда они делают такие заявления.
К сожалению, некоторые DNS-серверы в течение некоторого времени беспечно игнорируют значения TTL и записи кеша, превышающие указанный TTL. Я видел, как DNS-серверы интернет-провайдеров хранят кешированные записи с очень низким TTL (в минутах) до 24 часов, и, вероятно, есть некоторые серверы с действительно поврежденным мозгом, которые хранят их еще дольше.
Они «распространяются» на DNS-серверы по всему миру в том же смысле, в каком идеи передаются от одного ума к другому. Когда поступает запрос, локальный кеш DNS должен изучить информацию (если она еще не кэширована или если она кеширована, но срок ее действия истек). Итак, новое значение, которое вы только что отправили на свой сервер, появляется на карте почти так же, как сплетни появляются в блогах. Ну, не совсем то же самое, но я думаю, что это отличная аналогия.
Это не миф, мы довольно часто видим проблемы со "скоростью распространения" при изменении записей MX. Это всегда, когда мы не контролируем DNS и работаем через третью сторону, поэтому мы обычно не можем сказать, очень ли длинный TTL, он игнорируется некоторыми DNS-серверами, MX кэшируется SMTP-сервером или некоторыми другими комбинация всего 3. Как бы то ни было, когда это случается, это больно.
В исходной спецификации DNS (RFC 1034/1035) требовалось выполнить два этапа аннулирования кеша, прежде чем обновление зоны станет глобально видимым. В дополнение к уже упомянутому истечению срока жизни кэширующих преобразователей по всему миру, вам сначала нужно было дождаться (всех) ваших вторичных серверов имен, чтобы обновить данные зоны из первичной зоны.
Только после того, как в 1996 году было указано DNS NOTIFY (RFC 1996), появился стандартный способ оперативного уведомления всех авторитетных серверов имен об изменении зоны.
Так что, возможно, первоначальная фраза «распространение изменений» была более подходящей в то время, поскольку это был двухэтапный процесс.
Я слышал, что о распространении DNS говорят только в отношении размещения вашего веб-сайта .com у стороннего поставщика, и только потому, что они кэшируют записи в течение 48 часов. Любые DNS-серверы, у которых нет кэшированных записей, должны быть доступны немедленно.
Если мы посмотрим на определение словаря и этимологию слова «размножаться», мы можем видеть, что это слово подразумевает, что каким-то действием родителя рождается ребенок. В случае DNS, когда у вас есть несколько серверов, уполномоченных для конкретной зоны, и вы вносите изменения на одном сервере («родительская» запись), запись будет размноженный на другие серверы («дочерние» записи) с помощью системы репликации, которая отправляет изменения на партнерские серверы.
Использование термина «распространение» для описания того, как изменение DNS распознается неавторизованными DNS-серверами, является неправильным применением термина «распространение», так как он не соответствует словарному определению этого слова. Более подходящим термином было бы открытие, потому что серверы кэширования DNS обнаруживают разрешение адреса и запоминают его для TTL.
На самом деле, мы не ждем, когда изменение DNS распространится по всему миру, мы ждем, когда это будет обнаружено.
Я бы не назвал это мифом. TTL при кэшировании имеет побочный эффект, заключающийся в том, что устаревшие записи сохраняются после обновления записей DNS на полномочном DNS-сервере.
Так что называйте это как хотите, но конечный результат тот же.
Также записи MX не кэшируются, поэтому любые изменения записей MX для домена происходят мгновенно.