Skip to main content

DNS

DNS (Domain Name System) является телефонной книгой Интернета, преобразует human-readable доменные имена в IP-адреса, позволяя браузерам загружать интернет-ресурсы.

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

what-is-domain

В загрузке веб-страницы участвуют 4 DNS-сервера: DNS Lookup

Recursive Resolver

Recursive Resolver (также известный как DNS recursor) — это первая остановка в DNS-запросе. Recursive Resolver действует как посредник между клиентом и DNS nameserver. После получения DNS-запроса от веб-клиента Recursive Resolver либо ответит кэшированными данными, либо отправит запрос на Root Nameserver, за которым следует еще один запрос на TLD Nameserver, а затем последний запрос на Authoritative Nameserver. После получения ответа от Authoritative Nameserver, содержащего запрошенный IP-адрес, Recursive Resolver отправляет ответ клиенту.

info

Во время этого процесса Recursive Resolver будет кэшировать информацию, полученную от Authoritative Nameserver. Когда клиент запрашивает IP-адрес доменного имени, которое недавно было запрошено другим клиентом, резолвер может обойти процесс связи с nameservers и просто доставить клиенту запрошенную запись из его кэша.

Большинство пользователей Интернета используют Recursive Resolver, предоставляемый их ISP (интернет-провайдером), но есть и другие доступные варианты; например Cloudflare 1.1.1.1 (public DNS resolver operated by Cloudflare).

Root Nameserver

13 DNS root nameservers известны каждому Recursive Resolver, и они являются первой остановкой в поисках рекурсивным преобразователем DNS-записей. Root Nameserver принимает запрос Recursive Resolver, который включает имя домена, а Root Nameserver отвечает, направляя Recursive Resolver на TLD Nameserver в зависимости от расширения этого домена (.com, .net, .org и т. д.). Root Nameserver контролируются некоммерческой организацией под названием Internet Corporation for Assigned Names and Numbers (ICANN).

caution

Хотя существует 13 DNS root nameservers, это не означает, что в системе Root Nameservers всего 13 машин. Существует 13 типов Root Nameservers, но по всему миру существует несколько копий каждого из них, которые используют маршрутизацию Anycast для обеспечения быстрого ответа. Если вы сложите все экземпляры Root Nameservers, у вас будет более 600 различных серверов.

TLD Nameserver

TLD Nameserver хранит информацию обо всех доменных именах, которые имеют общее расширение домена (common), например .com, .net или что-то еще, что идет после последней точки в URL-адресе. Например, TLD Nameserver .com содержит информацию для каждого веб-сайта, который заканчивается на «.com». Если пользователь искал google.com, после получения ответа от Root Nameserver, Recursive Resolver отправлял запрос на TLD Nameserver .com, который отвечал, указывая на Authoritative Nameserver для этого домена.

Управление TLD Nameserver осуществляется Internet Assigned Numbers Authority (IANA), которое является филиалом ICANN. IANA делит TLD Nameserver на две основные группы:

  1. Generic top-level domains: это домены, которые не привязаны к конкретной стране. Некоторые из наиболее известных общих доменов верхнего уровня включают .com, .org, .net, .edu и .gov.
  2. Country code top-level domains: к ним относятся любые домены, специфичные для страны или штата. Примеры: .uk, .us, .ua и .jp.

Authoritative Nameserver

Когда Recursive Resolver получает ответ от TLD Nameserver, этот ответ направит Recursive Resolver на Authoritative Nameserver. Authoritative Nameserver обычно является последним шагом резолвера на пути к IP-адресу. Authoritative Nameserver имен содержит информацию, специфичную для доменного имени, которое он обслуживает (например, google.com), и может предоставить Recursive Resolver IP-адрес этого сервера, найденный в записи DNS A, или если в домене есть запись CNAME (alias, псевдоним) - он предоставит Recursive Resolver alias домена, после чего Recursive Resolver придется выполнить совершенно новый DNS Lookup, чтобы получить запись от Authoritative Nameserver (часто запись A, содержащая IP-адрес). Cloudflare DNS распространяет Authoritative Nameserver, которые оснащены маршрутизацией Anycast, что делает их более надежными.

DNS Records

DNS Records

A

«А» означает «адрес», и это самый фундаментальный тип записи DNS: он указывает IP-адрес данного домена. Например, если вы извлекаете записи DNS Cloudflare.com, запись A в настоящее время возвращает IP-адрес: 104.17.210.9.

example.comrecord type:value:TTL
@A192.0.2.114400

Символ @ в этом примере указывает, что это запись для корневого домена, а значение 14400 — это TTL (время жизни), указанное в секундах. Значение TTL по умолчанию для записей A составляет 14 400 секунд. Это означает, что если запись A обновляется, для вступления в силу требуется 240 минут (14 400 секунд).

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

AAAA

Запись, содержащая адрес IPv6 для домена (в отличие от записей A, в которых указан адрес IPv4).

CNAME

Запись «канонического имени» (CNAME) указывает из псевдонима домена (alias) в «канонический» домен. Запись CNAME используется вместо записи A, когда домен или поддомен является псевдонимом другого домена. Все записи CNAME должны указывать на домен, а не на IP-адрес.

