Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

We have a CNAME entry that points to an Amazon Elastic Load Balancer instance. For some reason, my mobile app can resolve this entry on wifi, but not 3G -- I imagine it's talking to a different name server on 3G than Wifi and getting a different answer.

When done through a local name server, an ANY query looks like this (parts redacted to protect the innocent):

; <<>> DiG 9.6.0-APPLE-P2 <<>> elb.foo.com ANY
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1051
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;elb.foo.com.       IN  ANY

;; ANSWER SECTION:
elb.foo.com.    299 IN  CNAME   elb-foo-com-12345.us-east-1.elb.amazonaws.com.
elb-foo-com-12345.us-east-1.elb.amazonaws.com.  1 IN SOA ns-123.amazon.com. dns.amazon.com. 1288881125 3600 900 7776000 60
elb-foo-com-12345.us-east-1.elb.amazonaws.com.  600 IN NS ns-123.amazon.com.
elb-foo-com-12345.us-east-1.elb.amazonaws.com.  60 IN A 174.129.0.0

However, when I query directly against the name server (@dns1.registrar-servers.com) I get the following answer:

; <<>> DiG 9.6.0-APPLE-P2 <<>> @dns1.registrar-servers.com elb.foo.com ANY
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 7735
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;elb.foo.com.       IN  ANY

;; ANSWER SECTION:
elb.foo.com.    300 IN  CNAME   elb-foo-com-12345.us-east-1.elb.amazonaws.com.

The interesting part here is "WARNING: recursion requested but not available" and "SERVFAIL". I imagine I need to talk to my DNS provider, but what should my talking points be and what should I do if I cannot resolve the problem?

EDIT: Using the Android "Ping and DNS" app I tried to resolve the domain name. On 3G, I get timeouts or "type not found" for all but CNAME and SOA types. I think the DNS server used is 69.78.96.14, according to the app.

share|improve this question
    
please don't redact your domain name –  Alnitak Nov 4 '10 at 14:48
add comment

3 Answers

The "recursion requested" warning shouldn't be relevant - most authoritative servers will continue to dish out authoritative answers even if recursion was requested, which is the default for dig.

I've just used Google to find a domain that is hosted in the same place and it works as expected. However trying some other domain that's known not to be hosted there produces SERVFAIL.

This is slightly odd - the normal error should be REFUSED, but it indicates that your domain simply isn't correctly provisioned on that server.

share|improve this answer
add comment
up vote 0 down vote accepted

Amazingly enough, it seems that it was this issue:

http://developer.amazonwebservices.com/connect/thread.jspa?threadID=53360

The plumbing in Verizon's DNS system apparently couldn't handle the large-ish CNAME entry and entries were timing out. Renaming the load balancer name to a single character fixed it.

share|improve this answer
2  
For some reason, a lot of people seem to think that supporting DNS over TCP is optional. It is not. –  David Schwartz Oct 5 '11 at 20:34
add comment

This is a better solution, create an alias in Amazon's Route 53. Of course it requires that you have your DNS through them.

http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/HowToAliasRRS.html

share|improve this answer
1  
Welcome to Server Fault! We really do prefer that answers contain content not pointers to content. Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. –  Iain Feb 8 '13 at 20:09
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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