Найти тему
Записки хостера

Что такое DNS?

DNS - Domain Name System (система доменных имён)
DNS - Domain Name System (система доменных имён)

Даже поверхностная работа с хостингом заставляет пользователей, не имеющих специальных знаний, углубляться в некоторые особенности этой сферы IT. Одной из таких особенностей является служба DNS.

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

Итак, сначала небольшой экскурс в историю.

Как и зачем появилась DNS?
Первая большая сеть из компьютеров называлась ARPANET. Она была детищем группы учёных, хотевших иметь доступ к наработкам друг-друга в любой момент времени. Под эгидой министерства обороны США и была создана сеть с именем Advanced Research Projects Agency Network (Сеть агентства перспективных исследовательских проектов).

С самого начала количество компьютеров в этой сети было немного. У каждого такого компьютера было уникальное имя и уникальный адрес. Была составлена схематическая карта сети, которая выглядела так:

Логическая карта ARPANET на состояние марта 1977
Логическая карта ARPANET на состояние марта 1977

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

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

Внутрь файла записывали IP компьютера и его уникальное имя. Центральный узел (виден прямо в центре логической карты) был записан в нём таким образом:
10.0.15.220 SCOTT

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

Кстати, правила заполнения файла и принцип его работы сохранились до сих пор. Вы можете самостоятельно увидеть этот файл и его содержимое на своём компьютере. Для ОС Windows это можно сделать так: зажимаете последовательно сочетание клавиш "win"+"R", в появившемся окне набираете: notepad.exe %SystemRoot%\system32\drivers\etc\hosts и нажимаете OK или клавишу Enter на клавиатуре. Откроется что-то вроде этого:

Вид сорвеменного файла hosts
Вид сорвеменного файла hosts

Вернёмся к нашей истории.
Через некоторое время и с файлом hosts стала назревать проблема: файл рос очень быстро, становился трудночитаем из-за большого количества записей в нём. По этой же причине стало сложно следить за корректностью его заполнения.

К моменту, когда проблема грозила осложнениями, ARPANET перешла на новый протокол связи TCP/IP, который через некоторое время станет своеобразным стандартом. Это подталкивает сообщество к разработке также и нового стандарта работы с адресами компьютеров, расположенных в сети. А для этого стандарта была разработана и новая служба, получившая имя DNS (Domain Name System - система доменных имён).

"Небольшой" экскурс в историю подзатянулся. Продолжим.

Чем занимается DNS?
Если ответить на этот вопрос одной фразой, то DNS занимается "разрешением". Так повелось в IT-сфере (в частности в сетевом её ответвлении) переводить слово "resolving". Хотя если вникнуть в контекст, в данном случае более правильным будет использование слова "сопоставление". Это достаточно трудоёмкий процесс, в исполнении которого участвует большое количество серверов. Это тема для отдельной статьи, которую мы напишем и выложим в ближайшее время. Если, опять же, очень кратко, то DNS "сопоставляет" символьные доменные имена их фактическим IP-адресам.

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

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

DNS изнутри.
Система изнутри представляет собой строго иерархичную структуру. Верхушкой структуры являются 13 корневых DNS-серверов. В их базе содержится информация о DNS-серверах доменов верхнего уровня (ru, com, net, org, biz, info, name и т.д.) - Top Level Doman (TLD). Каждый из этих серверов обслуживает собственную зону ответственности.

На сегодняшний день этих серверов не совсем 13, а около тысячи. Их существование в таком количестве призвано повысить отказоустойчивость системы в целом: сервера дублируют информацию друг с друга (являются зеркалами) и готовы в любой момент подменить сбоящего или находящегося на профилактике коллегу. Сервера разбросаны по всей планете:

Согласно информации с сайта root-servers.org
Согласно информации с сайта root-servers.org

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

Обобщённая схема пространства доменных имён.
Уровень 0.
Корневой DNS-сервер, обозначаемый точкой.

Уровень 1.
DNS-сервер доменов верхнего уровня (TLD), обозначаемый сочетанием буков. Например: RU. DNS-cервера этого TLD содержат ссылки на DNS-сервера конкретного домена второго уровня в зоне домена RU.

Уровень 2.
DNS-сервер, содержащий в своей базе информацию о конкретных IP для домена второго уровня.

Практика.
Можем проверить домен "дляпримера.рф". Сделать это можно через любой сервис WhoIs, предоставляющий по запросу информацию, содержащуюся в базе DNS.

Проверяемый нами домен имеет такие DNS-сервера второго уровня:
ns1.radisol.ru
ns2.radisol.ru

Проверка домена через сервис WhoIs
Проверка домена через сервис WhoIs

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

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

Пример из реальной жизни для более простого понимания схемы.
1. В некоторой организации у генерального директора есть заместители. В их прямом подчинении находятся руководители отделов, с которыми они общаются лично.
2. Каждый руководитель работает в своём отделе, который занимается каким-то конкретным направлением в организации. В руководителя есть свои заместители, которым он делегирует некоторые поручения, полученные сверху.
3. Заместители руководителя отдела, в свою очередь, общаются непосредственно со специалистами организации, которые и занимаются прямым выполнением поручений.

А также, в организации есть генеральный директор. В схеме DNS его роль выполняет пользователь:
1. Через своего секретаря (интернет-провайдер) он передаёт своему заместителю сформированное согласно определённому регламенту поручение.
2. Заместитель читает поручение, понимает, для какого именно отдела из его подчинения оно сформировано, и передаёт это поручение руководителю этого отдела.
3. Руководитель отдела направляет запрос своему заму, курирующему направление, поручение по которому пришло сверху.
4. Заместитель руководителя отдела, получив поручение, направляет его всем своим специалистам. И выполняет это поручение тот специалист, который быстрее всех откликнулся на запрос своего руководителя. Таким образом, если какой-то из специалистов занят другой работой, его подстраховывает менее загруженный коллега.
5. Результат исполнения поручения исполнитель передаёт напрямую секретарю (для ускорения процесса) согласно всем принятым в организации протоколам.

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