Почему я получаю это предупреждение для одного из моих доменов при использовании ViewDNS.info инструмент тестирования:
Тесты записи WWW
ПРЕДУПРЕЖДЕНИЕ Поиск в WWW CNAME
Ой! У вас есть запись CNAME для вашей записи WWW, но связанная с ней запись A не возвращается! Это означает, что необходимо выполнить дополнительный поиск, что приведет к чрезмерному увеличению времени загрузки вашего сайта.
Я искал это предупреждение, но ничего значимого не нашел, а результаты поиска Google возвращают только одну страницу без особой релевантности.
Кто-нибудь знает, что это значит и почему это происходит? И вот настоящий кикер - если вы проверьте godaddy.com с помощью ViewDNS.info, их домен также получает это предупреждение! Немного утешительно знать, что я не единственный, у кого есть эта проблема, но я хочу понять, почему? Как я могу это исправить? И, что более важно, мне нужно что-то изменить (1) в моих записях DNS, или (2) на моем сервере / хостинге, или (3) в обоих местах, или (4) это каким-то образом связано с NameSilo NS?
Я протестировал 2 своих домена с viewdns.info; один зарегистрирован в ИмяSilo, еще один с Domain.com.
exampledomain1.com (NameSilo + VPS)
exampledomain2.com (Domain.com + общий хостинг с cPanel)
Теперь, насколько я знаю (что ограничено, когда дело доходит до DNS, поскольку я самоучка), оба они настроены одинаково. Конечно, разница только в значениях IP-адресов, доменных имен и некоторых параметров. Но в целом они равны для записей A и CNAME.
Примеры:
A record on NameSilo
.exampledomain1.com => 1.2.3.4
*.exampledomain1.com => 1.2.3.4
A record on Domain.com
@.exampledomain1.com => 1.2.3.4
*.exampledomain1.com => 1.2.3.4
Ноты:
В обоих доменах я использую версию без www, а на стороне сервера выполняю все перенаправления. Эта часть работает нормально.
В NameSilo я пустил .exampledomain1.com выше, а на Domain.com это @ .exampledomain2.com - Я думаю, эффект такой же, например, указывает на "корень"?
CNAME records on NameSilo/Domain.com respectively
www.exampledomain1.com => exampledomain1.com
www.exampledomain2.com => exampledomain2.com
Когда я выполняю общую проверку DNS, exampledomain2.com (Domain.com) не возвращает ошибок в разделе Тесты записи WWW > Поиск в WWW CNAMEоднако я получаю предупреждение для exampledomain1.com (NameSilo).
Я тестировал домены с помощью dig (подстановочный знак * ниже означает номер 1 или 2):
dig exampledomain*.com
dig www.exampledomain*.com
dig CNAME exampledomain*.com
dig CNAME www.exampledomain*.com
И я получил в целом очень похожие отчеты, что означает, что в этом отношении все в порядке.
Одна вещь о NameSilo заключается в том, что есть некоторые проблемы с SOA, например:
error: All nameservers have same SOA serial number
warning: SOA serial number format
Но эта часть не контролируется мной (я думаю).
Спасибо!
TL; DR;
я считать основная причина предупреждения "У вас есть запись CNAME для вашей записи WWW, но связанная с ней запись A не возвращается!" - это настройка DNS-сервера, не зависящая от вас.
Вы можете обойти это, сделав запись CNAME записью A.
Если у вас есть авторитетный сервер имен с зоной со (среди прочего) следующими двумя записями ресурсов:
example.com. 3600 IN A 192.0.2.1
www.example.com. 3600 IN CNAME example.com.
И рекорд для www.example.com. запрашивается, тогда минимальный ответ это именно та запись CNAME, и поисковый запрос может вернуть:
;; ANSWER SECTION:
www.example.com. 3600 IN CNAME example.com.
;; Query time: 1 msec
После этого минимального ответа у вас по-прежнему нет нужного IP-адреса, и вашему преобразователю потребуется выполнить второй запрос, чтобы узнать, что такое example.com. решает. Этот запрос для example.com. приведет к ответу:
;; ANSWER SECTION:
example.com. 3600 IN A 192.0.2.1
;; Query time: 1 msec
AFAIK это обычный но не обязательно (в особом случае, когда запись CNAME находится в той же зоне или в другой зоне, для которой тот же DNS-сервер также является авторитетным), что сервер имен делает обоснованное предположение, что запрос, который возвращает тип записи CNAME в качестве ответа, будет как и ожидалось, последует запрос для этого CNAME.
Сервер имен вытеснит это, он интерпретирует запрос, развернет CNAME и просто отправить обе записи как один ответ. (По крайней мере, это кажется логикой в старых RFC 1034 пункт 4.3.2).
;; ANSWER SECTION:
www.example.com. 3600 IN CNAME example.com.
example.com. 3600 IN A 192.0.2.1
;; Query time: 1 msec
Это увеличивает ответ, но в большинстве случаев избавляет клиента от второго запроса и второго приема-передачи.
Ваш сервер имен будет работать быстрее, если ему не придется выполнять эту логику.
Поскольку вы не контролируете сервер имен, а только данные для вашего собственного домена, вы можете отключить предупреждение, просто не используя запись CNAME, а используя вместо этого запись A и создав зону:
example.com. 3600 IN A 192.0.2.1
www.example.com. 3600 IN A 192.0.2.1