1

Why am I receiving this warning for one of my domains when using ViewDNS.info testing tool:

WWW Record Tests

WARNING WWW CNAME lookup

Oops! You have a CNAME entry for your WWW record but the A record associated is not returned with it! This means an extra lookup needs to be performed, unecessarily increasing loading times for your site.

I have searched for this warning report, but nothing meaningful was found, and google search results returns only single page without much relevance.

Does anyone know what does it mean and why this happens? And here is the real kicker - if you check godaddy.com with ViewDNS.info, their domain also receives this warning! It's a little comforting to know that I'm not the only one with this issue, but I wish to understand why? How can I fix this? And more importantly, do I need to change something (1) in my DNS records, or (2) on my server/hosting or (3) in both places or (4) it's related to NameSilo NS somehow?


I have tested 2 of my domains with viewdns.info; one is registered with NameSilo, another one with Domain.com.

exampledomain1.com (NameSilo + VPS)

exampledomain2.com (Domain.com + Shared hosting with cPanel)

Now, as far as my knowledge goes (which is limited when it comes to DNS, as I am self-taught), both are configured in the same way. Of course, the only difference is values of IP addresses, domain names and some parameters. But, overall, they are equal for A and CNAME records.

Examples:

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

Notes:

In both domains I use version without www, and on server side I perform all redirects. That part works fine.

In NameSilo I have put blank .exampledomain1.com above, and on Domain.com it is @.exampledomain2.com -- I think the effect is same e.g. points to "root"?

CNAME records on NameSilo/Domain.com respectively

www.exampledomain1.com => exampledomain1.com
www.exampledomain2.com => exampledomain2.com

When I perform dns overall check, exampledomain2.com (Domain.com) returns no errors under section WWW Record Tests > WWW CNAME lookup, however, I do receive a warning for exampledomain1.com (NameSilo).

I have tested domains with dig (wildcard * below means either number 1 or 2):

dig exampledomain*.com
dig www.exampledomain*.com
dig CNAME exampledomain*.com
dig CNAME www.exampledomain*.com

And I received overall very similar reports, meaning it is all OK in this regard.

One thing about NameSilo is that there are some SOA issues, for example:

error: All nameservers have same SOA serial number
warning: SOA serial number format

But, that part is not controlled by me (I think).

Thanks!

3

TLDR;

I think the primary cause for the warning "You have a CNAME entry for your WWW record but the A record associated is not returned with it!" is a DNS server setting beyond your control.

You can work around that by making the CNAME record an A record instead.


If you have an authoritative name sever with a zone with (among others) the following two resource records:

    example.com.  3600   IN  A      192.0.2.1
www.example.com.  3600   IN  CNAME  example.com. 

And the record for www.example.com. is requested, then the minimal response is exactly that CNAME record and a dig query may return:

;; ANSWER SECTION:
www.example.com.       3600    IN      CNAME   example.com.


;; Query time: 1 msec

After that minimal response you still don't have the ip-address you need and your resolver will need to perform a second query to see what example.com. resolves to. That query for example.com. will result in the response:

;; ANSWER SECTION:
example.com.           3600    IN      A       192.0.2.1


;; Query time: 1 msec

AFAIK it is customary but not mandatory (in the special case when the CNAME record is in the same zone or a different zone for which the same DNS server is also authoritative) that the name server makes the educated guess that a query that returns a CNAME record type as a response will be predictably be followed by a query for that CNAME.
The name server will preempt that, it will interpret the request, expand the CNAME and simply send both records as a single response. (At least that seems the logic in old RFC 1034 paragraph 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

That makes the response larger, but will in most cases save the client a second query and a second round-trip.

Your nameserver will be faster when it doesn't have to perform that logic.

Since you don't control the name server, only the data for your own domain you can make the warning go away by simply not using a CNAME record but by using an A record instead and create a zone:

    example.com.  3600   IN  A      192.0.2.1
www.example.com.  3600   IN  A      192.0.2.1
  • 1
    This is overall better, because a CNAME works for other RR types, too. Most likely e.g. www MX and www TXT aren't wanted. – Esa Jokinen Mar 29 at 17:20
  • Thank you @HBruijn for detailed explanation! I will do as you suggest. Regards – dev101 Mar 29 at 22:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.