Например, предположим, что blog.example.com имеет запись CNAME со значением «example.com» (без «blog»). Это означает, что когда DNS-сервер попадает в записи DNS для blog.example.com, он фактически запускает еще один поиск DNS для example.com, возвращая IP-адрес example.com через свою запись A. В этом случае мы бы сказали, что example.com — это каноническое имя (или истинное имя) blog.example.com.

Часто, когда сайты имеют поддомены, такие как blog.example.com или shop.example.com, эти поддомены будут иметь записи CNAME, указывающие на корневой домен (example.com). Таким образом, если IP-адрес хоста изменится, необходимо обновить только запись DNS A для корневого домена, и все записи CNAME будут следовать вместе с любыми изменениями, внесенными в корень.

blog.example.comrecord type:value:TTL
@CNAMEis an alias of example.com32600

MX

Запись DNS 'mail exchange' (MX) направляет электронную почту на почтовый сервер. Запись MX указывает, как сообщения электронной почты должны маршрутизироваться в соответствии с простым протоколом передачи почты (SMTP, стандартным протоколом для всей электронной почты). Как и записи CNAME, запись MX всегда должна указывать на другой домен.

example.comrecord type:priority:value:TTL
@MX10mailhost1.example.com45000
@MX20mailhost2.example.com45000

Числа «приоритета» перед доменами для этих записей MX указывают на предпочтение; более низкое значение «приоритета» является предпочтительным. Сервер всегда сначала пробует использовать mailhost1, поскольку 10 меньше, чем 20. В случае сбоя отправки сообщения сервер по умолчанию будет использовать mailhost2. Если указать 10 и 10, то эта конфигурация будет работать в качестве балансировщика нагрузки.

NS

NS означает «nameserver», а запись сервера имен указывает, какой DNS-сервер является авторитетным для этого домена (т. е. какой сервер содержит фактические записи DNS). По сути, записи NS сообщают Интернету, куда обратиться, чтобы узнать IP-адрес домена. Домен часто имеет несколько записей NS, которые могут указывать первичный и вторичный серверы имен для этого домена. Без правильно настроенных записей NS пользователи не смогут загрузить веб-сайт или приложение.

example.comrecord type:value:TTL
@NSns1.exampleserver.com21600
caution

Записи NS никогда не могут указывать на запись канонического имени CNAME.

Nameserver — это тип DNS-сервера. Это сервер, на котором хранятся все записи DNS для домена, включая записи A, записи MX или записи CNAME.

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

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

PTR

Запись DNS pointer (сокращенно PTR) предоставляет имя домена, связанное с IP-адресом. Запись DNS PTR является полной противоположностью записи «A», которая предоставляет IP-адрес, связанный с именем домена.

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

Обычно PTR используют при:

  • Anti-spam: Некоторые фильтры защиты от спама электронной почты используют обратный DNS для проверки доменных имен адресов электронной почты и определения вероятности использования связанных IP-адресов законными серверами электронной почты.
  • Troubleshooting email delivery issues: Поскольку фильтры защиты от спама выполняют эти проверки, проблемы с доставкой электронной почты могут возникнуть из-за неправильной настройки или отсутствия записи PTR. Если в домене нет записи PTR или если запись PTR содержит неправильный домен, службы электронной почты могут блокировать все электронные письма из этого домена.
  • Logging: Системные журналы обычно записывают только IP-адреса; обратный поиск DNS может преобразовать их в доменные имена для журналов, которые более удобны для чтения человеком.

SOA

Запись DNS Start Of Authority (SOA) хранит важную информацию о домене или зоне, такую как адрес электронной почты администратора, время последнего обновления домена и время ожидания сервера между обновлениями.

Всем зонам DNS необходима запись SOA, чтобы соответствовать стандартам IETF(Internet Engineering Task Force). Записи SOA также важны для передачи зон.

Nameexample.com
record typeSOA
MNAMEns.primaryserver.com
RNAMEadmin.example.com
SERIAL1111111111
REFRESH86400
RETRY7200
EXPIRE4000000
TTL11200

Значение «RNAME» здесь представляет адрес электронной почты администратора, что может сбивать с толку, поскольку в нем отсутствует знак «@», но в записи SOA admin.example.com эквивалентен admin@example.com.

SRV

Запись DNS service (SRV) определяет хост и порт для определенных служб, таких как передача голоса по IP (VoIP), обмен мгновенными сообщениями и т. д. Большинство других записей DNS указывают только сервер или IP-адрес, но записи SRV также включают порт по этому IP-адресу. Некоторые интернет-протоколы для работы требуют использования записей SRV.

serviceXMPP
proto*TCP
name**example.com
TTL86400
classIN
typeSRV
priority10
weight5
port5223
targetserver.example.com

*Short for "protocol," as in transport protocol.

**Domain name.

TXT

Текстовая запись DNS (TXT) позволяет администратору домена вводить текст в систему доменных имен (DNS). Запись TXT изначально предназначалась для хранения удобочитаемых заметок. Однако теперь в записи TXT также можно помещать некоторые машиночитаемые данные. Один домен может иметь множество записей TXT.

example.comrecord type:value:TTL
@TXTThis is an awesome domain! Definitely not spammy.32600

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