Что такое CNAME
Каноническая запись имени (сокращенно запись CNAME) представляет собой тип записи ресурса в системе доменных имен (DNS), который перенаправляет (является синонимом) одного имени для другого.
Зачем нужна CNAME
Это может оказаться удобным при работе нескольких служб (например, FTP-сервер и веб-сервер; каждый работает на разных портах) с одного IP-адреса. Можно, например, перенаправлять точки входа ftp.example.com и www.example.com на DNS-запись для example.com, который, в свою очередь, имеет запись, указывающую на IP-адрес. Затем, если IP-адрес никогда не меняется, то изменения вносятся лишь в одном месте: в DNS записи для example.com.
Конкретно мне понадобилось поработать с CNAME для помощи по делегированию домена (почты) на яндекс от nic.ru. Честно говоря, очень запутанная схема, множество противоречивых инструкций. Если вам понадобится в этом помощь, то пишите мне на up777up@yandex.ru – за небольшую плату вместе разберемся в этом.
Ограничения
Записи CNAME обрабатываются особым образом в системе доменных имен и имеют несколько ограничений на их использование. Когда DNS клиент обнаруживает запись cname для регулярной записи ресурса, он будет перезапускать запрос, используя каноническое имя вместо оригинального имени. (Если сопоставитель специально сказал искать записи CNAME, каноническое имя (правая сторона) возвращается, а не перезапускает запрос.) Каноническое имя cname-записи, может быть в любом месте в DNS, как на местном, так и на удаленном сервере в другой DNS-зоне.
Например, если есть такая зона DNS
bar.example.com. CNAME foo.example.com. foo.example.com. A 192.0.2.23когда производится поиск записи bar.example.com резолвер увидит запись cname и перезапустит проверку на foo.example.com, а затем вернется на 192.0.2.23.
Записи CNAME должны всегда указываться на другое доменное имя, а не на IP-адрес. Псевдоним, определенный в записи cname, не должен иметь никаких записей ресурсов других видов (МХ, А и др.); исключением являются случаи, когда используется DNSSEC.
Записи CNAME, указывающие на другие записи CNAME, следует избегать из-за их недостаточной эффективности, но это не является ошибкой. Такие записи как
foo.example.com. CNAME bar.example.com. bar.example.com. CNAME foo.example.com.могут вызвать неразрешимые петли.
Записи CNAME, обслуживаемые записями DNAME, могут вызывать рекурсивные циклы в старых сопоставителях. MX и NS записей никогда не должны указывать на псевдоним cname (RFC 2181 раздел 10.3). Так, например, зона должна не содержать таких конструкций, как
example.com. MX 0 foo.example.com. foo.example.com. CNAME host.example.com. host.example.com. A 192.0.2.1Домены, используемые для электронной почты, могут не иметь записи CNAME. На практике это может работать, но разные почтовые сервера могут реагировать на них по-разному – возможны нежелательные последствия.
DNAME записи
DNAME запись или делегирование имени определяется в RFC 6672. Запись DNAME создает псевдоним для всего поддерева дерева доменных имен. Напротив, запись CNAME создает псевдоним для одного имени, а не для его поддоменов. Как и запись CNAME, поиск DNS будет продолжаться, повторяя поиск с новым именем. Сервер имен синтезирует запись CNAME, чтобы фактически применить запись DNAME к запрошенному имени-CNAMEs для каждого узла в поддереве имеют тот же эффект, что и DNAME для всего поддерева.
Например, если есть зона DNS следующим образом
foo.example.com. DNAME bar.example.com. bar.example.com. A 192.0.2.23 xyzzy.bar.example.com. A 192.0.2.24 *.bar.example.com. A 192.0.2.25В одной записи подстановки для foo.example.com не вернет никаких данных за DNAME не cname и нет записи напрямую на foo.
Однако, поиск xyzzy.foo.example.com будет dname в карту и вернуть себе рекорд по xyzzy.баре.example.com, который 192.0.2.24; если dname в записи была запись cname, этот запрос возвратит, что имя не найдено.
Наконец, запрос на foobar.foo.example.com будет dname и вернет 192.0.2.25.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.