Сайт

Каноническое имя, или CNAME запись: для чего используется и как создать

Для сопоставления одного домена другому необходима запись CNAME в DNS. Запись канонического имени похожа на запись ALIAS и чем-то напоминает редирект, однако здесь есть значительные отличия. Рассказываем, когда может понадобится запись CNAME и как ее создать.

Команда is*hosting 11 фев 2023 3 мин
Каноническое имя, или CNAME запись: для чего используется и как создать

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

Что такое CNAME запись?

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

Запись CNAME, или запись канонического имени - это запись в системе доменных имен, используемая для сопоставления одного доменного имени к другому. Другими словами, канонического имени (canonical name (cname)) и псевдонимов.

CNAME - это запись в формате:

blog.mydomain.com CNAME mydomain.com

Ответ на запрос канонического имени может выглядеть так:

blog.mydomain.com canonical name = mydomain.com

CNAME запись имеет особеность, которая заключается в том, что домен (поддомен) ссылается на другой домен, а не непосредственно на IP-адрес. А вот каноническое имя ссылается именно на IP и это представляется в виде A записи.

Домен (поддомен)

Тип записи в DNS

Назначение

mydomain.com

A

3.3.3.3

www.mydomain.com

CNAME

mydomain.com

blog.mydomain.com

CNAME

mydomain.com

ftp.mydomain.com

CNAME

mydomain.com

Записи CNAME позволяют легко запускать несколько служб (например, ftp или mail) с одного IP-адреса. Если IP-адрес изменится, достаточно внести изменения лишь в запись A, а не в каждую запись CNAME.

CNAME vs DNAME vs ANAME

Можно также встретить записи ANAME и DNAME. ANAME, по-другому также ALIAS, является альтернативой CNAME со своими преимуществами. Запись DNAME обеспечивает перенаправление из одной части дерева имен DNS в другую часть дерева имен DNS (например, если необходимо сделать перенаправление из одной зоны в другую: из старой версии mydomain.com в новую mydomain.org).

Как работает CNAME запись?

Когда вы вводите в адресную строку blog.mydomain.com DNS-сервер начинает поиск соответсвующей записи А. После обнаружения записи CNAME запрос перезапускается и вместо первоначального доменного имени используется каноническое. Так происходит, поскольку blog.mydomain.com является поддоменом mydomain.com. В итоге будет найден необходимый IP-адрес через запись А домена mydomain.com.

Запрос может быть задан таким образом, чтобы клиент DNS искал именно записи CNAME. В таком случае пользователю вернется не IP-адрес, а каноническое имя.

Для чего используется запись CNAME?

для чего используется cname

Варианты использования записи CNAME (канонического имени) различны и не исчерпываются данным списком:

  • необходимость указать несколько доменных имен (например, несколько сайтов), которые принадлежат одной организации и которые должны быть сопоставлены с основным сайтом;
  • использование различных сетевых служб, таких как протокол передачи файлов (FTP) или электронная почта (mail), для указания корневого домена;
  • регистрация одного и того же домена в нескольких странах с сопоставлением каждой иностранной версии с основным доменом;
  • настройка CDN (Content Delivery Networks) с указанием записи CNAME для исходного сервера вашего сайта.

Как создать CNAME запись с учетом ограничений?

Прописывая запись CNAME стоит учитывать следующие ограничения:

  • Запись CNAME не может быть создана на уровне корневого домена, поскольку корневой домен (само каноническое имя) должно сопоставляться с IP-адресом. Для этого используется А запись;
  • Записи CNAME должны указывать на другое доменное имя (корневой домен), а не на IP-адрес.
  • Если вы прописываете CNAME запись для определенного поддомена, то он не должен иметь других ресурсных записей иных типов (MX, A и т.д.). Исключением являются записи RRSIG и NSEC;
  • Не рекомендуется делать записи CNAME, указывающие на другие записи того же типа, ввиду неэффективности и возможных неразрешимых циклов.
  • Записи MX и NS никогда не должны указывать на CNAME запись.
  • Домены, используемые в командах протоколов SMTP MAIL и RCPT, могут не иметь записи CNAME, поскольку наличие данной записи в DNS может привести к некорректной работе сервисов.

Перейдем к созданию записи канонического имени. Для этого достаточно следовать шагам:

  1. Перейдите на сайт хоста, в консоль управления DNS, а затем ко всем записям DNS.
  2. В записи А (A Record) вы можете найти доменное имя, на который могут ссылаться будущие поддомены.
  3. В списке записей выберите CNAME, выберите имя домена, для которого необходимо создать данную запись.
  4. Введите поддомен, для которого создаете запись.
  5. Заполните поле TTL (Time to Live), которое определяет время хранения записи в кэше запрашивающих ее систем. Данный параметр можно оставить по-умолчанию, однако для статических IP рекомендуется значение 1800 и выше, для динамических IP - 1800 и менее.
  6. Сохраните изменения.

Напомним, что прежде чем внесенные изменения и новые записи вступят в силу, может пройти до 72 часов.

Проверка и управление записями CNAME

проверка cname

На просторах Интернета можно найти сервисы CNAME Lookup. Данные сервисы, после ввода доменного имени, выдадут полный список записей CNAME в порядке приоритета. Поскольку поиск осуществляется на авторитетном сервере имен домена, изменения в записях будут отображаться мгновенно.

Некоторые инструменты позволяют посмотреть не только CNAME и найти поддомены сайта, но и увидеть другие записи:

Другой способ - использовать приложение nslookup, которое доступно в Windows, Apple Mac и Linux.

Итак, чтобы проверить CNAME запись в MacOS или Linux запустите терминал. В ОС Windows необходимо запустить командную строку (нажмите Пуск → Выполнить, введите cmd и нажмите Enter).

Затем введите команду, указав желаемый домен

nslookup -q=cname blog.mydomain.com

Приложение выдаст вам ответ:

Server: 3.3.3.3

Address: 3.3.3.3#73

Non-authoritative answer:

blog.mydomain.com canonical name = mydomain.com.

То есть blog.mydomain.com указывает на каноническое имя mydomain.com.

CNAME vs A запись vs ALIAS vs Редирект

записи dns cname A

В системе доменных имен записи CNAME, A и ALIAS похожи, но следует знать их ключевые отличия. С каждым типом записей владельцы сайтов или иных онлайн-проектов сталкиваются во время начала работы с доменными именами.

A запись используется для сопоставления корневого домена и IP-адреса. Это и есть главное отличие, ведь в записи CNAME сопоставление может быть только с другим доменным именем (корневым доменом, или каноническим именем). Для поддоменов, для которых созданы записи CNAME, не могут иметь записи А.

Также, как и запись CNAME, запись ALIAS сопоставляет одно доменное имя другому. Однако CNAME не допускает добавления других ресурсных записей. В случае с ALIAS это возможно. Также запрос ALIAS сразу же возвращает IP-адрес, без посредничества с другим доменным именем, что сокращает время обработки запроса

Редирект и CNAME не имеют прямой связи. Для создания редиректа необходимо настроить именно сервер таким образом, чтобы на определенный HTTP-запрос он выдавал конкретный ответ. CNAME этого гарантировать не может.

VPS

Выбирайте конфигурацию и пользуйтесь всеми преимуществами виртуального приватного сервера.

От $5.00/месяц
Выделенный сервер

Бесперебойная работа, высокая производительность и удобная настройка - все для вас.

От $70.00/месяц