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

Подстановочные знаки CNAME DNS-записи, переопределяющие определенные DNS-записи A у одного поставщика

Возникла странная проблема, когда запись CNAME с подстановочным знаком (например, * .example.com) переопределяла определенные записи A (например, host1.example.com, host2.example.com). Это затронуло только серверы имен Verizon Wireless. Авторитетные серверы имен контролируются Network Solutions (ns1.dnsbycomodo.net и ns2.dnsbycomodo.net).

Серверы имен других поставщиков вернули правильные результаты (OpenDNS и mxtoolbox.com), и это не может быть проблемой кеширования, потому что возвращаемые неверные IP-адреса (через поиск CNAME) ранее никогда не использовались, и, кроме того, изменение была сделана за 12 часов до этого, а TTL на записях составлял всего 7200.

Похоже, что удаление записи CNAME с подстановочными знаками решило проблему. Есть мысли о том, что случилось? Кто-нибудь еще сталкивался с этим? Это просто какая-то ошибка с DNS-серверами Verizon, которые общаются с Network Solutions? Предположительно записи CNAME с подстановочными знаками были действительны некоторое время (Действительна ли DNS-запись CNAME с подстановочным знаком?).

РЕДАКТИРОВАТЬ:

Вот порядок, в котором все произошло

Исходный конфиг:
A * .example.com -> 1.1.1.1
Host1.example.com -> 2.2.2.2
Host2.example.com -> 3.3.3.3

Изменился на:
Удалено "A" * .example.com
Добавлен CNAME * .example.com -> hostalias.example.net, который разрешается в 4.4.4.4.

Итог:
На запросах Verizon к host1.example.com и host2.example.com начали возвращать 4.4.4.4, тогда как на OpenDNS и mxtoolbox.com они по-прежнему правильно возвращали 2.2.2.2 и 3.3.3.3 соответственно.

Спасибо за обновление вашего вопроса, это делает порядок событий более понятным. К сожалению, описываемое вами поведение остается весьма загадочным с точки зрения рекурсивного преобразователя DNS. Лучше всего это проиллюстрировать на примерах.


Когда запрос не находится в кеше, рекурсивный DNS-сервер отправляет следующий запрос авторитетному серверу имен:

Вопрос: host1.example.com. IN A

Удаленный полномочный сервер ответит так, если явный A запись определяется:

Ответ: host1.example.com. IN A 2.2.2.2

Или вот так, если он попадает в запись CNAME:

Ответ: host1.example.com. IN CNAME hostalias.example.net.


В обоих случаях выбор того, будет ли A запись или CNAME запись обслуживается определяется авторитетный сервер, а не рекурсивный сервер. Рекурсивный сервер, как следует из названия, рекурсивный. Запрос восходящего клиента на host.example.com. IN A передается без изменений, если для получения ответа не требуются дополнительные запросы. (в этом случае это будет дополнительный поиск для hostalias.example.net если только авторитетный сервер имен не может предоставить этот ответ в том же ответе)

Учитывая это хорошо понятное поведение, исходные предположения следует рассматривать как подозрительные. Один из этих фактов не точен на 100%:

  • Порядок, в котором были определены эти записи.
  • Verizon возвращает ответ 4.4.4.4. (т.е. ответ пришел откуда-то ближе к вашей сети или даже из файла хоста)
  • Все ваши официальные серверы возвращали один и тот же ответ на этот запрос.
  • Ошибка оператора.
  • Человеческая память.

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