Обновление днс

Что происходит, когда вы обновляете свой DNS

Обновление днс
Fenix by Takeda11 Многие путаются в обновлении записей DNS, когда изменяют IP-адрес своего сайта.

Почему эти записи медленно обновляются? Неужели действительно нужно ждать два дня, чтобы всё обновилось? Почему одни посетители видят новый IP, а другие — старый?

Команда Mail.

ru Cloud Solutions перевела статью разработчика и автора статей Джулии Эванс, где она отвечает на эти вопросы и популярно рассказывает, что происходит во время обновления DNS с точки зрения фронтендера.

Вот краткое исследование того, что происходит за кулисами, когда вы обновляете запись DNS.
Во-первых, нам нужно немного объяснить систему DNS. Существует два вида DNS-серверов: авторитетные и рекурсивные.

Авторитетные DNS-серверы (также известные как серверы имен) хранят базу данных IP-адресов для каждого домена, за который они отвечают. Например, прямо сейчас авторитетный DNS-сервер для github.com — это ns-421.awsdns-52.com. Вы можете спросить у него IP-адрес github.com вот таким запросом:

dig @ns-421.awsdns-52.com github.com
Рекурсивные DNS-серверы сами по себе ничего не знают о том, кому принадлежит какой IP-адрес. Они вычисляют IP-адрес для домена, запрашивая его у соответствующих авторитетных DNS-серверов, а затем кэшируют этот IP-адрес на случай, если их снова спросят о нем. Так, 8.8.8.8 — это рекурсивный DNS-сервер. Когда люди посещают ваш веб-сайт, они, вероятно, делают DNS-запросы к рекурсивному DNS-серверу. Итак, как же работают рекурсивные DNS-серверы? Давайте посмотрим! Давайте рассмотрим пример того, что делает рекурсивный DNS-сервер (например, 8.8.8.8), когда вы запрашиваете у него IP-адрес (запись А) для github.com. Во-первых, если у него уже есть кэшированный результат, он выдаст его. Но что, если все кэши просрочены? Вот что происходит.

Шаг 1: IP-адреса для корневых DNS-серверов жестко закодированы в его исходном коде. Вы можете увидеть это в исходном коде unbound. Допустим, для начала он выберет 198.41.0.4. Вот официальный источник этих жестко закодированных IP-адресов, также известный как «корневой файл подсказок» (root hints file).

Шаг 2: Спросить корневые серверы имен о github.com.

Мы можем приблизительно воспроизвести то, что происходит, с помощью команды dig. Она выдает нам новый авторитетный сервер имен для запроса: сервер имен для .com с IP-адресом 192.5.6.30.

$ dig @198.41.0.4 github.com…com. 172800 IN NS a.gtld-servers.net….a.gtld-servers.net. 172800 IN A 192.5.6.30… Детали ответа DNS немного сложнее — в этом случае есть раздел авторитетности (authority section) с некоторыми записями NS и дополнительный раздел с записями A, так что вам не нужно делать дополнительный поиск, чтобы получить IP-адреса этих серверов имен.

На практике в 99,99% случаев там уже будет кэшированный адрес серверов имен .com, но мы делаем вид, что действительно начинаем с нуля.

Шаг 3: Спросить серверы имен .com о github.com.

$ dig @192.5.6.30 github.com…github.com. 172800 IN NS ns-421.awsdns-52.com.ns-421.awsdns-52.com. 172800 IN A 205.251.193.165… У нас есть новый IP-адрес для отправки запроса! Это один из серверов имен для github.com.

Шаг 4: Спросить у серверов имен github.com об адресе github.com.

Мы почти закончили! $ dig @205.251.193.165 github.com github.com. 60 IN A 140.82.112.4 Итак, у нас есть запись А для github.com. Теперь у рекурсивного сервера есть IP-адрес github.com, и он может вернуть его вам. И он смог провернуть всю процедуру, начиная всего с нескольких жестко закодированных IP-адресов: адресов корневых серверов имен. Чтобы посмотреть, что рекурсивный DNS-сервер будет делать для резолвинга домена, можно запустить: $ dig @8.8.8.8 +trace github.com Эта команда показывает все DNS-записи, которые запрашивает рекурсивный сервер, начиная с корневых DNS-серверов, то есть все четыре шага, которые мы только что прошли. Теперь, когда мы знаем основы работы DNS, давайте обновим некоторые записи DNS и посмотрим, что произойдет. При обновлении записей DNS существует два основных варианта:

  1. сохранить те же серверы имен;
  2. изменить серверы имен.

