Как определить какой DNS сервер использует система?

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

dns-640x334.png

Что такое DNS

GrayBack_icon_2.png

DNS — это технология, которая помогает браузеру найти правильный сайт по доменному имени.

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

Людям неудобно использовать длинные комбинации цифр, поэтому IP-адреса придумали связывать с понятными текстовыми именами — доменами. Всё-таки запомнить google.com проще, чем 216.58.209.14.

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

1212 доменных зон для любых проектов!.com.com.ua.info.online.in.ua.net.kiev.ua.site.pl.ORG.pro.ru.org.ua.eu

Cat_11.png

Как это работало раньше

В первые годы интернета доменам присваивали IP-адреса вручную. Их записывали в текстовый файл hosts.txt в таком формате:

216.58.209.14 google.com

По сути это и был список контактов, как в смартфоне. Когда пользователь вводил в адресной строке домен, браузер проверял файл и брал из него IP-адрес.

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

Со временем такой подход стал отнимать много времени и технологию решили усовершенствовать. Новую систему придумали в 1984 и назвали её DNS. Аббревиатура означала Domain Name System, по-русски — Система доменных имён.

Как браузер находит IP-адрес домена

Настройки каждого домена в интернете хранятся в текстовых файлах на DNS-серверах. Адреса этих серверов обычно приходится указывать вручную — их присылает хостинг-провайдер. Например, у нас они выглядят так: dns1.hostiq.ua и dns2.hostiq.ua.

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

  1. Вы вводите в адресной строке доменное имя, например, google.com. Сначала браузер проверяет файл hosts.txt на компьютере. Если там не оказывается нужного IP-адреса, он обращается к локальному DNS-серверу вашего интернет-провайдера. Его IP-адрес браузер находит в настройках подключения к интернету.
  2. Локальный DNS-сервер не знает нужного IP-адреса лично, но умеет обмениваться информацией с другими DNS-серверами. Пока браузер ждёт ответа, локальный DNS-сервер обращается к главным серверам в мире — корневым DNS-серверам — и просит IP-адрес для google.com. Корневой DNS-сервер не знает IP-адрес этого домена, но знает IP-адреса DNS-серверов, которые отвечают за все домены в зоне .com.
  3. Локальный DNS-сервер получает IP-адрес одного из этих DNS-серверов и задаёт тот же вопрос ему. Этот DNS-сервер тоже не знает IP-адрес Гугла, но знает IP-адреса DNS-серверов, которые использует google.com.
  4. Локальный DNS-сервер получает IP-адрес одного из этих DNS-серверов и обращается к нему. Этот DNS-сервер знает нужный IP-адрес и отправляет его локальному DNS-серверу.
  5. Локальный DNS-сервер получает нужный IP-адрес и отправляет его браузеру.
  6. Браузер получает IP-адрес google.com, обращается напрямую к серверу и просит отправить сайт.

Статья по теме:

Как правильно выбрать доменное имя для сайта

DNS-кэш

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

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

Попасть в кэш может не только IP-адрес, но и запись о DNS-серверах, которые использует домен. Кэш этих записей хранится дольше — 48 часов. Поэтому старый сайт может открываться дольше, если вместо IP-адреса владелец домена менял DNS-серверы.

DNS-кэш на стороне интернет-провайдера можно очистить дистанционно:

Если пользуетесь Windows, нажмите комбинацию клавиш Win + R и напишите в открывшемся окне cmd. Когда откроется командная строка, выполните в ней команду:

ipconfig/flushdns

В конце должно появиться сообщение «Кэш сопоставителя DNS успешно очищен».

Если пользуетесь MacOS, найдите в поиске «Терминал» или откройте «Finder» — «Программы» — «Утилиты» — «Терминал». В открывшемся окне выполните команду:

dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Кэш удалится после ввода пароля.

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

Попробуйте хостинг с кучей плюшек: автоустановщиком 330 движков, конструктором сайтов и теплой поддержкой 24/7!

Cat_6.png
PR-13551_750x394_blog_main_vk.png

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

Что такое DNS?

Прежде чем начать говорить о DNS-серверах, расскажем о самой технологии DNS (Domain Name System). DNS — это технология, которая позволяет браузеру вроде Firefox, Chrome или Edge найти запрошенный пользователем сайт по его имени.

