Перейти к содержимому

CNAME: как работает и чем отличается от A-записи

Как работает CNAME, чем отличается от A и AAAA, цепочки CNAME, CDN, www, TTL и типовые ошибки DNS.

CNAME — DNS-запись, позволяющая сделать одно доменное имя псевдонимом другого. Она широко используется для поддоменов, CDN, SaaS-сервисов и внешних платформ.

Разберём, как CNAME работает, почему он не хранит IP напрямую, чем отличается от A и AAAA и какие ошибки в цепочке CNAME способны полностью сломать доступ к сайту.

Что такое CNAME

CNAME означает Canonical Name.

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

Это означает: для дальнейшего разрешения имени www.example.com нужно обратиться к example.net.

CNAME не содержит IP

В отличие от A и AAAA, CNAME указывает на другое DNS-имя.

Пример разрешения

www.example.com
        ↓ CNAME
site.provider.net
        ↓ A
203.0.113.20

Чем CNAME отличается от A

A непосредственно связывает имя с IPv4.

example.com → 203.0.113.20

CNAME связывает имя с другим именем:

www.example.com → example.com

Чем CNAME отличается от AAAA

AAAA хранит IPv6, а CNAME — DNS-имя.

Зачем использовать CNAME

  • подключение CDN;
  • подключение SaaS;
  • псевдоним www;
  • внешний хостинг;
  • упрощение управления несколькими именами.

Пример для www

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

Что происходит при изменении IP назначения

Если CNAME ведёт на имя внешнего сервиса, владелец этого сервиса может изменить A/AAAA назначения без необходимости менять ваш CNAME.

Цепочка CNAME

Иногда возникает несколько переходов:

a.example.com
→ b.example.net
→ edge.cdn.net
→ 203.0.113.20

Почему длинные цепочки нежелательны

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

Как проверить CNAME

dig +short www.example.com CNAME

Как увидеть полный DNS-ответ

dig www.example.com

Как проверить конечный IP

dig +short www.example.com

В зависимости от resolver вывод может включать и промежуточное имя, и конечный адрес.

CNAME и TTL

У CNAME есть собственный TTL, а у конечной A/AAAA — свой.

Ошибка: CNAME ведёт на несуществующее имя

www.example.com → old.provider.net → NXDOMAIN

В таком случае начальная запись существует, но сайт всё равно не откроется.

Ошибка: циклический CNAME

a.example.com → b.example.com
b.example.com → a.example.com

Такая конфигурация не может корректно разрешиться.

Можно ли одновременно иметь CNAME и A для одного имени

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

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

У apex-домена ситуация сложнее, потому что там уже существуют обязательные NS и SOA.

Некоторые DNS-провайдеры предлагают ALIAS, ANAME или CNAME flattening, но это уже функции провайдера, а не обычная CNAME-запись в классическом виде.

CNAME и почта

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

CNAME и сертификат HTTPS

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

Если открывается www.example.com, TLS-сертификат должен быть действителен именно для этого hostname независимо от конечного DNS-назначения.

CNAME и CDN

CDN часто выдаёт клиенту адрес вроде:

project123.cdn-provider.net

После чего владелец сайта создаёт:

cdn.example.com CNAME project123.cdn-provider.net

CNAME и смена провайдера

При миграции не забывайте проверить, не осталось ли старое назначение CNAME.

CNAME и DNS propagation

Изменение CNAME тоже кешируется согласно TTL.

Как проверить через NexIP

NexIP позволяет увидеть CNAME вместе с другими DNS-записями и определить конечное назначение домена.

Практический порядок диагностики

  1. Запросить CNAME.
  2. Проверить, существует ли target.
  3. Проверить A и AAAA target.
  4. Проверить TTL.
  5. Исключить цикл.
  6. Проверить HTTPS конечного сайта.

Связь с A и AAAA

Подробнее: A и AAAA — в чём разница.

FAQ

CNAME может указывать на IP?

Нет, значение CNAME — другое DNS-имя.

Можно ли сделать www через CNAME?

Да, это один из распространённых вариантов.

Почему CNAME есть, а сайт не работает?

Проверяйте конечное имя, A/AAAA, TLS и веб-сервер.

Как быстро посмотреть CNAME?

dig +short www.example.com CNAME

Инструменты NexIP

Проверьте на практике

Диагностика NexIP

Продолжите реальной проверкой

Откройте полный раздел диагностики и проверьте сайт, домен или сетевые параметры.

Открыть диагностику

Читайте дальше

Материалы по теме

DNS

Что такое DNS-записи

Подробно разбираем, как работает DNS, за что отвечают A, AAAA, CNAME, MX, TXT, NS, SOA, PTR и CAA, что такое TTL и как диагностировать DNS через dig и NexIP.

Читать
Вернуться в базу знаний