Но мы забыли кое-что важное. Это TTL. Как мы сказали ранее, рекурсивный DNS-сервер будет кэшировать записи до истечения срока их действия. Он принимает решение об истечении срока действия записи в зависимости от ее TTL (time to live, времени жизни). В этом примере сервер имен GitHub для его DNS-записи возвращает TTL 60, что означает 60 секунд: $ dig @205.251.193.165 github.com github.com. 60 IN A 140.82.112.4
Это довольно короткий TTL. Теоретически, если бы все DNS-реализации следовали стандарту DNS, это означало бы, что если GitHub решил изменить IP-адрес для github.com, каждый получил бы новый IP-адрес в течение 60 секунд. Давайте посмотрим, как это происходит на практике.
Во-первых, я обновила свои серверы имен (Cloudflare), чтобы получить новую запись DNS — запись A, которая сопоставляет test.jvns.ca на 1.2.3.4: $ dig @8.8.8.8 test.jvns.catest.jvns.ca. 299 IN A 1.2.3.4
Это сработало немедленно! Не было никакой необходимости ждать вообще, потому что перед этим не было никакой DNS-записи test.jvns.ca, которая могла быть кэширована. Отлично. Но похоже, что новая запись кэшируется в течение примерно пяти минут (299 секунд). Итак, а если мы попытаемся изменить этот IP-адрес? Я изменила его на 5.6.7.8, а затем запустила тот же DNS-запрос: $ dig @8.8.8.8 test.jvns.catest.jvns.ca. 144 IN A 1.2.3.4 Похоже, что на этом DNS-сервере запись 1.2.3.4 всё еще кэшируется в течение 144 секунд. Интересно, что если запросить 8.8.8.8 несколько раз, вы получите противоречивые результаты — иногда он выдает новый IP, а иногда старый. Вероятно, 8.8.8.8 на самом деле распределяет нагрузку на кучу разных бэкендов, у каждого из которых собственный кэш. После пяти минут ожидания все кэши 8.8.8.8 обновились и всегда возвращали новую запись 5.6.7.8. Потрясающе. Это довольно быстро!
Как и в большинстве интернет-протоколов, не всё подчиняется спецификации DNS. Некоторые DNS-серверы интернет-провайдеров будут кэшировать записи дольше, чем указано в TTL. Например, в течение двух дней вместо пяти минут. И люди всегда могут жестко закодировать старый IP-адрес в своем файле /etc/hosts. На практике при обновлении записи DNS с пятиминутным TTL можно ожидать, что большой процент клиентов быстро перейдет на новые IP-адреса (например в течение 15 минут), а затем появится куча отставших, которые будут медленно обновляться в течение следующих нескольких дней. Итак, мы видели, что когда вы обновляете IP-адрес, не меняя свои серверы имен, многие DNS-серверы довольно быстро получают новый IP-адрес. Отлично. Но что произойдет, если вы измените свои серверы имен? Давайте попробуем!

Я не хотела обновлять серверы имен для своего блога, поэтому вместо этого взяла другой свой домен и использовала его в примерах для журнала по HTTP это examplecat.com.

Раньше мои серверы были установлены на dns1.p01.nsone.net. Я решила изменить их на серверы Google с адресами ns-cloud-b1.googledomains.com и так далее.

Когда я внесла изменения, мой доменный регистратор несколько зловеще высветил сообщение: «Изменения в examplecat.com сохранены. Они вступят в силу в течение ближайших 48 часов». Затем я установила новую запись A для домена, чтобы она указывала на 1.2.3.4. Ладно, давайте посмотрим, изменилось ли что-нибудь: $ dig @8.8.8.8 examplecat.comexamplecat.com. 17 IN A 104.248.50.87 Никаких изменений. Если я спрошу другой DNS-сервер, то он знает новый IP: $ dig @1.1.1.1 examplecat.comexamplecat.com. 299 IN A 1.2.3.4 Но 8.8.8.8 по-прежнему ничего не знает. Причина, по которой 1.1.1.1 видит новый IP, хотя я только что изменила его пять минут назад, вероятно, заключается в том, что никто никогда не спрашивал 1.1.1.1 об этом examplecat.com раньше — значит, у него в кэше ничего не было. Причина, по которой мой регистратор говорил: «Это займёт 48 часов» в том, что TTL на NS-записях (сведения о том, к какому серверу имен должен обратиться рекурсивный сервер) намного больше. Новый сервер имен определенно возвращает новый IP-адрес для examplecat.com: $ dig @ns-cloud-b1.googledomains.com examplecat.comexamplecat.com. 300 IN A 1.2.3.4 Но вспомните, что произошло, когда мы запросили серверы имен github.com раньше: $ dig @192.5.6.30 github.com…github.com. 172800 IN NS ns-421.awsdns-52.com.ns-421.awsdns-52.com. 172800 IN A 205.251.193.165… 172 800 секунд — это 48 часов! Таким образом, обновление сервера имен, как правило, занимает гораздо больше времени. Время нужно, чтобы закончился срок действия кэшей и распространился новый адрес. Это гораздо дольше, чем просто обновление IP-адреса без изменения вашего сервера имен.
Когда я обновляю серверы имен для examplecat.com, сервер имен .com получает новую запись NS с новым доменом. Подобно этому: dig ns @j.gtld-servers.net examplecat.com examplecat.com. 172800 IN NS ns-cloud-b1.googledomains.com
Но как туда попадает эта новая запись NS? Фактически, я говорю своему регистратору доменов, какими хочу видеть новые серверы имен, обновляя их на веб-сайте, а затем мой регистратор доменов говорит серверам имен .com сделать обновление.

