Разрешено ли в DNS иметь запись CNAME, указывающую на другую запись CNAME?
Причина, по которой нам это нужно, заключается в том, что у нас есть имя хоста, которое мы хотим найти по IP-адресу нашего компьютера веб-сервера. У нас также есть еще один компьютер с веб-сервером, который может быть активирован в случае смерти первого. В таком случае нам нужно быстро указать имя хоста на IP-адрес компьютера резервного веб-сервера.
К сожалению, имя хоста находится в домене DNS, где любое изменение может занять много времени из-за ручной операции, зависящей от других системных администраторов. Но у нас есть еще один DNS-домен, где мы можем сами быстро вносить изменения. Наличие цепочки CNAME в CNAME кажется возможным решением. Но разве это разрешено? Поймут ли это веб-браузеры?
Из RFC 1034 - Доменные имена - концепции и возможности:
Имена доменов в RR, которые указывают на другое имя, всегда должны указывать на основное имя, а не на псевдоним. Это позволяет избежать лишних косвенных указаний при доступе к информации. Например, адрес для имени RR для указанного выше хоста должен быть:
52.0.0.10.IN-ADDR.ARPA IN PTR C.ISI.EDU
вместо того, чтобы указывать на USC-ISIC.ARPA. Конечно, в соответствии с принципом надежности, программное обеспечение домена не должно давать сбоев при наличии цепочек или циклов CNAME; Цепочки CNAME должны соблюдаться, а циклы CNAME сигнализируются как ошибка.
Так что да, это разрешено, и правильно написанное программное обеспечение справится с этим нормально. Однако цепочки CNAME не считаются хорошей практикой и создают накладные расходы на инфраструктуру.
Конечно, это возможно.
Это вообще разочарованный хотя по той очевидной причине, что он использует больше ресурсов DNS. Например:
foo IN CNAME someserver.somehost.com.
bar IN CNAME foo
Запрос 'bar' приведет к CNAME foo
запрашивается, тогда someserver.somehost.com.
запрашивается, что приводит к одному дополнительному запросу.
Для каждого добавляемого элемента в цепочке потребуется другой запрос.
Другой причиной это обескураживает, потому что, создавая подобные цепочки, вы каким-то образом создадите Циклы CNAME увеличены; они должны автоматически обнаруживаться текущими DNS-серверами, но все равно будут создавать большую нагрузку на серверы.
Да, это разрешено и будет работать, но это не считается хорошей практикой. Множественные поиски используют больше ресурсов, и есть риск случайного создания цикла.