Какова последовательность поиска DNS, если существуют обе записи: CNAME и A?

Какова последовательность поиска DNS, если существуют обе записи: CNAME и A?

Если мы установим запись A и запись CNAME для одного и того же поддомена, как будет выполняться поиск DNS?

Например,

A record: 
example.com => xx.xx.xx.xx
www.example.com => xx.xx.xx.xx

CNAME record:
www. => example.com

При разрешенииwww.example.com, DNS-резолвер напрямую ищет запись A для поддомена www и получает IP-адрес или ищет CNAME для www, чтобы получить домен перенаправления (example.com), а затем ищет запись A для example.com, чтобы в итоге получить IP-адрес?

решение1

Что такое CNAMEзаписи?

Запись CNAMEопределяетимя владельца(имя, куда добавляется запись) как псевдоним для имени в CNAMEзначении записи (каноническое имя, согласно названию типа записи).
Обратите внимание, что это определение псевдонима находится на уровне имени, полностью игнорируя типы записей.

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

С точки зрения распознавателя, если вы запрашиваете A, допустимыми вариантами для ответа являются Aтипизированный ответ, если имя не было псевдонимом, или CNAMEтипизированный ответ, если имя было псевдонимом. Получение обоих вариантов для одного и того же имени не является вариантом (не тем, который разрешен стандартом и имел бы определенное поведение, в любом случае).

Тогда как мой поставщик услуг DNS может это сделать?

Если предположить, что утверждение о том, что они позволяют вам добавлять CNAMEзаписи Aбок о бок, верно, то с их сервисом происходит что-то неочевидное.

Я бы разделил это на два основных варианта, поскольку, не зная больше, невозможно понять, какой из них актуален в вашем случае:

  • Их система не использует напрямую вводимые пользователем данные, но так или иначе преобразует их во что-то, что будет допустимым. Либо они могут добавить одну из конфликтующих записей, но не другую (что будет означать, что пользовательский интерфейс довольно плох), либо у них может быть некая форма функциональности "выравнивания CNAME", когда они фактически не обслуживают записи, CNAMEвведенные пользователем, а вместо этого разрешают соответствующие записи из канонического имени со своей стороны и обслуживают их так, как если бы они были непосредственно по имени псевдонима (что является нестандартной функциональностью, но некоторые службы реализовали этот тип динамических поисков для "выравнивания" CNAME).
  • Их система сломана, что позволяет пользователю добавлять несовместимые данные, которые не разрешены в спецификациях, и можно ожидать, что это вызовет странные проблемы тем или иным образом (либо из-за того, что их служба сломает их, либо из-за того, что их служба фактически будет предоставлять несовместимые данные, которые могут сломать что-то на стороне резолвера). Пользователь выстрелит себе в ногу, если воспользуется этим типом поломки в своей службе.

Связанный контент