[БЕЗ_ЗВУКА]
[БЕЗ_ЗВУКА] В
этом видео мы посмотрим, что такое DNS, его назначение и структуру.
Также рассмотрим схемы разрешения DNS-имен,
рассмотрим некоторые типы DNS-записей и копнем глубже с помощью утилиты dig.
DNS — это распределенная система для получения информации о доменах,
чаще всего используется для получения IP-адреса по имени хоста.
Согласитесь, очень неудобно запоминать имя какого-то ресурса в виде IP-адреса,
гораздо проще его запомнить с помощью некоего названия, имя домена.
Поэтому придумали DNS.
Раньше DNS представлял собой некий файлик, который хранился у всех на компьютерах,
в котором было соответствие между IP-адресом и доменом.
Сеть росла, и этот файлик становился все больше и больше,
его нужно было все чаще синхронизировать, и поэтому такой подход устарел.
Поэтому придумали DNS в том виде, который сейчас есть.
Ключевыми характеристиками DNS является распределенность, то, что
ответственность за разные части структуры несут разные люди или организации.
Каждый узел сети в обязательном порядке должен хранить только те данные,
которые входят в его зону ответственности.
Также каждый узел может хранить некоторую информацию
от чужих узлов для уменьшения нагрузки на сеть.
И последний, но один из самых важных, это резервирование.
За хранение и обслуживание своих узлов отвечают несколько серверов.
Рассмотрим структуру DNS.
Например, у нас есть доменное имя linux.org.
Мы в этой записи опускаем узел верхнего уровня, он обычно обозначается точкой.
То есть linux.org.
В корневом уровне сформировано
несколько категорий, которые делят общую базу данных на части, называемые доменами.
То есть в корневой зоне точка есть множество доменов,
например, org, com, net и так далее.
По мере дальнейшего роста сети все домены
верхнего уровня были поделены на поддомены, linux.org.
Каждый поддомен или зону можно также разделить на поддомены или зоны дальше,
поэтому DNS является иерархической структурой.
Теперь рассмотрим, как же DNS понимает,
на каком сервере хранится информация о данном имени.
Существуют две схемы разрешения DNS-имен.
Первая — это нерекурсивная.
Например, пользователю нужно обратиться к google.com.
Он обращается к корневому DNS-серверу с указанием полного доменного имени.
Он отвечает клиенту, указывая адрес следующего DNS-сервера.
В свою очередь клиент делает запрос к следующему DNS-серверу,
который отсылает его к DNS-серверу нужного нам поддомена и так далее,
пока он не найдет нужный DNS-сервер, который знает информацию о DNS-записях.
Вторая схема — это рекурсивная.
Клиент запрашивает локальный DNS-сервер.
То есть, например, им может служить ваш домашний роутер.
Далее возможны два варианта.
Либо этот локальный DNS-сервер знает ответ, то есть вы когда до этого ходили
на google.com, и он записал, закэшировал эту информацию, и сразу вам ответил.
Либо второй вариант: вы никогда не были на этом ресурсе,
и этот локальный DNS-сервер
сделает ровно такие же операции, как в не рекурсивный схеме.
Он обратится к корневому DNS-серверу и так далее,
пока не получит информацию о записях, и после этого вернет клиенту.
Мы посмотрели, как DNS находит нужный DNS-сервер с записями.
Теперь посмотрим эти сами записи.
DNS-сервер, отвечающий за имена хостов в своей зоне,
должен хранить информацию о хостах в базе данных и выдавать ее по запросу клиентов,
то есть наши DNS-записи.
Обычно база данных представляет собой некий текстовый файлик с записями.
Рассмотрим эти записи.
Одна из самых важных записей — это A-запись,
которая и указывает соответствие между доменом и IP-адресом.
Например, чтобы сказать, что google.com ассоциируется с адресом 192.168.01,
нам нужно добавить A-запись.
Теперь AAAA-запись — это аналогичная A-записи запись,
которая выполняет те же самые функции,
только в ней указывается адрес протокола IPv6.
CNAME-запись — эта запись служит для создания псевдонимов.
Например, у нас есть несколько имен,
которые указывают на один и тот же IP-адрес.
Чтобы так сделать, необходимо добавить одну A-запись и для всех
остальных псевдонимов указать CNAME-записи.
NS-запись.
В каждой зоне должны быть, по крайней мере, два сервера DNS.
Записи NS, то есть NAME-сервер, служит для их идентификации другими DNS-серверами,
которые пытаются преобразовать имя хоста, относящееся к данной зоне.
SOA-запись — запись, которая определяет авторитетную информацию о DNS-зоне.
В этой записи указываются такие параметры, как Primary Name Server,
в ней указывается имя первичного DNS-сервера зоны.
Hostmaster — контактная информация лица, ответственного за эту зону.
И Serial Number — это серийный номер файла зоны, он служит для того,
чтобы при каждом обновлении информации увеличивать это число на единичку,
чтобы оповестить, что зона была изменена.
PTR-запись.
Обычно мы используем DNS для того, чтобы по имени домена определить IP-адрес.
PTR-запись служит для обратной операции — по IP-адресу определить имя домена.
MX-запись.
С помощью этой записи удаленные сервера электронной почты узнают,
куда же нам отправить почту для вашей зоны.
TXT-запись — это просто запись, содержит текстовые данные.
Иногда эта запись нужна для того, чтобы подтвердить права на этот домен.
Например, вы регистрируетесь в каком-то сервисе, он вам дает некий ключик,
который говорит: запиши, пожалуйста, в TXT-запись.
Вы добавляете эту запись, он проверяет, что такая запись добавлена,
тем самым подтверждая, что вы имеете право на этот домен.
Копнем немного глубже и посмотрим, как работает DNS с помощью утилиты dig.
Например, нам нужно посмотреть,
какие записи у домена mail.ru.
Пишем dig mail.ru, смотрим вывод команды.
По дефолту она делает запрос за A-записями,
это можно посмотреть в этой секции.
Далее идет DNS-ответ, он нам возвратил четыре A-записи.
Следует отметить, что A-записей может быть больше, чем одна.
Если мы дальше обратимся к этим IP-адресам,
мы получим доступ к ресурсу mail.ru.
Давайте посмотрим, какие записи есть еще у mail.ru, например, MX.
Mail.ru — это почтовый сервис, значит, у него должна быть MX-запись.
Смотрим, что мы делаем запрос за MX-записями,
в итоге в ответ получаем одну MX-запись,
которая равна mxs.mail.ru.
Теперь давайте посмотрим, что же происходит под капотом,
когда мы делаем dig mail.ru.
Для этого добавим trace.
В самом начале мы обратились к DNS, который мы знаем,
8888, и он нам отдал список DNS-серверов,
и мы прошлись по ним и обратились к IP-адресу
202.12.27.33 на порт 53.
Давайте узнаем, что же это за такой адрес.
Помните, мы говорили о PTR-записях,
которые служат для обратного определения доменного имени по IP-адресу?
Это и сделаем: dig −x IP-адрес.
В итоге получили запись M.ROOT-SERVERS.NET.
То есть нам ответил этот DNS-сервер.
Так происходит и так далее по иерархии, и в итоге мы приходим на NS-сервера mail.ru,
которые уже отвечают нам нашими A-записями.
Итого, сегодня мы рассмотрели, что такое DNS, его назначение и структуру,
посмотрели схемы разрешения DNS-имен, а также типы записей в DNS,
и копнули глубже с помощью утилиты dig.
[ЗВУК] [БЕЗ_ЗВУКА]