Когда вы сидите за компьютером, интернет кажется простым. Вы открываете браузер, вводите доменное имя и видите веб-сайт на своем экране.
Однако под графическим пользовательским интерфейсом (GUI) скрывается обширная сеть программного обеспечения и серверов, известная как система доменных имен (DNS). Однако что такое DNS и как он помогает нам просматривать веб-страницы на наших устройствах?
Ответ на этот вопрос сложен из-за огромного количества задействованных движущихся частей. Вы обнаружите, что почти каждое звено в цепочке использует сервер. Более того, существуют методы, которые помогут вам устранить узкие места, которые могут снизить скорость загрузки страниц.
Можно сказать, что DNS — это способ преобразования удобочитаемого доменного имени в результирующий адрес интернет-протокола (IP), который оно представляет. Хотя на первый взгляд это кажется простой задачей, это далеко не так.
Каждый веб-сайт находится на сервере, и каждый сервер (и компьютер, по сути) имеет IP-адрес. DNS — это система, которая сопоставляет IP-адреса с доменными именами, поэтому мы можем наслаждаться удобным просмотром. В качестве аналогии подумайте о том, что название улицы и адрес дома на самом деле представляют собой набор координат на карте. Мы используем адреса улиц, чтобы упростить долготу и широту местоположения.
Когда вы конвертируете IP-адрес в доменное имя (и наоборот), это «разрешение DNS». В этой цепочке есть несколько аппаратных компонентов, в частности четыре разных типа серверов. Давайте обсудим это далее.
Каждый DNS-запрос и разрешение проходят через четыре сервера. Вот они, вкратце:
Это «водоносец» для всей DNS. Когда вы запрашиваете веб-сайт из своего браузера, вы говорите рекурсору пойти и найти (или «поискать») сайт в DNS.
Если вы рассматриваете веб-сервер, содержащий множество сайтов, корневой сервер имен представляет собой целое. Это общее расположение IP-адреса.
Веб-сайт будет жить на корневом сервере имен, но сервер имен TLD выкопает последнюю часть IP-адреса: конечную часть имени хоста. Это может быть .com, .net или множество других.
Чтобы сделать этот сложный сервер простым, это справочная библиотека для IP-адреса. Этот сервер отправит полный IP-адрес рекурсору, который, в свою очередь, отобразит сайт в вашем браузере.
DNS-запрос проходит все эти этапы, даже несколько раз, прежде чем разрешить запрос. Таким образом, в цепочке есть много точек, которые могут привести к сбою запроса, поэтому у нас есть ошибки HTTP.
Тем не менее, стоит покопаться в передней и задней части этой цепочки более подробно. Давайте сделаем это дальше.
Вы поймете, что рекурсор извлекает результат запроса и является началом всего процесса DNS. В свою очередь, вы также будете знать, что авторитетный сервер имен передает результат этого процесса обратно рекурсору. Однако у обоих есть больше различий, которые вам нужно знать:
DNS-рекурсор. Этот сервер отвечает на запрос запроса DNS. Он активен тем, что отслеживает запись DNS по цепочке. Хотя типичным подходом для рекурсора является выполнение нескольких запросов к другим серверам, кэширование может сократить это время. Мы поговорим об этом позже.
Авторитетный сервер имен. Этот сервер содержит все записи DNS. Его задача — отвечать на запрос на основе информации, которую он получает от других серверов в цепочке, включая рекурсор. Именно этот сервер позволяет браузеру отображать веб-сайт. Поскольку он является авторитетным, ему не нужно обращаться к другим источникам для проверки запроса — это источник истины.
Однако, хотя авторитетный сервер имен является конечной точкой для DNS-запроса, так будет не всегда. Вы также найдете дополнительные серверы имен после этого момента в зависимости от запроса.
Если DNS-запрос относится к поддомену (например, shop.example.com), вы обнаружите, что после авторитетного сервера имен будет дополнительный. Это сохраняет запись CNAME для рассматриваемого субдомена.
Теоретически количество дополнительных серверов имен, запрашиваемых запросом, не ограничено. Однако в большинстве случаев будет только один дополнительный сервер имен.
Хотя есть четыре сервера, которые обрабатывают поиск и запрос DNS, в цепочке есть много шагов, которые передают запрос и извлекают результаты. Вот как работает процесс поиска:
Существует множество сложных и трудоемких шагов (относительно того, чего может достичь сервер), и это происходит миллиарды раз в секунду по всему миру. Несмотря на это, в ходе поиска выполняется только три запроса.
В каждом из этих запросов существует связь между DNS-клиентом и сервером. Хотя это общие термины, мы отметим любые особенности в наших объяснениях:
В этом запросе клиент потребует, чтобы рекурсор DNS ответил либо запрошенной записью DNS, либо сообщением об ошибке.
Этот запрос дает рекурсору бесплатную лицензию на «угадывание» того, что он возвращает. Если для запроса нет соответствия, результатом будет обращение к авторитетному серверу более низкого уровня, пока этот «путь» не будет исчерпан.
Вы обнаружите, что этот запрос будет возникать, если запись DNS существует в кеше или у рекурсора есть полномочный доступ к записи. О кэшировании мы поговорим ближе к концу статьи.
Во многих случаях вы обнаружите, что рекурсивные и нерекурсивные запросы являются наиболее распространенными. Вот почему вы увидите сообщения об ошибках и почему процесс поиска может быть сложным.
Когда вы имеете дело с нерекурсивным запросом, запись может находиться в выделенном кеше для записей DNS. Если вы знаете о кэшировании, вы поймете, что оно будет содержать файлы, к которым вы регулярно обращаетесь. Это могут делать локальные приложения, но лучшим примером является кеш вашего сайта.
Плагин W3 Total Cache в панели управления WordPress
Это позволит хранить записи для файлов вашего сайта, чтобы вы могли снизить количество HTTP-запросов. То же самое возможно и для записей DNS. Это сохраняет соответствующие записи ближе к местоположению вашего компьютера, так что вы можете получить IP-адрес быстрее, чем обычно.
Для веб-разработчиков запрос GET — это то, что выдает браузер. При использовании кеша рекурсор отключает другие серверы в цепочке и либо идет прямо к полномочному серверу имен, либо вызывает его без необходимости дальнейших запросов. Это самый типичный нерекурсивный запрос, который вы можете сделать.
Фактически, вы найдете кеши DNS в нескольких технологиях, таких как ваш интернет-провайдер (ISP), ваш маршрутизатор и ваш локальный компьютер.
Браузер Brave показывает количество кешированных файлов в памяти.
Вы обнаружите, что кэш вашего браузера является первым портом захода для рекурсора, ищущего запись DNS, и поэтому браузеры часто кэшируют записи в качестве настройки по умолчанию. Ваша ОС также будет иметь преобразователь DNS, и он также проверяет свой кеш на наличие записи DNS.
Опять же, если ОС не содержит запись в своем кеше, она отправит запрос на рекурсор вашего интернет-провайдера для обработки. Оба этих рекурсора будут работать с записями A и NS вашего домена, чтобы попытаться разрешить запрос до того, как будет выполнен полный процесс поиска.
Внесение изменений в записи DNS: «Распространение»
Говоря об этом, вы можете вносить изменения в свои записи A, NS или CNAME у своего регистратора. Во многих случаях это займет до 72 часов, прежде чем все эти изменения будут зарегистрированы.
Это распространение DNS, и время, необходимое для завершения, зависит от ряда факторов, а именно от значения времени жизни (TTL) для связанной записи:
Записи регистратора, показывающие значения TTL в секундах.
Короче говоря, это определяет, как быстро изменение вступит в силу для конкретной записи DNS. Типичный TTL составляет около четырех часов, и чем выше значение, тем больше времени займет это распространение.
Если вы думаете, что доступ к веб-странице прост, подумайте еще раз. Для конечного пользователя процесс по своей сути прост. Однако внутри все гораздо сложнее и включает в себя множество дополнительных серверов.
DNS, разработка, администрирование, сервер