Запись CNAME - CNAME record
А Запись канонического имени (сокращенно Запись CNAME) - это тип записи ресурса в системе доменных имен (DNS), которая отображает одно доменное имя (псевдоним) на другое (каноническое имя).[1]
Это может оказаться удобным при запуске нескольких служб (например, 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
когда Запись искать 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 означает каноническое имя, правая часть актуальный "CNAME."
Эта путаница особо упоминается в RFC 2181, «Разъяснения к спецификации DNS». Левая метка - это псевдоним правой части (часть RDATA), которая является (или должно быть) каноническое имя.[2] Другими словами, запись CNAME выглядит так:
bar.example.com. CNAME foo.example.com.
можно читать как:
bar.example.com псевдоним канонического имени (CNAME) foo.example.com. Клиент запросит bar.example.com и ответ будет foo.example.com.
Ограничения
- Записи CNAME всегда должны указывать на другое доменное имя, а не на IP-адрес.
- Если на узле присутствует запись CNAME, других данных не должно быть; это гарантирует, что данные для канонического имени и его псевдонимов не могут отличаться. (RFC 1034 раздел 3.6.2, RFC 1912 раздел 2.4) Исключение составляют случаи, когда DNSSEC используется, и в этом случае могут быть записи, связанные с DNSSEC, такие как RRSIG, NSEC и т. д. (RFC 2181 раздел 10.1)
- Записи CNAME, указывающие на другие записи CNAME, следует избегать из-за их недостаточной эффективности, но это не ошибка.[3] Таким образом, можно создавать неразрешимые циклы с записями 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. А 192.0.2.1
- Домены, которые используются в SMTP Команды MAIL и RCPT могут не иметь записи CNAME.[4] На практике это может работать, но может иметь разное поведение на разных почтовых серверах и может иметь нежелательные эффекты.[5]
Запись DNAME
А Запись DNAME или Запись имени делегации определяется RFC 6672 (оригинал RFC 2672 теперь устарело). Запись DNAME создает псевдоним для всего поддерева дерева доменных имен. Напротив, запись CNAME создает псевдоним для одного имени, а не для его поддоменов. Как и запись CNAME, поиск в DNS продолжится повторной попыткой поиска с новым именем. Сервер имен синтезирует запись CNAME, чтобы фактически применить запись DNAME к запрошенному имени - CNAME для каждого узла в поддереве имеет тот же эффект, что и DNAME для всего поддерева.
Например, если есть зона DNS следующим образом:
foo.example.com. DNAME bar.example.com.bar.example.com. 192.0.2.23xyzzy.bar.example.com. 192.0.2.24 * .bar.example.com. А 192.0.2.25
An А поиск записи для foo.example.com не будет возвращать данные, потому что DNAME не является CNAME и нет записи A непосредственно в фу.
Однако поиск xyzzy.фу.example.com будет отображено DNAME и вернет А запись для xyzzy.бар.example.com, что составляет 192.0.2.24; если бы запись DNAME была записью CNAME, этот запрос возвратил бы имя not found.
Наконец, просьба о foobar.foo.example.com будет отображено DNAME и вернет 192.0.2.25.
Запись ANAME
Некоторые управляемые DNS-платформы реализуют нестандартные ALIAS[6] или тип записи ANAME. Эти псевдозаписи управляются администраторами DNS, такими как записи CNAME, но публикуются и разрешаются (некоторыми) клиентами DNS, такими как записи A. Записи ANAME обычно настроены так, чтобы указывать на другой домен, но при запросе клиента отвечают с IP-адресом. Типы записей ANAME проходят стандартизацию,[7] но, вероятно, существует множество несоответствующих реализаций, поэтому они могут делать все, что выберет владелец платформы DNS, включая существующие на вершине зоны и существующие для доменов, которые получают почту. Одним из возможных преимуществ записей ANAME перед записями CNAME является скорость; клиенту DNS требуется как минимум два запроса для преобразования CNAME в запись A в IP-адрес, в то время как для преобразования ANAME в IP-адрес необходим только один запрос. Предполагается, что DNS-сервер может разрешить A-запись и кэшировать запрошенный IP-адрес более эффективно и с меньшей задержкой, чем его DNS-клиенты. Тип записи ANAME в настоящее время является черновиком стандарта, рассматриваемого IETF.[7]
Смотрите также
использованная литература
- ^ Мокапетрис, П. (ноябрь 1987 г.). «RFC 1035 - Доменные имена - реализация и спецификация». Инженерная группа Интернета. Получено 16 марта 2019.
- ^ «RFC 2181: Разъяснения к спецификации DNS». IETF. Июль 1997 г.. Получено 2011-03-09.
- ^ Мокапетрис, П. (ноябрь 1987 г.). «RFC 1034 - Доменные имена - концепции и возможности». Инженерная группа Интернета. Получено 15 июля 2019.
- ^ Брейден, Р. (октябрь 1989 г.). «RFC1123 - ПОЧТА - SMTP и RFC-822». Получено 23 июля 2020.
- ^ Бернштейн, Д. Дж. "Записи CNAME в почте". Получено 3 июн 2011.
- ^ "ALIAS Records". Получено 2019-07-26.
- ^ а б "Псевдонимы DNS для конкретных адресов (ANAME)". 2019-07-08. Получено 2019-07-26.
внешние ссылки
- RFC 1912 неверен Мэн Вэн Вонг анализ ограничений CNAME (из web.archive.org ).
- RFC 2219 - Использование DNS-псевдонимов для сетевых служб