Основы работы в сети: часть 3 — DNS-серверы

Опубликовано: 24 Марта, 2023

В последней части этой серии статей я говорил о том, что все компьютеры в сегменте сети имеют общий диапазон IP-адресов. Я также объяснил, что когда компьютеру необходимо получить доступ к информации с компьютера в другой сети или сегменте сети, задачей маршрутизатора является перемещение необходимых пакетов данных из локальной сети в другую сеть (например, в Интернет).

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

Я уже объяснял, что IP-адреса аналогичны уличным адресам. Сетевая часть адреса определяет, в каком сегменте сети находится компьютер, а компьютерная часть адреса обозначает конкретный компьютер в этой сети. Знание IP-адреса является обязательным требованием для связи между двумя компьютерами на основе TCP/IP.

Когда вы открываете веб-браузер и вводите имя веб-сайта (которое известно как доменное имя сайта, URL-адрес или универсальный указатель ресурсов), веб-браузер переходит прямо на веб-сайт без необходимости вводить IP-адрес.. Имея это в виду, рассмотрим мое сравнение IP-адресов с почтовыми адресами. Вы не можете просто написать чье-то имя на конверте, бросить конверт по почте и ожидать, что его доставят. Почта не может доставить письмо, если у него нет адреса. Та же основная концепция применима и к посещению веб-сайтов. Ваш компьютер не может взаимодействовать с веб-сайтом, если ему не известен IP-адрес сайта.

Итак, если вашему компьютеру необходимо знать IP-адрес веб-сайта, прежде чем он сможет получить к нему доступ, а вы не вводите IP-адрес, откуда берется этот IP-адрес? Преобразование доменных имен в IP-адреса — это работа DNS-сервера.

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

Изображение 20607
Рисунок A. Предпочтительный DNS-сервер определяется как часть конфигурации TCP/IP компьютера.

Как видно из рисунка, предпочтительный DNS-сервер определяется как часть конфигурации TCP/IP компьютера. Это означает, что компьютер всегда будет знать IP-адрес DNS-сервера. Это важно, поскольку компьютер не может взаимодействовать с другим компьютером по протоколу TCP/IP, если не известен IP-адрес.

Имея это в виду, давайте посмотрим, что происходит, когда вы пытаетесь посетить веб-сайт. Процесс начинается, когда вы открываете веб-браузер и вводите URL-адрес. Когда вы это сделаете, веб-браузер знает, что он не может найти веб-сайт, основываясь только на URL-адресе. Поэтому он извлекает IP-адрес DNS-сервера из конфигурации TCP/IP компьютера и передает URL-адрес DNS-серверу. Затем DNS-сервер ищет URL-адрес в таблице, в которой также указан IP-адрес сайта. Затем DNS-сервер возвращает IP-адрес веб-браузеру, после чего браузер может взаимодействовать с запрошенным веб-сайтом.

На самом деле, это объяснение несколько упрощено. Разрешение DNS-имен может работать так, как я только что описал, только если DNS-сервер содержит запись, соответствующую запрашиваемому сайту. Если вы зайдете на случайный веб-сайт, велика вероятность, что ваш DNS-сервер не содержит записи для этого сайта. Причина этого в том, что Интернет такой большой. Существуют миллионы веб-сайтов, и каждый день создаются новые сайты. Невозможно, чтобы один DNS-сервер мог справиться со всеми этими сайтами и запросами на обслуживание от всех, кто подключен к Интернету.

Давайте представим на мгновение, что один DNS-сервер может хранить записи для каждого существующего веб-сайта. Даже если бы мощность сервера не была проблемой, сервер был бы перегружен огромным объемом запросов на разрешение имен, которые он получал бы от людей, использующих Интернет. Централизованный DNS-сервер также может быть очень популярной целью для атак.

Вместо этого DNS-серверы распределены так, что одному DNS-серверу не нужно обеспечивать разрешение имен для всего Интернета. Существует организация под названием Интернет-корпорация по присвоению имен и номеров, или сокращенно ICANN, которая отвечает за все зарегистрированные доменные имена в Интернете. Поскольку управление всеми этими доменными именами представляет собой огромную работу, ICANN делегирует часть ответственности за доменные имена различным другим фирмам. Например, Network Solutions отвечает за все доменные имена.com. Несмотря на это, Network Solutions не ведет список IP-адресов, связанных со всеми доменами.com. В большинстве случаев DNS-серверы Network Solution содержат записи, указывающие на DNS-сервер, который считается полномочным для каждого домена.

Чтобы увидеть, как все это работает, представьте, что вы хотите посетить веб-сайт www.brienposey.com. Когда вы вводите запрос в свой веб-браузер, ваш веб-браузер перенаправляет URL-адрес на DNS-сервер, указанный в конфигурации TCP/IP вашего компьютера. Скорее всего, ваш DNS-сервер не будет знать IP-адрес этого веб-сайта. Поэтому он отправит запрос на DNS-сервер ICANN. DNS-сервер ICANN не будет знать IP-адрес веб-сайта, который вы пытаетесь посетить. Однако он будет знать IP-адрес DNS-сервера, который отвечает за доменные имена, оканчивающиеся на.COM. Он вернет этот адрес вашему веб-браузеру, который, в свою очередь, отправит запрос на указанный DNS-сервер.

DNS-сервер верхнего уровня для доменов, оканчивающихся на.COM, также не будет знать IP-адрес запрашиваемого веб-сайта, но ему будет известен IP-адрес DNS-сервера, уполномоченного для домена brienposey.com. Он отправит этот адрес обратно на машину, которая сделала запрос. Затем веб-браузер отправит DNS-запрос на DNS-сервер, уполномоченный для запрошенного домена. Затем этот DNS-сервер вернет IP-адрес веб-сайта, что позволит машине связаться с запрошенным веб-сайтом.

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

Вывод

В этой статье я объяснил, как DNS-серверы используются для преобразования доменных имен в IP-адреса. Хотя процесс, который я описал, кажется довольно простым, важно помнить, что ICANN и регистраторы DNS верхнего уровня, такие как Network Solutions, используют метод балансировки нагрузки для распределения запросов по множеству разных DNS-серверов. Это предотвращает перегрузку любого сервера и исключает возможность возникновения единой точки отказа.