A Запись канонического имени (сокращенно запись CNAME ) - это тип ресурса запись в системе доменных имен (DNS), которая сопоставляет одно доменное имя (псевдоним) другому (каноническое имя).
Это может доказать удобно при запуске нескольких служб (например, FTP-сервер и веб-сервер, каждый из которых работает на разных портах) с одного IP-адреса. Например, можно указать ftp.example.com и www.example.com на запись DNS для example.com, которая, в свою очередь, имеет запись A, которая указывает на IP-адрес. Затем, если IP-адрес когда-либо изменится, нужно будет записать изменение только в одном месте в сети: в записи A DNS для example.com.
Записи CNAME всегда должны указывать на другое доменное имя, а не напрямую на IP-адрес.
Записи DNS CNAME указаны в RFC 1034 и разъяснены в разделе 10 RFC 2181.
Записи CNAME обрабатываются специально в системе доменных имен и имеют несколько ограничений на их использование. Когда преобразователь DNS обнаруживает запись CNAME при поиске обычной записи ресурса, он перезапускает запрос, используя каноническое имя вместо исходного имени. (Если преобразователю специально сказано искать записи CNAME, вместо перезапуска запроса возвращается каноническое имя (правая сторона).) Каноническое имя, на которое указывает запись CNAME, может находиться в любом месте DNS, независимо от того, является ли оно локальным. или на удаленном сервере в другой зоне DNS.
Например, если существует зона DNS следующим образом:
ИМЯ ТИП ЗНАЧЕНИЕ ------------- ------------------------------------- bar.example.com. CNAME foo.example.com. foo.example.com. 192.0.2.23
, когда выполняется поиск записи A для bar.example.com, преобразователь увидит запись CNAME и перезапустит проверку на foo.example.com и будет затем верните 192.0.2.23.
В записи CNAME можно указать имя, такое как bar.example.com, на foo.example.com. Из-за этого во время случайного обсуждения bar.example.com. (левая) часть записи DNS может быть ошибочно идентифицирована как «CNAME» или «CNAME». Однако это неточно. Каноническое (истинное) имя bar.example.com. это "foo.example.com". Поскольку CNAME расшифровывается как Canonical Name, правая часть - это собственно CNAME.
Эта путаница конкретно упоминается в RFC 2181, «Разъяснения к спецификации DNS». Левая метка - это псевдоним для правой части (часть RDATA), которая является (или должна быть) каноническим именем. Другими словами, запись CNAME выглядит так:
bar.example.com. CNAME foo.example.com.
можно читать как:. bar.example.com - это псевдоним канонического имени (CNAME) foo.example.com. Клиент запросит bar.example.com, и ответ будет foo.example.com.
foo.example.com. CNAME bar.example.com. bar.example.com. CNAME foo.example.com.
example.com. MX 0 foo.example.com. foo.example.com. CNAME host.example.com. host.example.com. A 192.0.2.1
A Запись DNAME или Запись имени делегирования определяется как RFC 6672 (исходный RFC 2672 теперь устарел). Запись DNAME создает псевдоним для всего поддерева дерева доменных имен. Напротив, запись CNAME создает псевдоним для одного имени, а не для его поддоменов. Как и запись CNAME, поиск в DNS продолжится повторной попыткой поиска с новым именем. Сервер имен синтезирует запись CNAME, чтобы фактически применить запись DNAME к запрошенному имени - CNAME для каждого узла в поддереве имеет тот же эффект, что и DNAME для всего поддерева.
Например, если существует зона DNS следующим образом:
foo.example.com. ИМЯ bar.example.com. bar.example.com. 192.0.2.23 xyzzy.bar.example.com. 192.0.2.24 *.bar.example.com. A 192.0.2.25
Поиск записи A для foo.example.com не вернет никаких данных, потому что DNAME не является CNAME и нет A-записи непосредственно в foo.
Однако поиск для xyzzy. foo .example.com будет отображен с именем DNAME и вернет запись A для xyzzy. bar . example.com, то есть 192.0.2.24; если бы запись DNAME была записью CNAME, этот запрос возвратил бы имя not found.
Наконец, запрос для foobar.foo.example.com будет отображен DNAME и вернет 192.0.2.25.
Несколько управляемых платформ DNS реализуют нестандартный тип записи ALIAS или ANAME. Эти псевдозаписи управляются администраторами DNS, такими как записи CNAME, но публикуются и разрешаются (некоторыми) клиентами DNS, такими как записи A. Записи ANAME обычно настроены так, чтобы указывать на другой домен, но при запросе клиента отвечают с IP-адресом. Типы записей ANAME проходят стандартизацию, но, вероятно, существует множество несоответствующих реализаций, поэтому они могут делать все, что выберет владелец платформы DNS, включая существующие на вершине зоны и существующие для доменов, получающих почту. Одним из возможных преимуществ записей ANAME перед записями CNAME является скорость; клиенту DNS требуется как минимум два запроса для преобразования CNAME в запись A в IP-адрес, в то время как для преобразования ANAME в IP-адрес необходим только один запрос. Предполагается, что DNS-сервер может разрешить A-запись и кэшировать запрошенный IP-адрес более эффективно и с меньшей задержкой, чем его DNS-клиенты. Тип записи ANAME в настоящее время является предварительным стандартом, рассматриваемым IETF.