Возникла странная проблема, когда запись 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%:
Я знаю, что это своего рода отказ, но я не думаю, что мы сможем дать вам лучший ответ без более подробной документации о том, что происходило во время мероприятия.