DNS-сервер: что это и как работает
Чтобы попасть на сайт, надо знать его доменное имя. Например, вводим edgecenter.ru — и попадаем на главную страницу.
Каждый веб-ресурс располагается на сервере, а у него есть IP-адрес. Чтобы зайти на него, браузер должен установить соединение с IP. Его он получает с помощью DNS.
В материале постараемся простыми словами объяснить, что такое DNS и DNS-серверы, для чего всё это нужно, как работает.
Что такое DNS
Domain Name System — иерархически распределённая БД. Одна из её задач — связывать названия веб-приложений с IP, где они располагаются.
У любого веб-сервиса есть IP-адрес. Сейчас используются два типа:
- IPv4 — четырёхбайтные. Записываются как сочетание 4 чисел от 0 до 255 в формате 000.111.222.123.
- Pv6 — более современный тип, шестнадцатибайтный. Имеет несколько форматов. Самый распространённый представляет собой 8 групп по 4 символа (8 четырёхзначных шестнадцатеричных чисел), разделённых двоеточием. Выглядит это вот так: 1234:abcd:1b4d:000a:987c:5555:a2d8:bcd6.
Их можно сравнить с телефонными номерами, а доменные имена — с людьми, которым номера телефонов принадлежат. Domain Name System — что-то вроде системы поиска контактов в телефоне.
Когда мы хотим попасть на веб-ресурс, например на edgecenter.ru, мы указываем название веб-приложения, а система переводит его в IP и определяет, куда необходимо послать запрос. После отправки и возвращения ответа в браузере загружается искомая страница.
Что такое DNS-сервер
Если принцип работы DNS мы сравниваем с системой поиска контактов в смартфоне, то DNS-серверы — телефонные справочники со списками контактов. На них содержатся сведения о веб-сервисах и о том, какой IP-адрес принадлежит каждому.
Зачем нужен DNS-сервер
Есть две основные функции DNS-сервера:
- Хранение информации — какой адрес к чему относится.
- Кеширование записей других серверов.
С первой всё просто и понятно. У DNS-сервера есть файлы со списками имён и относящихся к ним IP. Когда его запрашивают, он отдаёт требуемое.
С кешированием всё немного сложнее. На большинстве серверов не содержится всё обо всех веб-сервисах и IP, существующих в интернете.
Представим, что пользователь из Америки хочет попасть на веб-ресурс, сведенья о котором находится на DNS-сервере в России. Если каждый раз, когда он открывает ссылку, будет запрашиваться Россия, загрузка будет происходить долго. Поэтому браузер отправляет запрос к оператору связи. Их машины обычно располагаются ближе к конечным пользователям.
Сервер оператора связывается с российским, получает адрес ресурса, сохраняет у себя в кеше. И в другой раз, когда юзер из Америки решит зайти на этот веб-сервис, у DNS-сервера оператора уже будет необходимый IP, и загрузка пройдёт быстрее.
Это и называется кешированием.
Правда, хранится кешированный контент недолго. Сколько времени он будет лежать, зависит главным образом от параметра TTL запрашиваемой ресурсной записи (что это такое, расскажем ниже).
Чтобы лучше понять, как всё работает, давайте сначала разберёмся, какие в принципе существуют DNS-серверы.
Виды DNS-серверов
Кеширующие (локальные) — как правило, принадлежат интернет-провайдеру. Работают с запросами клиентов. Обычно на них содержится то, что часто запрашивают ближайшие клиенты.
Кеширование — основная их функция. Они получают запросы от пользователей, выдают информацию из кеша либо запрашивают у авторитетных DNS-серверов.
Авторитетные — на них непосредственно размещается информация. Могут содержать IP конкретных веб-приложений, отвечать за доменную зону, например .ru или .com, — знать адреса всех DNS-серверов каждого домена из неё.
К авторитетным, в частности, относятся корневые. Это самый высокий уровень иерархии, точка входа в пространство имён привычного нам интернета.
Как это работает
1. Всё начинается на персональном компьютере юзера. Когда он указывает название сайта в адресной строке браузера на устройстве, тот сначала проверяет в своём кеше и в ОС. Если юзер недавно заходил на веб-ресурс, сведенья наверняка сохранились, страница открывается быстро.
2. Если там ничего нет, надо идти к локальному серверу интернет-провайдера. Тот ищет у себя и, если обнаруживает, отдаёт требуемое.
3. Если у провайдера нет искомых данных, идём дальше, на корневой сервер. Он выдаст требуемый IP (если тот у него есть) или пошлёт к DNS-серверу зоны. В нашем случае с edgecenter.ru это будет .ru. Кеширующий сервер сохранит полученное в кеше, чтобы в следующий раз не обращаться к корневому.
4. Идём к серверу зоны, который должен сообщить, где хранится необходимый IP-адрес. Эти сведенья сохраняются.
5. Дальше отправляемся на DNS-сервер, у которого точно есть требуемое. Он отправит ответ кеширующему, а тот снова сохранит данные, чтобы в следующий раз не пришлось проделывать столь долгий путь.
6. Адрес передаётся браузеру, и тот сможет связаться с хостингом веб-ресурса.
Что такое DNS-зоны
В нашем примере была ситуация, когда есть один домен и ему соответствует один IP. Но на практике так бывает далеко не всегда. Адресов может быть несколько. А ещё бывают поддомены, у которых часто свои IP.
Все данные, в том числе о поддоменах и их IP, прописываются в ресурсных записях. Их существует довольно много. Для понимания общей картины назовём основные:
- A и AAAA — веб-приложение, имеющий конкретное доменное имя.
- MX — почтовый сервер.
- CNAME — привязывает аналог ресурса к доменному имени; обычно с помощью неё привязывают поддомен: например, www.example.com к example.com.
- NS — DNS-сервер, ответственный за другие DNS-записи.
- SOA — начальная DNS-запись зоны, которая указывает местоположение эталонной; содержит в себе контакты лица, ответственного за зону, время кеширования, данные о взаимодействии DNS.
Совокупность ресурсных записей называется DNS-зоной.
DNS-хостинг
Когда вы создали новый веб-ресурс, необходимо сделать так, чтобы он стал доступен пользователям. Значит, нужно разместить сведенья на DNS-сервере, прописать записи.
Обычно у одного веб-ресурса бывает несколько серверов для безопасности и отказоустойчивости. Если произойдёт сбой, одна машина выйдет из строя, останутся резервные, ресурс будет доступен.
Услугу размещения часто предлагают хостинг-провайдеры. У кого-то она платная, у кого-то бесплатная.
Но можно выбрать и отдельный DNS-хостинг. И это решение во многих ситуациях будет более выигрышным. И вот почему.
Авторитетные DNS-серверы, где хранятся сведенья о веб-сервисе, должны находиться как можно ближе к конечным пользователям, к локальным серверам их интернет-провайдеров. Так файлы от кеширующей машины дойдут быстрее, веб-ресурс откроется быстрее. Поэтому у вас должна быть возможность выбора: где разместить данные территориально.
Помимо размещения сведений, хостинг позволяет управлять серверными настройками, балансировать трафик и направлять определённых посетителей туда, куда нужно, основываясь, например, на геолокации.
При выборе хостинга важно учитывать:
- расположение DNS-серверов — как близко они находятся к клиентам;
- количество — чем больше, тем лучше в плане надёжности и безопасности: если 1 откажет, другие будут функционировать;
- распределение по разным городам и странам — важно, если у вас международный проект с аудиторией по всему миру;
- возможность балансировки трафика и другие полезные функции.
Выводы
- Domain Name System — система, которая помогает находить сайты по именам. Соединяет веб-ресурсы с IP-адресами.
- Информация об этом содержится на DNS-серверах. Они хранят и кешируют сведенья.
- Существуют разные типы DNS-серверов. У одних главная функция — кеширование. Другие непосредственно хранят сведения о доменах.
- Чтобы открыть сайт, надо запросить разные DNS-серверы и получить нужное. Если посетитель заходил на сайт недавно, информация должна сохраниться в кеше интернет-провайдера, и тогда страница откроется быстро.
- Часто 1 домен имеет несколько IP-адресов, а ещё бывают поддомены с разными IP. Эта информация содержится в ресурсных DNS-записях, совокупность которых называют DNS-зоной.
- Чтобы разместить веб-приложение на DNS-серверах и сделать его доступным для юзеров, нужен DNS-хостинг. Хороший хостинг — это большое количество локаций в разных частях мира и широкий функционал для управления и балансировки трафика.
Всем этим критериям соответствует DNS-хостинг EdgeЦентр.