Начиная работу с онлайн-ресурсом, каждый сталкивается с настройкой записей 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 (канонического имени) различны и не исчерпываются данным списком:
- необходимость указать несколько доменных имен (например, несколько сайтов), которые принадлежат одной организации и которые должны быть сопоставлены с основным сайтом;
- использование различных сетевых служб, таких как протокол передачи файлов (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 может привести к некорректной работе сервисов.
Перейдем к созданию записи канонического имени. Для этого достаточно следовать шагам:
- Перейдите на сайт хоста, в консоль управления DNS, а затем ко всем записям DNS.
- В записи А (A Record) вы можете найти доменное имя, на который могут ссылаться будущие поддомены.
- В списке записей выберите CNAME, выберите имя домена, для которого необходимо создать данную запись.
- Введите поддомен, для которого создаете запись.
- Заполните поле TTL (Time to Live), которое определяет время хранения записи в кэше запрашивающих ее систем. Данный параметр можно оставить по-умолчанию, однако для статических IP рекомендуется значение 1800 и выше, для динамических IP - 1800 и менее.
- Сохраните изменения.
Напомним, что прежде чем внесенные изменения и новые записи вступят в силу, может пройти до 72 часов.
Проверка и управление записями 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 Редирект
В системе доменных имен записи CNAME, A и ALIAS похожи, но следует знать их ключевые отличия. С каждым типом записей владельцы сайтов или иных онлайн-проектов сталкиваются во время начала работы с доменными именами.
A запись используется для сопоставления корневого домена и IP-адреса. Это и есть главное отличие, ведь в записи CNAME сопоставление может быть только с другим доменным именем (корневым доменом, или каноническим именем). Для поддоменов, для которых созданы записи CNAME, не могут иметь записи А.
Также, как и запись CNAME, запись ALIAS сопоставляет одно доменное имя другому. Однако CNAME не допускает добавления других ресурсных записей. В случае с ALIAS это возможно. Также запрос ALIAS сразу же возвращает IP-адрес, без посредничества с другим доменным именем, что сокращает время обработки запроса
Редирект и CNAME не имеют прямой связи. Для создания редиректа необходимо настроить именно сервер таким образом, чтобы на определенный HTTP-запрос он выдавал конкретный ответ. CNAME этого гарантировать не может.
VPS
Выбирайте конфигурацию и пользуйтесь всеми преимуществами виртуального приватного сервера.
От $5.00/месяцВыделенный сервер
Бесперебойная работа, высокая производительность и удобная настройка - все для вас.
От $70.00/месяц