Назад | Перейти на главную страницу

Разрешена ли цепочка CNAME в CNAME?

Разрешено ли в 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-серверами, но все равно будут создавать большую нагрузку на серверы.

Да, это разрешено и будет работать, но это не считается хорошей практикой. Множественные поиски используют больше ресурсов, и есть риск случайного создания цикла.