67 подписчиков

DNS-сервер: что это и как работает

Чтобы попасть на какой-нибудь сайт, нам нужно знать его доменное имя. Например, вводим edgecenter.ru — и попадаем на главную страницу.

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

В этом материале мы постараемся понятно объяснить, что такое DNS и DNS-серверы, для чего всё это нужно и как работает.

Чтобы попасть на какой-нибудь сайт, нам нужно знать его доменное имя. Например, вводим edgecenter.ru — и попадаем на главную страницу.

Что такое DNS

DNS (Domain Name System) — это иерархически распределённая база данных. Одна из её функций — связывать названия доменов с IP-адресами серверов, на которых они располагаются.

У любого сайта есть свой IP-адрес. Сейчас используются два типа адресов:

  • IPv4 — четырёхбайтные адреса. Записываются как сочетание 4 чисел от 0 до 255 в формате 000.111.222.123.
  • IPv6 — более современный тип, шестнадцатибайтные адреса. Имеют несколько форматов записи. Самый распространённый представляет собой 8 групп по 4 символа (8 четырёхзначных шестнадцатеричных чисел), разделённых двоеточием. Выглядит такой адрес вот так: 1234:abcd:1b4d:000a:987c:5555:a2d8:bcd6.

Эти адреса можно сравнить с телефонными номерами, а доменные имена — с именами людей, которым эти номера телефонов принадлежат. Domain Name System же — это что-то вроде системы поиска контактов в нашем телефоне.

Когда мы хотим попасть на веб-ресурс, например на edgecenter.ru, мы указываем название домена, а система переводит его в IP-адрес и по нему определяет, куда необходимо послать запрос. Запрос уходит по назначению, и в нашем браузере загружается нужная страница.

Что такое DNS-сервер

Если DNS мы сравниваем с системой поиска контактов в смартфоне, то DNS-серверы — это телефонные справочники со списками контактов. На них содержатся сведения о доменах и о том, какой IP-адрес принадлежит каждому.

Зачем нужен DNS-сервер

Есть две основные функции:

  • Хранение информации — какой IP-адрес относится к домену.
  • Кеширование записей других серверов.

С первой функцией всё просто и понятно. У DNS-сервера есть список имён и относящихся к ним адресов. Когда он получает запрос, он отдаёт нужную информацию.

С кешированием всё немного сложнее. На большинстве серверов не хранится вся информация обо всех именах и IP, существующих в интернете.

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

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

Это и называется кешированием.

Правда, хранится кеш недолго. Сколько времени данные будут лежать на сервере, зависит главным образом от параметра TTL запрашиваемой ресурсной записи (о том, что такое ресурсные записи, мы расскажем ниже).

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

Виды DNS-серверов

1. Кеширующие (локальные) — как правило, принадлежат интернет-провайдеру. Работают с запросами клиентов. Обычно на них содержатся те названия доменов и IP-адреса, которые часто запрашивают ближайшие клиенты.

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

2. Авторитетные — серверы, на которых непосредственно хранится информация. Они могут содержать IP-адреса конкретных доменов. Могут отвечать за доменную зону, например .ru или .com, — знать адреса всех DNS-серверов каждого домена из этой зоны.

К авторитетным серверам, в частности, относятся корневые. Это вершина иерархии, точка входа в пространство имён привычного нам интернета.

Как это работает

1. Всё начинается на ПК пользователя. Когда он указывает имя домена в строке браузера, тот сначала проверяет информацию в своём кеше и кеше ОС. Если юзер недавно заходил на этот сайт, данные наверняка сохранились. Браузер получает нужный IP-адрес из кеша, отправляет запрос, и страница открывается очень быстро.

Чтобы попасть на какой-нибудь сайт, нам нужно знать его доменное имя. Например, вводим edgecenter.ru — и попадаем на главную страницу.-2

2. Если данных в кеше нет, браузер отправляет запрос к локальному серверу интернет-провайдера. Тот ищет запись у себя и, если она обнаруживается, отдаёт требуемый IP-адрес.

Чтобы попасть на какой-нибудь сайт, нам нужно знать его доменное имя. Например, вводим edgecenter.ru — и попадаем на главную страницу.-3

3. Если у провайдера нет нужных данных, запрос идёт дальше, на корневой сервер DNS. Он выдаст или нужный IP-адрес (если тот у него есть), или адрес DNS-сервера зоны. В нашем случае с edgecenter.ru это будет сервер зоны .ru. Локальный сервер может сохранить этот адрес у себя в кеше, чтобы в следующий раз не обращаться к корневому серверу.

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

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

6. Адрес передаётся браузеру, и тот сможет связаться с хостингом веб-ресурса.

Что такое DNS-зоны

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

У одного домена бывает и несколько IP-адресов. А ещё у него могут быть поддомены, у которых тоже часто бывают свои IP-адреса.

Информация о доменах, поддоменах и их IP прописывается в ресурсных записях. Их существует довольно много. Для понимания общей картины мы назовём самые основные:

  • A и AAAA — адрес веб-приложения, имеющий конкретное доменное имя.
  • MX — имя почтового сервера.
  • CNAME — привязывает аналог ресурса к доменному имени; обычно с помощью этой записи привязывают поддомен: например, www.example.com к example.com.
  • NS — имя DNS-сервера, ответственного за другие ресурсные записи.
  • SOA — начальная запись зоны, которая указывает местоположение эталонной записи о домене; содержит в себе контактную информацию лица, ответственного за данную зону, время кеширования информации на серверах и данные о взаимодействии DNS.Совокупность ресурсных записей домена называется DNS-зоной.

DNS-хостинг

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

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

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

Но можно выбрать и отдельный DNS-хостинг. И это решение во многих ситуациях будет более выигрышным. И вот почему.

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

Помимо размещения информации, хостинг позволяет управлять настройками, балансировать трафик и направлять определённые запросы туда, куда вам нужно, основываясь, например, на геолокации.

При выборе такого хостинга нужно учитывать:

  • расположение DNS-серверов — как близко они находятся к вашим клиентам;
  • количество — чем больше, тем лучше в плане надёжности и безопасности: если один откажет, другие будут работать;
  • распределение по разным городам и странам — это важно, если у вас международный проект с пользователями по всему миру;
  • возможность балансировки трафика и другие полезные функции.

Подробнее о DNS-хостинге EdgeЦентр