Что такое DNS

Служба Доменных Имен, или DNS предназначена для того, чтобы компьютеры, работающие во всемирной сети, буквенному имени – домену – могли определить IP-адрес сервера и обратиться к нему за контентом.
В свою очередь, домен — это имя вашего сайта в сети интернет. Доменные имена бывают первого, второго, третьего и еще много-много уровней. Например, .UA – это домен первого уровня, а hostpro.ua – уже второго, а вот wiki.hostpro.ua – домен третьего уровня.

Как появилась система DNS

Во времена зарождения всех современных технологий (70-80-е годы XX века) компьютерные сети были совсем небольшими, а адреса всех компьютеров в сети можно было легко занести в список. Вскоре пришли к выводу, что запоминать цифры не удобно, намного удобнее использовать некоторые осмысленные названия. Потому решили назвать все компьютеры по именам и записать в соответствия сетевых адресов и понятных человеку имён в специальном файле.

Итак, пользователь вводил имя нужного компьютера, а компьютер смотрел в файле, какой сетевой адрес ему соответствует и запрашивал по нему нужную информацию. Для внесения изменений в этот файл был назначен сотрудник, который записывал все изменения и распространял актуальную версию всем желающим. Даже сейчас вы можете найти этот файл с названием «hosts» на компьютере и увидеть, как он устроен.

Со временем сеть росла, файл с именами компьютеров рос стремительными темпами, найти что-либо в нем стало сложно, обновления записывались не сразу… Таким образом появилась система доменных имен – Domain Name System (DNS)

Выбранный принцип работы сохранился – сетевой адрес ресурса отдавался в ответ на запрос по его имени. Но  имя компьютера, или доменное имя, стало разделено на части при помощи точек (к примеру, hostpro.ua) и информация о каждой из частей хранилась на своем сервере имён. Теперь информация о новом домене автоматически становилась доступной для всех через определенное время. Помимо записей о цифровом (IP) адресе домена появились другие записи: о доступных ресурсах, о зеркалах, о почтовых серверах, прочая служебная информация.

Подведем итог, DNS нужна:

  1. Чтобы при вводе имени сайта, например, hostpro.ua, ваш компьютер или смартфон мог понять, по какому адресу в сети его искать;
  2. Чтобы ваше устройство могло определить что www.hostpro.ua — это тот же сайт, что и hostpro.ua;
  3. Чтобы при отправке письма с ukr.net на gmail.com, сервер ukr.net мог определить, на какой сервер ему пересылать это письмо;
  4. Чтобы gmail.com мог убедиться, что адрес, с которого отправлено письмо, действительно принадлежит ukr.net;
  5. Чтобы при возникновении проблем в работе какой-то части DNS был известен контактный адрес ответственного лица или компании.

Что такое DNS-зона, из чего она состоит

DNS-зона – это информация о сетевых адресах, на которых размещается домен. На сервере она может храниться текстовым файлом или строками в базе данных сервера имён.

Выглядит примерно так:

DNS_rec
Ресурсная запись, или запись DNS состоит из различных полей: Имя, Тип, Класс, TTL, значение. Имя — это домен, к которому запись относится. Тип отвечает за назначение записи, к примеру, A, AAAA, MX, NS, SOA, TXT и т.д. Классы раньше разделяли записи для сети Интернет и для других сетей, сейчас используется только IN для Интернет. TTL – интервал времени, на которое промежуточный DNS-сервер может у себя закэшировать информацию. Значение — это, собственно, полезная информация, формат которой зависит от типа записи.

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

Наиболее часто используются эти записи:

  • А-запись — определяет IP-адрес доменного имени в сети IPv4;
  • NS-записи — указывают, где хранится вся DNS-зона домена, таких записей для отказоустойчивости должно быть больше одной;
  • MX-записи — указывают на адреса почтовых серверов домена, их может быть несколько и они имеют приоритет; чем меньше значение приоритета, тем он выше.

Как производится запрос к DNS-серверу

Поскольку DNS работает по иерархическому принципу, она напоминает дерево. У дерева есть вершина – корневая зона, – за которой зарезервировано нулевое имя, за нее отвечают корневые сервера. Эта зона незаметно присутствует во всех доменных именах – это точка, которая обычно опускается при написании, к примеру, “facebook.com.” Корневые сервера, их всего 13, содержат информацию о доменах первого уровня (ua, net, info и т. д).

Итак, вы набираете в браузере адрес сайта facebook.com – что происходит с точки зрения DNS?

1) Браузер проверяет свой кэш – может, вы недавно заходили на Фейсбук и эта информация сохранилась. Если нет — следующий шаг.

2) Браузер обращается за помощью к операционной системе на вашем компьютере. Она проверяет в DNS-кэше и в файле hosts. Если ничего не найдено, то запрос передается серверу, который прописан как DNS-сервер в настройках компьютера.

3) DNS-сервер вашего провайдера сначала проверяет свой кэш (может, кто-то из ваших соседей недавно заходил на Фейсбук?). И проверяет свою локальную базу (может, он и хранит у себя зону facebook.com). Если ничего не находится, этот сервер делает несколько запросов и составляет для вас ответ.

4) Сначала запрос отправляется наиболее близкому корневому серверу. Адреса корневых серверов обычно записаны в настройках у всех DNS-серверов, поскольку изменяются они очень редко. Корневой сервер отвечает, что он не знает адреса «facebook.com», и возвращает список серверов, на которых расположены записи всех доменов .com.

5) Таким образом, сервер провайдера записывает полученную информацию в кэш, и при поиске всех доменов, заканчивающимися на .com будет обращаться уже к этому небольшому числу серверов. Потом у первого сервера из списка он спрашивает: какой адрес у facebook.com? Полученный адрес передается на ваш компьютер и браузер показывает вам ленту Фейсбук.

Вот сколько шагов выполняет ваш компьютер для такого простого действия, как открытие какого-либо сайта в браузере.