Как работает DNS?

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

Так и с сайтом. Каждому имени сайта соответствует набор цифр формата 000.000.000.000. Этот набор называется IP-адресом, примером реального IP-адреса является 192.168.0.154 или 203.113.89.134. Когда пользователь вводит в адресной строке браузера имя сайта, например google.com, компьютер запрашивает IP-адрес этого сайта на специальном DNS-сервере и после получения корректного ответа открывает сам сайт.

750x394_blog_main_vk-копия-2@2x-100.jpg

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

Это как раз и есть «книга контактов» интернета. DNS-сервер — это специализированный компьютер (или группа), который хранит IP-адреса сайтов. Последние, в свою очередь, привязаны к именам сайтов и обрабатывает запросы пользователя. В интернете много DNS-серверов, они есть у каждого провайдера и обслуживают их пользователей.

Зачем нужны DNS-серверы и какие они бывают?

Основное предназначение DNS-серверов — хранение информации о доменах и ее предоставление по запросу пользователей, а также кэширование DNS-записей других серверов. Это как раз «книга контактов», о которой мы писали выше.

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

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

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

IP-адрес сайта может измениться — например, при переезде на другой хостинг или сервер в рамках прежнего хостинга. Что происходит в этом случае? В этом случае обращения пользователей к сайту, чей IP-адрес поменялся, некоторое время обрабатываются по-старому, то есть перенаправление идет на прежний «айпишник». И лишь через определенное время (например, сутки) кэш локальных серверов обновляется, после чего обращение к сайту идет уже по новому IP-адресу.

750x394_blog_main_vk-копия@2x-100.jpg

Где находятся главные DNS-серверы?

DNS-серверы верхнего уровня, которые содержат информацию о корневой DNS-зоне, называются корневыми. Этими серверами управляют разные операторы. Изначально корневые серверы находились в Северной Америке, но затем они появились и в других странах. Основных серверов — 13. Но, чтобы повысить устойчивость интернета в случае сбоев, были созданы запасные копии, реплики корневых серверов. Так, количество корневых серверов увеличилось с 13 до 123.

В Северной Америке находятся 40 серверов (32,5%), в Европе – 35 (28,5%), еще 6 серверов располагаются в Южной Америке (4,9%) и 3 – в Африке (2,4%). Если взглянуть на карту, то DNS-серверы расположены согласно интенсивности использования интернет-инфраструктуры. Есть сервера в Австралии, Китае, Бразилии, ОАЭ и других странах, включая Исландию.

В России тоже есть несколько реплик корневых серверов DNS, среди которых:

  • F.root (Москва);
  • I.root (Санкт-Петербург);
  • J.root (Москва, Санкт-Петербург);
  • K.root (Москва, Санкт-Петербург, Новосибирск);
  • L.root (Москва, Ростов-на-Дону, Екатеринбург).

Один из узлов корневого DNS-сервера K-root размещен в Selectel.

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

В этой статье мы рассматриваем лишь вариант «один домен — один IP-адрес». На самом деле, ситуация может быть и сложнее. Так, с определенным доменным именем может быть связано несколько ресурсов — сайт и почтовый сервер. У этих ресурсов вполне могут быть разные IP-адреса, что дает возможность повысить надежность и эффективность работы сайта или почтовой системы. Есть у сайтов и поддомены, IP-адреса которых тоже могут быть разными.

Вся эта информация о связи сайта, поддоменов, почтовой системы хранится в специальном файле на DNS-сервере. Его содержимое называется DNS-зона. Файл содержит следующие типы записей:

  • А — адрес веб-ресурса, который привязан к конкретному имени домена.
  • MX — адрес почтового сервера.
  • CNAME — чаще всего этот тип записи используется для подключения поддомена.
  • NS — адрес DNS-сервера, который отвечает за содержимое других ресурсных записей.
  • TXT — любая текстовая информация о доменном имени.
  • SPF — данные с указанием списка серверов, которые входят в список доверенных для отправки писем от имени указанного домена.
  • SOA — исходная запись зоны, в которой указаны сведения о сервере и которая содержит шаблонную информацию о доменном имени.

А что с новыми доменами?

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

Еще немного о DNS

