В прошлый раз мы познакомили вас с краткой историей и причинами возникновения службы DNS (система имён доменов). На этот раз, как и обещали, хотим рассказать о том, как работает эта служба.
Сначала включим фантазию.
Для примера, представим ситуацию: вы только что въехали в свой новый дом. Он уже полностью готов к проживанию в нём. Всё уже есть: ремонт, техника, мебель и, конечно же, заветный кабель, протянутый заботливыми руками техника буквально пару часов назад в ваш дом от ближайшего интернет-провайдера. Все формальности уже соблюдены, договор подписан, на балансе лежат средства. Вы можете пользоваться подключением к интернету. В вашем кабинете стоит компьютер. Он тоже новый. Настроен также пару часов назад. Кроме стандартного программного обеспечения на нём ничего нет. Вы им ещё ни разу не пользовались.
Вы хотите отметить все эти замечательные события и садитесь за компьютер, чтобы заказать себе любимое блюдо в любимой доставке. Для этого вы вставляете провод в сетевую карту компьютера и включаете его. Открываете браузер и набираете в его адресной строке yandex.ru, потому что, конечно же, напрочь забыли адрес сайта своей любимой доставки еды, и хотите уточнить эту информацию у Яндекса. После набора адреса вы нажимаете "Enter" на своей клавиатуре.
В этот момент, представьте, что время очень сильно замедлилось. Потому как последующие события будут происходить примерно со скоростью света.
Со скоростью света.
Схему происходящих обменов информации можно примерно отобразить так:
1. Сначала ваш компьютер направляет запрос к вашему интернет-провайдеру и говорит ему:
- Эй, привет! У меня тут пользователь, который хочет попасть на сайт yandex.ru. Дай-ка мне содержимое этого сайта.
DNS-cервер провайдера говорит вашему компьютеру:
- Один момент!
2. Затем смотрит в свою базу данных (это и есть кэш), и, например, не находит там никаких записей. После чего направляет спрашивает у корневых DNS-серверов зоны .RU:
- Коллеги, мне бы узнать, где лежит контент сайта с именем yandex.ru.
3. Корневой DNS-сервер зоны .RU смотрит в свою базу и говорит:
- Эта информация есть на серверах ns1.yandex.ru, который расположен на сервере 213.180.193.1, и ns2.yandex.ru, который расположен на сервере 93.158.134.1.
4. Получив такую информацию, DNS-кэш сервер интернет-провайдера обращается к этим серверам:
- Парни, где брать контент сайта с именем yandex.ru?
Вопрос он задаёт сразу двум серверам. А отвечает на него тот, кто меньше занят:
- IP-адрес этого сайта такой: 77.88.55.88.
5. Полученный IP интернет-провайдер кладёт в базу данных на некоторое время, а затем обращается по этом IP к хостинг-серверу сайта, чтобы получить содержимое запрошенного сайта.
6. Далее интернет-провайдер передаёт полученное содержимое сайта на ваш компьютер. А ваш компьютер отрисовывает сайт в вашем браузере.
Подытожим.
В схеме выше, как видите, несколько узлов, которые общаются друг с другом, пока вы ждёте. В идеальных условиях, всё общение между ними происходит за доли секунды. И после введения адреса в браузер, вы получаете сайт в течение пары секунд, большую часть которых занимает передача данных сайта по каналу связи между хостинг-провайдером и вашим компьютером.
DNS-кэш в этой схеме нужен для разгрузки каналов связи интернета. Но если смотреть глубже, то станет очевидно, что его наличие имеет и негативные последствия: при регистрации нового домена, или при переносе сайта с одного сервера на другой, посетитель сайта может некоторое время не видеть сайт, т.к. DNS-кэш его интернет-провайдера хранит данные о старом IP-адресе доменного имени сайта.
При этом скорость обновления DNS-кэша у интернет-провайдеров разная: от пары десятков минут до четырёх суток - это максимальный срок, прописанный в RFC. В среднем, они обновляют кэш DNS в течение 12 часов. В крупных городах, обновление происходит чаще: 2-4 часа.
Постскриптум.
В следующий раз рассмотрим содержимое среднестатистической записи, хранимой в DNS-серверах хостинг-провайдеров.
Благодарим за внимание. Всего вам доброго :)