DNS — это специализированная технология, помогающая браузерам находить нужный вам веб-сайт по его доменному имени. А фактически это просто отдельный компьютер со специальными данными о веб-сайтах, которые выдаются по запросу.
Все мы знаем, что у каждого отдельного компьютера есть свой собственный IP-адрес. Именно по этому адресу компьютеры могут определять друг друга. Чтобы установить связь с каким-либо сайтом, необходимо знать IP-адрес устройства, на котором расположен этот сайт. Ведь все сайты расположены на каких-то компьютерах. Хостинг — это тоже большие компьютеры. Кстати, таким же образом работает и связь через мобильный телефон: чтобы дозвониться до определенного человека, необходимо знать его номер телефона.
IP-адрес — это набор из 4-х уникальных цифр от 0 и до 255. Вот и получается, что у каждого сайта есть свой IP-адрес, по которому он расположен. Но людям было бы очень сложно запоминать IP-адреса сайтов, поэтому они придумали буквенное обозначение сайтам — доменное имя. Фактически получается, что доменное имя привязывается к сайту, как и IP-адрес. То есть любой сайт можно найти либо по его домену, либо по его IP-адресу. Связь между IP-адресом и доменом сайта хранят ДНС-сервера.
То есть это функционирует, как и телефонная книга в вашем смартфоне. Чтобы позвонить какому-то человеку, вы ищите его имя в контактной книге, а к его имени привязан номер телефона, который вам запоминать необязательно. Если провести аналогию с телефонной связью, то получается:
любой контакт в телефонной книге — это сайт в интернете;
имя контакта — это домен сайта;
номер телефона контакта — это IP-адрес сайта;
телефонная книга — это DNS-сервер.
DNS — это «телефонная книга» интернета
Когда пользователь интернета вбивает в строку домен сайта, на который он хочет перейти, DNS-сервер конвертирует этот домен в IP-адрес компьютера, где расположен данный сайт. Потом компьютер пользователя отправляет запросы по выданному IP-адресу и в ответ получает всю необходимую информацию об искомой веб-странице.
DNS расшифровывается как Domain Name System и переводится как «Система доменных имен». До появления DNS-протоколов система протоколирования сайтов была очень примитивной. У каждого сайта существовал специальный текстовый документ hosts.text, куда вручную вписывался домен веб-ресурса и его IP-адрес. В этом случае, когда пользователь вбивал доменное имя в браузер, браузеру приходилось для начала отыскивать соответствующий файл hosts.txt, потом он брал оттуда IP-адрес и искал требуемый ресурс. Все подобные текстовые файлы располагались на одном центральном компьютерном устройстве, которое контролировалось Стэнфордским Исследовательским Институтом. Чтобы добавить собственный веб-сайт в этот головной компьютер, приходилось для начала звонить в институт и просить, чтобы сайт приняли. Но это было на заре интернета. Когда сайтов стало появляться все больше и больше, такой путь начал отнимать очень много времени у пользователей, а чуть позже вообще перестал справляться с потоком желающих. Вот в этот момент и была придумана технология DNS.
Как работает DNS-сервер
Принцип работы DNS-сервера вам уже должен быть ясен. ДНС — это большая книга контактов в интернете. Однако в процессе открытия любого сайта принимают участие несколько DNS-серверов разного уровня:
Локальный DNS-сервер. Это может быть сервер вашего интернет-провайдера или какой-либо публичный DNS, который вы обозначили в настройках, например, от Google. Браузер для поиска нужного сайта использует именно этот DNS-сервер. Для «общения» с такими серверами в браузерах используются специальные программки — DNS-клиенты.
DNS-сервер более высокого уровня. Это корневые ДНС, которые сохраняют информацию о разных доменных зонах. Именно они по запросу направляют на другие DNS-серверы разных доменных зон, например: RU, COM, KZ, MD, FM, TV и др.
DNS-серверы доменных зон. Именно они сохраняют всю информацию касаемо доменных имен и записей в доменных именах. Такие DNS-серверы предлагают хостинг-компании или регистраторы доменных имен.
Подробный путь, как браузер находит сайт по DNS
Когда пользователь открывает какой-либо сайт, вводя доменное имя в браузерной строке, это кажется достаточно быстрым действием. Но на самом деле это достаточно длинный путь — от момента ввода домена и до показа веб-страницы. Вот как он выглядит:
Пользователь вводит доменное имя в браузере. Первым делом браузер ищет документ hosts.txt на устройстве. Скорее всего, он его не находит, поэтому он отправляет запрос локальному DNS-серверу, который описан в настройках вашего интернет-соединения.
Локальный DNS не располагает адресом сайта, который нужен пользователю, поэтому он перенаправляет запрос в корневой DNS.
Корневой DNS также не располагает адресом нужного сайта, но он различает доменные зоны, поэтому он перенаправляет IP-адрес DNS-сервера доменной зоны, где расположен сайт, локальному серверу, указывая где расположен искомый сайт.
Локальный ДНС, получив адрес сервера доменной зоны, отправляет ему запрос по поводу искомого сайта.
DNS-сервер доменной зоны не располагает IP-адресом искомого веб-ресурса, но знает, на каких серверах он расположен, поэтому он отправляет адрес этих серверов локальному серверу.
Локальный ДНС-сервер отправляет запрос по искомому сайту на найденный сервер этого сайта, и в ответ ему предоставляют IP-адрес искомого веб-ресурса. Он этот адрес перенаправляет браузеру.
Браузер получает IP-адрес сайта и отправляет прямой запрос ДНС-серверу, где расположен сайт, и получает в ответ искомую веб-страницу.
DNS-запись — что это
Как браузер находит сайт, используя DNS, — мы очень подробно описали, но к любому доменному имени могут соотноситься несколько сетевых адресов, например, сайты или электронная почта.
Соотношения между доменом и IP-адресом сайта сохраняются на DNS-сервере. Чтобы внести собственную информацию в ДНС-систему, необходимо прописывать собственные DNS-записи, которые бывают разных видов и предназначены для различных манипуляций:
А-запись — это IP-адрес веб-сайта, который соответствует домену сайта;
АААА-запись — это IP-адрес веб-сайта, но записанный в IPv6;
CNAME — запись, которая применяется для прикрепления поддомена или для создания псевдонима;
NS — адрес ДНС-сервера, в котором хранятся дополнительные записи ресурса;
TXT — любая информация в текстовом формате, очень часто такой вид записи применяют для подтверждения прав на ресурс;
МХ — запись для подвязки почтового сервера к домену;
SPF — здесь указываются серверы, которым разрешено отсылать письма от имени данного домена;
и др.
Обычно информация, записанная в ДНС-записях, обновляется в течение 24 часов.
Заключение
DNS — это то, без чего не работает ни один веб-сайт. Кстати, старый подход с применением файла hosts.txt также работает, поэтому многие веб-разработчики используют его, когда создают сайт без зарегистрированного домена, чтобы проверить работоспособность ресурса прямо со своего компьютера. Браузер до сих пор первым делом ищет файл hosts.txt, а только потом отправляет запросы к DNS-серверам.
Web