Инфраструктура DNS-серверов, вернее, ее основа, была заложена в начале 1980-х годов. С тех пор менялась она лишь незначительно — например, добавлялись новые доменные зоны. Так, в РФ в 2010 году появился кириллический домен .рф. До этого доменные имена могли быть лишь латинскими.

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

DNS-хостинг

В Selectel вы можете купить домен и сразу делегировать его на NS-серверы компании. Либо разместить уже зарегистрированный домен на наших NS-серверах — в Санкт-Петербурге, Москве, Екатеринбурге, Новосибирске, Киеве, Нью-Йорке, Пало-Альто, Лондоне, Амстердаме и Франкфурте. Услуга DNS-хостинга бесплатна при наличии активного аккаунта.

Технология Anycast, используемая в услугах, делает DNS-системы более надежными, безопасными, отказоустойчивыми. Есть два рекурсивных кэширующих DNS-сервера. Подробнее читайте в Базе знаний Selectel.

Добавление домена и управление им

Зайдите в панель управления my.selectel.ru либо зарегистрируйтесь в ней.

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

photo_2020-06-11_10-34-05-1525x604.jpg

Для удаление домена выберите домен, отметьте его галочкой и нажмите Удалить. Можно выбрать и удалить несколько доменов одновременно.

скрин2_удаление-1525x694.png

Делегирование домена на NS-серверы Selectel происходит по умолчанию.

скрин-1525x677.jpg

При необходимости добавьте новые DNS-записи к домену. Для этого выберите нужный домен из списка и нажмите кнопку Добавить запись.

добавить-запись-1525x647.png

Заполните поля Тип, Имя записи, TTL и Значение. Нажмите Добавить запись.

добавить-1-1525x627.png

DNS-записи можно редактировать и удалять.

редактировать-1525x678.png

Для редактирования настроек домена откройте домен и перейдите на соответствующую вкладку. Внесите необходимые изменения и нажмите Сохранить.

настройка-домена-1525x644.jpg
Содержание

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

В 70-х — 90-х годах 20 века существовала сеть под названием ARPANET. Это была попытка объединить множество компьютеров министерством обороны США для возможности передачи информации во время войны. Важность такого подхода заключалась в быстрой передачи информации на дальние расстояния. Впоследствии принципы работы ARPANET легли в основу современного интернета.

Изначально вся сеть объединяла компьютеры в четырёх различных институтах США:

  • Калифорнийский университет в Лос-Анджелесе;
  • Стэнфордский исследовательский центр;
  • Университет Юты;
  • Калифорнийский университет в Санта-Барбаре.

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

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

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

Файл hosts — как первый шаг к созданию DNS

Для решения задачи разработчики решили использовать словарь, который связывал уникальное имя и IP-адрес каждого компьютера в сети. Таким словарём стал файл hosts.txt, который и отвечал за привязку IP-адреса к имени компьютера. Файл лежал на сервере Стэнфордского исследовательского института, и пользователи сети регулярно вручную скачивали этот файл на свои компьютеры, чтобы сохранять актуальность словаря, ведь новые компьютеры появлялись в сети почти каждый день.

Выглядел hosts.txt тогда (да и сейчас) таким образом:

192.168.10.36         MIKE-STRATE-PC Сетевой (IP) адрес    Имя компьютера 

При наличии такого файла на компьютере пользователя для связи с компьютером Майка, можно было не запоминать цифры, а использовать понятное латинское имя «MIKE-STRATE-PC».

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

  • В Unix-системах: /etc/hosts
  • В Windows-системах: %Путь до папки Windows%/system32/drivers/etc/hosts

Компьютеру с IP-адресом 192.168.10.36, который находится внутри локальной сети мы указали имя «MIKE-STRATE-PC». После чего можно воспользоваться командой ping, которая пошлёт специальный запрос на компьютер Майка и будет ждать от него ответа. Похоже на то, как вы стучитесь в дверь или звоните в звонок, чтобы узнать, «есть ли кто дома?» Такой запрос можно послать на любой компьютер.

По мере развития сети и «обрастания» её новыми клиентами, такой способ становился неудобным. Всем пользователям компьютеров было необходимо всё чаще скачивать свежую версию файла с сервера Стэнфордского исследовательского института, который обновлялся вручную несколько раз в неделю. Для добавлений же новых версий было необходимо связываться с институтом и просить их внести в файл новые значения.

