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

Служба Azure DNS не возвращает IP-адрес при поиске записи CNAME

Я обнаружил, что служба Azure DNS не возвращает IP-адрес при поиске записи CNAME. Например, DNS-серверы Google или AWS Route 53 любезно возвращают IP-адреса соответствующей записи A по тому же запросу. В целях тестирования я создал запись www1 CNAME, указывающую на www.myzone.com:

Тест AWS Route 53

$ dig www.myzone.com @ns-560.awsdns-06.net
;; ANSWER SECTION:
www.myzone.com.        7200    IN      A       MY.IP.ADD.RESS

$ dig www1.myzone.com @ns-560.awsdns-06.net
;; ANSWER SECTION:
www1.myzone.com.       3600    IN      CNAME   www.myzone.com.
www.myzone.com.        7200    IN      A       MY.IP.ADD.RESS

Google DNS серверы показывают тот же результат:

$ dig www1.myzone.com @8.8.8.8
;; ANSWER SECTION:
www1.myzone.com.       3599    IN      CNAME   www.myzone.com.
www.myzone.com.        7199    IN      A       MY.IP.ADD.RESS

Тест MS Azure

$ dig www.myzone.com @ns1-02.azure-dns.com
;; ANSWER SECTION:
www.myzone.com.        7200    IN      A       MY.IP.ADD.RESS

$ dig www1.myzone.com @ns1-02.azure-dns.com
;; ANSWER SECTION:
www1.myzone.com.       3600    IN      CNAME   www.myzone.com.

Обратите внимание, что Azure DNS не возвращает IP-адрес во втором запросе.

Мой вопрос: это ожидаемое поведение, и могу ли я настроить Azure DNS для возврата соответствующей записи A по запросу CNAME, как это делают AWS или Google?

Я нашел пару похожих, но без ответа тем на форумах MS (1, 2).

Вы наблюдали текущее поведение Azure DNS по умолчанию. Azure DNS в настоящее время не «преследует» доменные имена в CNAME (и аналогичных типах записей) RDATA. Вместо этого он полагается на рекурсивную службу DNS для повторного запроса - что он и делает, поэтому сценарий работает непрерывно. Из-за повторного запроса возникает небольшая дополнительная задержка, но на практике она незначительна из-за кэширования DNS.

Причина этого дизайна - предотвратить погоню за доменными именами. Например, если у вас есть foo.com на сервере имен Azure DNS, он может использоваться совместно с bar.com на том же сервере имен, принадлежащем другому лицу. Мы не переходим с foo.com на bar.com, поскольку вы можете предпочесть использовать другой bar.com на другом сервере.

Мы отслеживаем элемент невыполненной работы, чтобы в будущем можно было отслеживать доменное имя.

Джонатан Тулиани, менеджер программы, Azure DNS

Да, сервер имен должен возвращать и CNAME, и A в вашем конкретном сценарии. RFC1034 говорит «Оба этих RR будут возвращены в ответ на запрос типа A».