
Система доменных имен (DNS) гарантирует, что пользователи могут ввести домен в браузере и попасть на нужный им сайт. На самом деле, участники сети в основном общаются через IP-адреса. Однако, поскольку они довольно громоздки, вам нужно вводить только название сайта, поскольку оно автоматически переводится в последовательность цифр. Как работает этот перевод?
Что такое DNS-записи?
Когда вы вводите в браузере интернет-адрес, система сначала должна найти, какой IP-адрес принадлежит этому домену. Иногда это происходит даже в памяти самого компьютера, часто — в базе данных интернет-провайдера или других DNS-серверов, а в случаях неопределенности — через один из крупных корневых серверов, которые контролируют всю систему доменных имен как авторитетные организации. Для того чтобы выполнить разрешение имени, записи DNS, а именно записи ресурсов, должны быть найдены в DNS и/или серверах имен. Здесь каждому IP-адресу (известному серверу) присваивается доменное имя.
DNS имеет иерархическую и децентрализованную структуру. На каждом уровне есть сервер, который отвечает за свое пространство имен. Это означает, что при поиске IP-адреса www.example.com корневой сервер помогает только в том случае, если он знает, какой сервер отвечает за домен верхнего уровня (TLD). Таким образом, для выполнения разрешения имен прогоняются отдельные уровни. Это означает, что IP-адрес реального веб-сервера или почтового сервера принадлежит только самому хосту. По этой причине операторам веб-сайтов важно понимать концепцию записей ресурсов.
Как работают записи DNS?
Записи DNS в основном располагаются в файлах зон. Применительно к DNS зона обозначает организационную область. Домен может состоять из одной зоны. Однако обширные домены часто делятся на несколько зон. Каждый сервер DNS отвечает за одну зону. Поэтому если клиент хочет активировать определенный домен, он (а точнее, DNS-сервер) ищет в файлах зоны соответствующие записи и пересылает запрос на сервер более низкого уровня, пока не будет достигнут конечный пункт назначения.
Синтаксис записей DNS
Записи ресурсов структурированы по простой системе и закодированы в ASCII. Для каждой записи DNS существует отдельная строка. Записи обычно имеют следующий формат:
<name> <ttl> <class> <type> <rdlength> <radata>
Дискретная информация разделяется пробелом, а некоторые виды информации являются необязательными. В некоторых типах записей появляются также дополнительные поля. Но что представляют собой ключевые поля записи?
- <имя>: Доменное имя — это имя, которое пользователь вводит в своем браузере.
- <ttl>: TTL означает «время жизни» и обозначает время (в секундах), в течение которого запись может временно храниться в кэше. По истечении этого времени нельзя гарантировать, что запись ресурса все еще актуальна. Эта информация является необязательной.
- <класс>: Теоретически существуют различные классы записей DNS. Однако на практике записи всегда относятся к интернету (помечены как IN), поэтому эта информация также является необязательной.
- <тип>: Различные типы записей ресурсов появляются в файле зоны (подробнее об этом см. ниже).
- <rdlength>: Это необязательное поле определяет размер последующего поля данных.
- <rdata>: Данные ресурса — это информация, по которой можно разрешить доменное имя (например, IP-адрес).
Таким образом, запись DNS для веб-сервера example.com выглядит следующим образом:
www.example.com. 12879 IN A 93.184.216.34
Клиент может хранить эту запись в кэше 12 879 секунд (около трех с половиной часов), прежде чем информация снова будет запрошена у DNS-сервера. Для этого используется запись DNS в интернете (IN) и запись типа A (A). Домен преобразуется в IP-адрес.
Возможна и другая нотация:
$TTL 12879
$ORIGIN example.com.
www A 93.184.216.34
Эта нотация показывает, что компьютер с именем www является частью домена example.com. Таким образом, другие компьютеры, такие как mail или ftp, могут быть помещены в домен origin.
Доменное имя заканчивается (или начинается, поскольку движение идет справа налево) точкой. Полностью определенные доменные имена (FQDN), в которых также присутствует корневая метка (хотя и пустая), используются в записях DNS. Обычно она располагается после точки.
Наиболее важные типы записей DNS
Тип записи определяет, какая информация содержится в ней. Помимо разрешения доменных имен в соответствии с IP-адресами, записи DNS выполняют и другие функции.
Запись A
Большая часть разрешения имен в Интернете происходит через запись типа A. В ее поле данных находится адрес IPv4. С помощью этих записей пользователь Интернета может ввести доменное имя в браузер и отправить HTTP-запрос на соответствующий IP-адрес. Поскольку адрес IPv4 всегда имеет размер 4 байта, значение параметра rdlength — если он указан — всегда равно 4.
Запись AAAA
Запись AAAA, также известная как «квадрат A», функционирует точно так же, как и запись A. Однако для разрешения имени используется адрес IPv6 вместо адреса IPv4. Поскольку длина IPv6 составляет 128 бит (16 байт), длина поля данных здесь также предопределена. Обозначение AAAA основано на том, что длина поля данных в четыре раза больше длины поля данных записи A.
Запись SOA
SOA расшифровывается как Start of Authority (начало полномочий). Записи этого типа содержат информацию о зоне, которая организована файлом зоны и/или сервером DNS. Это важно — среди прочих сценариев — во время переноса зоны. Здесь файлы зон зеркалируются на другие серверы для предотвращения сбоев. Перенос зоны регулирует периодическое распространение исходного файла. Поэтому в такой записи DNS рядом с почтовым адресом ответственного администратора также ставится серийный номер. Он увеличивается с каждым обновлением файла.
Запись CNAME
В записи CNAME (запись канонического имени) содержится псевдоним — дополнительное имя для домена. С его помощью запись ссылается на существующую запись A или AAAA. В этом типе поле rdata заполняется доменным именем, которое ранее было связано с IP-адресом в файле. Таким образом, разные адреса могут ссылаться на один и тот же сервер.
Запись MX
Запись MX относится к почтовому обмену или серверу электронной почты SMTP. Здесь указывается один или несколько почтовых серверов, принадлежащих соответствующему домену. При использовании нескольких почтовых серверов (например, для компенсации сбоя) указывают разные уровни приоритета. Таким образом, DNS знает, в какой последовательности должна осуществляться попытка контакта.
PTR-запись
PTR-запись (указатель) — это запись DNS, позволяющая осуществлять обратный поиск. С помощью этой техники DNS-сервер может также предоставлять информацию о том, какие имена хостов принадлежат определенному IP-адресу. Для каждого IP-адреса, который используется в записях A или AAAA, также существует соответствующая запись PTR. При этом IP-адрес структурируется в обратной последовательности и также снабжается именем зоны.
NS-запись
В NS-записи — записи сервера имен файла зоны — уточняется юрисдикция конкретной зоны. По этой причине данная запись является обязательной для каждого файла зоны. Эта ресурсная запись дает серверу DNS информацию о том, несет ли он ответственность за запрос — что требует от него организации соответствующей зоны — и кому он должен направить запрос.
TXT-запись
Запись TXT содержит текст, который либо предназначен для людей в качестве источника информации, либо является машиночитаемой информацией. Эта запись DNS дает администратору возможность хранить неструктурированный текст (в отличие от структурированных данных других записей DNS). Сюда также может входить информация о компании, стоящей за доменом.
SRV-запись
С помощью записи SRV сервер может предоставлять информацию о других службах (SRV). Для этого указывается служба, включая порт, через который с ней можно связаться. Кроме того, используемый протокол является частью имени. Через запись DNS клиент может получить информацию о службах LDAP или XMPP.
Запись LOC
С помощью записи LOC можно раскрыть местоположение физического сервера. Для этого в конце записи указываются широта, долгота, высота над уровнем моря, а также отклонение от нормы.
Узнайте больше о «Что такое распространение DNS?» в статье нашего цифрового руководства по этой теме.
Файл зоны
В файле зоны (тип простого текстового файла) перечислены все записи DNS. Для того чтобы данные правильно обрабатывались, необходимо соблюдать определенные правила. В противном случае DNS не сможет функционировать, и клиент получит сообщение об ошибке SERVFAIL. По этой причине необходимо придерживаться специальной структуры: Вначале указывается имя зоны, а затем, во многих случаях, TTL. Добавление информации о времени прямо здесь имеет то преимущество, что в отдельных записях ресурсов эта информация может быть опущена. В этом случае TTL действует глобально для всей зоны.
$ORIGIN example.com.
$TTL 12879
Первая запись DNS — это запись SAO. Без нее файл зоны не может функционировать. И наоборот, файл зоны будет действителен только при наличии записи SOA. После этого идут первые записи для сервера имен, а затем записи A и AAAA.
Если в файл необходимо добавить комментарии — например, чтобы облегчить работу другим администраторам, — следует использовать точки с запятой. Таким образом, информация о записи DNS создается без обработки текста сервером. Вы можете вставлять пустые строки для структурирования записей. Они также просто игнорируются системой при считывании. Для каждой записи используется одна строка; перевод строки завершает запись. Если вы хотите, чтобы запись занимала несколько строк, добавьте скобки.
Все типы записей DNS в кратком изложении
Помимо упомянутых выше, существует множество других возможных типов записей ресурсов, которые можно встретить в файлах зон — пусть и не так часто. В следующей таблице представлены все типы и дано краткое представление об их функциях.
Организация Internet Assigned Numbers Authority (IANA), в обязанности которой также входит распределение IP-адресов, присвоила каждому типу записи DNS значение (своего рода идентификационный номер).
Значение | Тип | Описание |
---|---|---|
1 | A | Адрес указывает IPv4-адрес хоста. |
2 | NS | Сервер имен уточняет полномочия зоны. |
3 | MD | Место назначения почты было заменено записью MX (устаревшей). |
4 | MF | Mail Forwarder был заменен записью MX (устаревшая). |
5 | CNAME | Каноническое имя определяет псевдоним. |
6 | SOA | Начало полномочий раскрывает подробную информацию о зоне. |
7 | MB | Почтовый ящик Доменное имя является экспериментальным. |
8 | MG | Член почтовой группы является экспериментальным. |
9 | MR | Mail Rename Domain Name является экспериментальным. |
10 | NULL | Null Ресурс является экспериментальным. |
11 | WKS | Well Known Service использовался для пересылки почты (сейчас устарел). |
12 | PTR | Указатель предназначен для обратного поиска. |
13 | HINFO | Информация о хосте содержит сведения об аппаратном и программном обеспечении хоста. |
14 | MINFO | Информация о почтовом ящике является экспериментальной. |
15 | MX | Почта Exchange присваивает почтовым серверам домен. |
16 | TXT | Текст предоставляет возможность ввода дополнительных текстов. |
17 | RP | Ответственное лицо предоставляет информацию об ответственном лице. |
18 | AFSDB | AFS Database предназначена специально для клиентов AFS. |
19 | X25 | X.25 PSDN Address предоставляет подробную информацию об инкапсуляции через X.25 (устарело). |
20 | ISDN | Эта запись присваивает имени DNS номер ISDN (устарела). |
21 | RT | Route Through Запись обеспечивает привязку сквозного маршрута без адреса WAN (устарела). |
22 | NSAP | Эта запись позволяет назначать доменные имена точкам доступа сетевых служб (устарела). |
23 | NSAP-PTR | Указатель NSAP был заменен на PTR (устарело). |
24 | SIG | Подпись была заменена на RRSIG (устаревшее). |
25 | KEY | Ключ был заменен на IPSECKEY (устаревший). |
26 | PX | Указатель на X.400 определяет правила отображения MIXER (устарело). |
27 | GPOS | Географическое положение заменено на LOC (устарело). |
28 | AAAA | AAAA предоставляет IPv6-адрес хоста. |
29 | LOC | Location содержит информацию о местоположении. |
30 | NXT | Next был заменен на NSEC (устаревший). |
31 | EID | Идентификатор конечной точки предназначен для архитектуры маршрутизации Nimrod (устарела). |
32 | NIMLOC | Nimrod Locator предназначен для архитектуры маршрутизации Nimrod (устаревшая). |
33 | SRV | Service Locator предоставляет информацию о других службах. |
34 | ATMA | ATM Address предоставляет информацию при наличии асинхронных режимов передачи (устарело). |
35 | NAPTR | Naming Authority Pointer — расширение записи A, позволяющее использовать шаблон поиска (регулярные выражения). |
36 | KX | Key Exchanger обеспечивает управление ключами для криптографии. |
37 | CERT | Cert сохраняет сертификаты. |
38 | A6 | A6 было заменено на AAAA. |
39 | DNAME | Имя делегирования определяет псевдонимы для полных доменов. |
40 | SINK | Kitchen Sink позволяет хранить различные данные (устарело). |
41 | OPT | Опция — это псевдозапись при наличии механизма расширения DNS (EDNS). |
42 | APL | Список префиксов адресов перечисляет области адресов в формате CIDR. |
43 | DS | Delegation Signer идентифицирует зоны, подписанные DNSSEC. |
44 | SSHFP | SSH Public Key Fingerprint раскрывает отпечаток пальца для ключей SSH. |
45 | IPSECKEY | IPsec Key содержит ключ IPsec. |
46 | RRSIG | RR Signature содержит цифровую подпись для DNSSEC. |
47 | NSEC | Следующий защищенный поток подписывает зоны в DNSSEC. |
48 | DNSKEY | DNS Key содержит открытый ключ для DNSSEC. |
49 | DHCID | Идентификатор DHCP связывает доменные имена с клиентами DHCP. |
50 | NSEC3 | Next Secure 3 — альтернатива NSEC. |
51 | NSEC3PARAM | Эта запись содержит параметр для NSEC3. |
52 | TLSA | Эта запись выдает ассоциацию сертификата TLSA с доменным именем, относящимся к DANE. |
53 | SMIMEA | Эта запись выдает ассоциацию сертификатов S/MIME с доменным именем. |
54 | н/а | Не назначено |
55 | HIP | Host Identity Protocol отделяет маркеры конечных точек и функции позиционирования от IP-адресов. |
56 | NINFO | NINFO предоставляет информацию о состоянии зоны (та же структура, что и TXT; устарела). |
57 | RKEY | RKEY сохраняет ключи (та же структура, что и KEY и DNSKEY; устарело). |
58 | TALINK | Trust Anchor Link соединяет два доменных имени (устарело). |
59 | CDS | Child DS — дочерняя копия записи DS. |
60 | CDNSKEY | Child DNSKEY — дочерняя копия записи DNSKEY. |
61 | OPENPGPKEY | Ключ OpenPGP раскрывает открытые ключи. |
62 | CSYNC | Синхронизация между родителями позволяет согласовывать родительские и дочерние зоны (устарело). |
63 | ZONEMD | Дайджест сообщений для зоны DNS является экспериментальным (устарело). |
64-98 | н/а | Не назначено. |
99 | SPF | Sender Policy Framework была заменена записью TXT (устаревшая). |
100 | UINFO | Зарезервировано. |
101 | UID | Зарезервировано. |
102 | GID | Зарезервировано. |
103 | UNSPEC | Зарезервировано. |
104 | NID | NodeID экспериментальный. |
105 | L32 | 32-битный локатор является экспериментальным. |
106 | L64 | 64-битный локатор является экспериментальным. |
107 | LP | Указатель локатора является экспериментальным. |
108 | EUI48 | 48-битный расширенный уникальный идентификатор шифрует адреса. |
109 | EUI64 | 64-битный расширенный уникальный идентификатор шифрует адреса. |
110-248 | н/а | Не назначен. |
249 | TKEY | Ключ транзакции позволяет обмениваться секретными ключами. |
250 | TSIG | Подпись транзакции используется для аутентификации. |
251 | IXFR | Incremental Zone Transfer позволяет обновлять компоненты файла зоны на втором сервере (устарело). |
252 | AXFR | AFXR переносит полный файл зоны на второй сервер (устарело). |
253 | MAILB | Mailbox запрашивает записи, относящиеся к почтовому ящику (устарело). |
254 | MAILA | Почтовый агент был заменен MX-записью (устаревшая). |
255 | * | * запрашивает все записи (устаревшее). |
256 | URI | Унифицированный идентификатор ресурса раскрывает отображение имен хостов на URI. |
257 | CAA | Certificate Authority Authorization определяет возможные центры сертификации домена. |
258 | AVC | Application Visibility and Control содержит метаданные приложения для DNS-AS (устарело). |
259 | DOA | DOA больше не активен (устарел). |
260 | AMTRELAY | Automatic Multicast Tunneling Relay позволяет находить AMT-реле (устарело). |
261-32767 | н/д | Не назначен. |
32768 | TA | DNSSEC Trust Authorities позволяет DNSSEC без подписанных корней. |
32769 | DLV | DNSSEC Lookaside Validation раскрывает якоря доверия за пределами стандартной цепочки DNS. |
32770-65279 | н/а | Не назначен. |
65280-65534 | н/д | Для частного использования. |
65535 | н/д | Зарезервировано. |