В 1984 году Пол Мокапетрис (Paul Mockapetris) описал новую систему под названием DNS (Domain Name System / Система доменных имён), которая была призвана автоматизировать процессы соотнесения IP-адресов и имён компьютеров, а также процессы обновления имён у пользователей без необходимости ручного скачивания файла со стороннего сервера.

Работа DNS в сети интернет

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

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

Рассмотрим работу DNS и её составных частей поближе.

Терминология

Основными компонентами DNS являются:

Домен (доменное имя) — символьное имя для обозначения сервера в сети интернет. Доменные имена являются иерархической структурой, в которой каждый уровень отделяется точкой. Основными уровнями являются:

  • Корневой домен. В урле он не используется, но всегда подразумевается. От него начинается построение всех урлов в сети интернет
  • Домены верхнего уровня. К ним относятся домены .ru, .com, .net, .su и так далее. Также этот домен называют доменом первого уровня.
  • Домен второго уровня (или основной домен). Это основное имя вашего сайта
  • Поддомены (домены третьего, четвёртого, пятого и т.д. уровня). Сюда входят все поддомены основного домена.

DNS-сервер — система, ответственная за хранение и поддержание в актуальном состоянии записей о своих дочерних доменах. Каждый DNS-сервер ответственен только за свою зону, то есть DNS-сервер домена .io знает о том, где расположен домен hexlet, DNS-сервер которого знает о расположении своих поддоменов.

Корневой DNS-сервер — система, знающая расположение (IP-адреса) DNS-серверов доменов верхнего уровня.

Ресурсная запись — единица информации DNS-сервера. Каждая ресурсная запись имеет несколько полей:

  • Имя (домен, к которому относится запись)
  • Тип
  • Параметры
  • Значение

Подключение

Необходимо понимать, что доменное имя — это всего лишь абстракция для людей. Сам компьютер и приложения (например, браузер) обращается к сервисам внутри сети интернет только по IP-адресам.

Рассмотрим процесс получения IP-адреса по доменному имени на примере домена ru.hexlet.io.

Возможны два варианта событий:

  1. Компьютер посылает запрос на известный ему DNS-сервер. Чаще всего им является DNS-сервер поставщика интернет-услуг (провайдера): какой IP-адрес у домена ru.hexlet.io?. DNS-сервер провайдера находит в своей базе информацию о том, что домен ru.hexlet.io расположен по IP-адресу 104.25.238.104 и возвращает значение нашему компьютеру. Этот процесс похож на то, как использовался файл hosts.txt.

  2. Ближайший известный DNS-сервер не имеет записи о том, по какому IP-адресу располагается домен ru.hexlet.io. В таком случае запускается цепочка процессов, благодаря которым наш компьютер получит IP-адрес домена:

    • Так как домен является иерархической структурой, и все DNS-сервера знают IP-адреса корневых DNS-серверов, то к ним и происходит запрос на получение IP-адреса домена.

    • Корневые DNS-сервера, в соответствии со своей зоной ответственности знают о том, где располагаются DNS-сервера доменов верхнего уровня. Эти адреса возвращаются DNS-серверу нашего провайдера, после чего на нужный DNS-сервер (в нашем случае на DNS-сервер домена .io) посылается запрос на получение IP-адреса домена ru.hexlet.

    • В соответствии со своей зоной ответственности DNS-сервер домена верхнего уровня возвращает IP-адрес DNS-сервера домена hexlet, на который посылается запрос на получение IP-адреса поддомена ru.

    • DNS-сервер возвращает IP-адреса поддомена ru, после чего DNS-сервер нашего провайдера возвращает полученный адрес на наш компьютер, который уже может обратиться к домену ru.hexlet.io по его IP-адресу.

Рекурсия в DNS

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

При запросах 1 и 2 ближайший сервер будет получать информацию о местонахождении DNS-серверов, которые входят в зону ответственности того сервера, на который был послан запрос. При запросе 3 будут получены необходимые ресурсные записи домена hexlet и его поддоменов.

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

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

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

Ресурсные записи DNS