Для .com эти обновления происходят довольно быстро (в течение нескольких минут), но я думаю, что для некоторых других зон TLD серверы имен могут применять обновления не так быстро.

Еще одна причина, по которой TTL может не соблюдаться на практике: многие программы должны резолвить DNS-имена, а некоторые программы также будут кэшировать DNS-записи в памяти на неопределенный срок (до тех пор, пока программу не перезапустят). Например, есть статья о настройке JVM TTL для поиска DNS-имен. Я сама писала не так много кода JVM для поиска DNS, но небольшой поиск в интернете о JVM и DNS создает впечатление, что вы можете настроить JVM так, чтобы он кэшировал каждый поиск DNS в течение бесконечного времени (например, см. этот тикет ElasticSearch).
Надеюсь, что это поможет вам понять, что происходит при обновлении вашего DNS. Оговорюсь, что всю историю распространения DNS определяют не только TTL. Некоторые рекурсивные DNS-серверы наверняка не уважают TTL, даже такие основные серверы как 8.8.8.8. Так что даже если вы просто обновляете запись A, указав маленький TTL, возможно, что на практике всё равно будут приходить запросы на старый IP в течение дня или двух. После публикации этой статьи я изменила серверы имен для examplecat.com обратно к старым значениям. Что еще почитать:

Источник: https://habr.com/ru/company/mailru/blog/513844/

Что такое DNS, время обновления и как его ускорить?

Обновление днс

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

Что такое и сколько обновляется DNS, как ускорить?
Что такое и сколько обновляется DNS, как ускорить? Эта технология используется абсолютно на у всех хостинг провайдеров, она нужна для правильного направления пользователей на сервера, а в дальнейшем и на конкретные сайты.

Мы постараемся объяснить это на простом языке, чтобы даже новичок смог разобраться.

Что такое DNS, зачем это нужно?

При использовании услуг хостинга постоянно приходится наблюдать разные сообщения и фразы – обновление DNS серверов, обновление DNS записей домена, обновление кэш DNS и так далее. Всё это связано с одной и той же технологией.

Если объяснять на языке, понятном для новичков, то DNS – это база, в которой хранятся все IP адреса сайтов и домены. Технология конвертирует IP в домен и наоборот. Сделано это для того, чтобы пользователю не приходилось вводить IP адрес при необходимости зайти на какой-нибудь сайт. Доменное имя проще запомнить и ввести в адресной строке.

Помимо получения IP адреса при вводе домена, есть и другие этапы загрузки сайта.

Полное название службы доменных имен Domain Name System. Прописывается адрес в настройках подключения к интернету, в большинстве случаев, он выдается автоматически. Если бы не эта технология, в доменах не было бы необходимости, все люди вводили бы IP адреса и переходили на необходимые ресурсы.

Время обновления DNS

При регистрации новых доменов или переносе сайта к другим хостинг провайдерам, обязательно происходит изменение DNS записей. Чтобы другие пользователи могли зайти на ресурс, необходимо прописать домену DNS сервера. Иногда это приходится делать вручную, почти у всех хостеров прописываются автоматически.

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

Cloudflare — полезный инструмент для вебмастера, при его использовании, посетители сайтов ничего не заметят, даже если DNS недоступны.

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

Если опираться на статистику и личный опыт, то обновление DNS происходит в диапазоне от 1 до 7 дней. При переносе сайта нет времени ждать, нужно постоянно вносить изменения. Писать в хостинг смысла нет, проще сделать специальные настройки на своем компьютере, чтобы можно было зайти сразу на новый сайт.

Как ускорить обновление DNS?

Очевидно, срок обновления DNS не получится уменьшить, всё в руках провайдера. Если ждать нельзя, нужно зайти на сайт, который размещен на новом хостинге, сделайте прямой доступ на своём ПК. Для этого нужно знать лишь IP адрес сервера на хостинге и адрес сайта.

Дальше выполняются следующие манипуляции:

  1. Сначала необходимо выяснить сетевой адрес сервера, на котором размещается сайт. Проще всего, сделать запрос в тех. поддержку хостинга. В зависимости от используемой компании, эти данные могут представляться на сайте или в личном кабинете. Я пользуюсь услугами Webhost1, там можно узнать адрес сервера:
  2. Второй шаг – это добавление записи в файле Hosts. Он находится на каждом компьютере по адресу C:\windows\system32\drivers\etc. Перед тем как зайти на какой-нибудь сайт, браузеры проверяют этот файл. Наша задача, указать новый IP для нашего домена, вводится это в простой форме:

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

Рекомендую всем своим читателям надежный и быстрый хостинг Евробайт.

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

Вам также будет интересно:
— Анализ сайта конкурента
— Как заставить посетителя дочитать статью до конца?
— Как раскрутить в поисковых системах сайт без текстового контента?

Источник: https://workion.ru/chto-takoe-i-skolko-obnovlyaetsya-dns-kak-uskorit.html

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.