CNAME-запись (каноническое имя)

Типы DNS-записей
Запись DNS, задающая канонический псевдоним для другого доменного имени.
← Вернуться к глоссарию

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

CNAME, или canonical name, создаёт DNS-псевдоним: одно имя указывает на другое доменное имя, а не непосредственно на IP-адрес. Резолвер сначала получает целевое имя, затем продолжает разрешение его A или AAAA. Такой подход удобен для CDN, внешнего хостинга, SaaS и распределённых сервисов, где адреса могут меняться без обновления каждого клиентского имени.

Как работают записи CNAME

Пользователь обращается к www.example.com, но DNS направляет его к app.hosting.example. Целевое имя должно существовать и в итоге разрешаться в адрес. CNAME не является HTTP-редиректом: браузер сохраняет исходный URL, а изменение происходит на уровне DNS.

www.example.com.    IN    CNAME    example.com.

Распространённые сценарии использования CNAME

По правилам DNS имя с CNAME обычно не должно одновременно содержать A, AAAA, MX, TXT или другие обычные записи. Поэтому CNAME нельзя бездумно ставить на корневом домене, где нужны MX для почты и TXT для SPF. Некоторые DNS-провайдеры предлагают собственные механизмы flattening для apex, но их поведение нужно проверять отдельно.

Поддомен WWW

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

www    IN    CNAME    example.com.

Интеграция с CDN

Проверяйте сам CNAME, целевое имя, цепочку CNAME, конечные A и AAAA, NXDOMAIN и циклы. Цепочка не должна быть бесконечной, а цель не должна быть недоступна только из-за локального DNS-кэша. Для HTTPS дополнительно проверьте сертификат исходного имени, маршрутизацию и Host-заголовок.

CNAME хорошо отделяет пользовательское имя от инфраструктуры, но не скрывает от владельца DNS саму целевую платформу и не гарантирует доступность приложения.

cdn.example.com    IN    CNAME    d111111abcdef8.cloudfront.net.

Платформенный хостинг

CNAME возвращает каноническое имя, которое затем разрешается отдельно. Это DNS-алиас, а не HTTP-redirect: браузер сохраняет исходный URL.

blog.example.com    IN    CNAME    yoursite.wordpress.com.

shop.example.com IN CNAME shops.myshopify.com.

SaaS-приложения

CNAME удобен для внешнего хостинга и сервисов, но целевое имя должно существовать и оставаться под контролем владельца.

docs.example.com    IN    CNAME    example.gitbook.io.

status.example.com IN CNAME stats.uptimerobot.com.

CNAME и A-запись

Проверьте www, корневой домен, TLS, canonical и redirect отдельно. CNAME на www не исправляет делегацию apex.

\n| Сценарий | Используйте CNAME | Используйте A-запись |\n|----------|-------------------|----------------------|\n| Корневой домен (@) | ❌ Не разрешено | ✅ Обязательно |\n| Поддомен со статическим IP | Подойдут оба | ✅ Напрямую |\n| Поддомен у провайдера | ✅ Предпочтительно | ❌ IP может измениться |\n| Настройка CDN | ✅ Обычно | Зависит от сервиса |\n| Балансировка нагрузки | ❌ Нельзя несколько | ✅ Несколько IP |

СценарийИспользуйте CNAMEИспользуйте A-запись
Корневой домен (@)❌ Не разрешено✅ Обязательно
Поддомен со статическим IPПодойдут оба✅ Напрямую
Поддомен у провайдера✅ Предпочтительно❌ IP может измениться
Настройка CDN✅ ОбычноЗависит от сервиса
Балансировка нагрузки❌ Нельзя несколько✅ Несколько IP

Почему корневой домен не может использовать CNAME

Используйте точное имя, выданное CDN, и подтвердите ownership через предусмотренный TXT или другой официальный механизм.

Цепочки CNAME

При удалении проекта уберите CNAME и сертификат, иначе старое имя может остаться направленным на неуправляемый ресурс.

blog.example.com    → myblog.host.com

myblog.host.com → lb-1234.hosting.com

lb-1234.hosting.com → 203.0.113.50 (A record)

Настройка записи CNAME

Следуйте инструкции SaaS по DNS, валидации и TLS. Общий target не доказывает, что разные домены принадлежат одной организации.

Базовый синтаксис

A возвращает IPv4, CNAME указывает на имя. Выбор зависит от контракта сервиса, а не от желаемого визуального redirect.

subdomain    IN    CNAME    target.domain.com.

Учет TTL

В apex обычно нужны SOA и NS, поэтому классический CNAME может конфликтовать с обязательными записями. Используйте поддерживаемый ALIAS или ANAME только по правилам провайдера.

www    300    IN    CNAME    example.com.

Проверка записей CNAME

Цепочка увеличивает задержку и может закончиться циклом или лимитом разрешения. Сокращайте её и проверяйте каждый target.

dig www.example.com CNAME

; ANSWER SECTION:

www.example.com. 300 IN CNAME example.com.

dig +trace www.example.com

Типичные проблемы CNAME

Записывайте полное целевое имя с нужной конечной точкой согласно синтаксису зоны и не добавляйте URL-схему или путь.

CNAME на корневом домене

Проверьте имя, target, TTL, NS и ответ авторитетного сервера. Сохраняйте canonical identifier каждой стороны.

example.com    IN    CNAME    other.com.    ; INVALID

CNAME вместе с другими записями

Кэш target и самой CNAME-записи могут истекать в разное время. Планируйте миграцию с учётом обоих значений.

blog.example.com    IN    CNAME    host.com.

blog.example.com IN MX mail.host.com. ; INVALID

Отсутствующие целевые записи

Диагностируйте apex, конфликт с A/AAAA/MX, отсутствующий target, цикл, NXDOMAIN, TLS и takeover-риск как отдельные состояния.

Рекомендации

Ограничивайте доступ к DNS, включайте MFA, мониторьте target и удаляйте записи при закрытии сервиса. Не объявляйте домен свободным или безопасным по одному DNS-ответу.

Применяйте эти знания на практике

Используйте API DomScan для проверки доступности доменов, их состояния и многого другого.