Современный интернет подразумевает не только получение IP-адреса по доменному имени, но и пересылку электронной почты, подключение дополнительных сервисов аналитики к сайту, настройку защищённого протокола HTTPS. Это чаще всего делается с помощью ресурсных записей DNS.

Рассмотрим, какие ресурсные записи используются, и на что они указывают. Основными ресурсными записями DNS являются:

A-запись — одна из самых важных записей. Именно эта запись указывает на IP-адрес сервера, который привязан к доменному имени.

MX-запись — указывает на сервер, который будет использован при отсылке доменной электронной почты.

NS-запись — указывает на DNS-сервер домена.

CNAME-запись — позволяет одному из поддоменов дублировать DNS-записи своего родителя. Делается это для того, чтобы перенаправить запрос с одного домена на другой (чаще всего для перенаправления домена с поддоменом www на домен без такого поддомена).

TXT-запись — в этой записи хранится текстовая информация о домене. Часто используется для подтверждения прав на владение доменом, посредством добавления определённой строки, которую присылает нам интернет-сервис.

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

Имя записи   TTL   Класс   Тип записи  Значение 

Разберём подробнее:

Имя записи — указывается домен, которому принадлежит данная ресурсная запись.

TTL(time to live / время жизни) — время в секундах, на которое будет закешировано значение ресурсной записи. Это необходимо для разгрузки DNS-серверов. Благодаря кешированию и возможна ситуация, что ближайший DNS-сервер знает IP-адрес запрашиваемого домена.

Класс — предполагалось, что DNS может работать не только в сети интернет, поэтому в записи указывается и её класс. На сегодняшний день поддерживается только одно значение — IN (Internet).

Тип — указывает тип ресурсной записи, основные из которых были разобраны выше.

Значение — непосредственно значение ресурсной записи. В зависимости от типа ресурсной записи значения могут быть представлены в разном виде.

Посмотрим, в каком виде эти записи хранятся на DNS-серверах на примере домена ya.ru. Для этого воспользуемся утилитой dig, которая получает все доступные ресурсные DNS-записи от DNS-сервера и выводит их пользователю.

Утилита dig является DNS-клиентом и входит в состав одного из самых распространённых DNS-серверов BIND.

Пример реальных записей DNS

Не пугайтесь такого длинного вывода. Уже сейчас можно понять почти всё, что тут указано. Разберём вывод каждой секции более детально.

Вывод состоит из нескольких частей:

  • Шапка
  • Секция запроса
  • Секция ответа
  • Служебная информация

Шапка запроса

; <<>> Net::DNS::Dig 0.12 <<>> -t any ya.ru. ;; ;; Got answer. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52109 ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0 

Здесь указывается проставленные флаги нашего запроса, количество запросов и ответов, а также другая служебная информация.

Секция запроса

;; QUESTION SECTION: ;ya.ru.   IN    ANY 

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

Секция ответа

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

;; ANSWER SECTION: ya.ru. 7199INNS ns1.yandex.ru. ya.ru. 7199INNS ns2.yandex.ru.  ya.ru.599INA 87.250.250.242 ya.ru.599INAAAA 2A02:6B8:0:0:0:0:2:242 

Как запись A, так и AAAA-запись указывают на IP-адрес, который привязан к нашему домену. A-запись указывает IP в формате IPv4, а запись AAAA — в формате IPv6.

ya.ru.7199INMX 10 mx.yandex.ru. 

MX-запись также имеет параметр приоритета. Так как серверов для отправки почты может быть несколько, то и записей может быть много, поэтому для определения основного сервера указывается приоритет записи. Чем меньше число, тем выше приоритет.

ya.ru.3599INSOA ns1.yandex.ru. sysadmin.yandex.ru. 2019021800 900 600 2592000 900 

Запись SOA(Start of Authority) указывает на несколько различных параметров:

  1. Сервер с эталонной информацией о текущем домене
  2. Контактную информацию ответственного лица
  3. Различные параметры кеширования записей

Бывают и некоторые более специфичные ресурсные записи, о которых здесь не было речи, но это не значит, что они бесполезны. Полный перечень таких записей всегда можно найти в документации (например по DNS-серверу BIND).

Выводы

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

Используемые источники:

  • https://hostiq.ua/blog/how-does-dns-work/
  • https://selectel.ru/blog/dns-server/
  • https://guides.hexlet.io/dns/

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации