Hello all,<br><br>We're using PowerDNS to serve authoritative records for our clients at DNSimple.com. We've noticed some behavior which I'm hoping someone can shed some light on.<br><br>In the default configuration when someone would query our server for a CNAME record the server would return SERVFAIL + the CNAME record. In the logs we would see:<br>
<br>  Not authoritative for '<a href="http://some.other.name.com" target="_blank">some.other.name.com</a>', sending servfail<br>
<br>Where <a href="http://some.other.name.com" target="_blank">some.other.name.com</a> is the content of the CNAME record. What's bizarre is that in many cases the UDP packet appears to be truncated [1]. In order<br>
to stop this behavior we set --send-root-referral=lean in pdns.conf and now we receive a NOERROR response [2]. It seems like we may still have something<br>

misconfigured as what I think we really want is [3], a NOERROR without the root referral records. Can someone help us figure out if we've done the best<br>we can or if we should be doing something else to ensure that basic CNAME responses return NOERROR responses that fit in a UDP packet? Is there<br>
<br>Thanks in advance for any assistance.<br><br>Sincerely,<br>Anthony Eden<br><br><br>[1] Example of truncated response and TCP mode retry<br><br>
$ dig @<a href="http://ns3.dnsimple.com" target="_blank">ns3.dnsimple.com</a> <a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a><br>
;; Warning: Message parser reports malformed message packet.<br>;; Truncated, retrying in TCP mode.<br><br>; <<>> DiG 9.6.0-APPLE-P2 <<>> @<a href="http://ns3.dnsimple.com" target="_blank">ns3.dnsimple.com</a> <a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a><br>


; (1 server found)<br>;; global options: +cmd<br>;; Got answer:<br>;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 22307<br>;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0<br>;; WARNING: recursion requested but not available<br>


<br>;; QUESTION SECTION:<br>;<a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a>. IN A<br><br>;; ANSWER SECTION:<br><a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a>. 3600 IN CNAME<br>


<a href="http://production.s3.rubygems.org.s3.amazonaws.com" target="_blank">production.s3.rubygems.org.s3.amazonaws.com</a>.<br><br>;; Query time: 416 msec<br>;; SERVER: 66.220.0.169#53(66.220.0.169)<br>;; WHEN: Thu Jan 27 17:21:49 2011<br>


;; MSG SIZE  rcvd: 101<br><br><br>[2] Current response<br><br>$ dig @<a href="http://ns3.dnsimple.com" target="_blank">ns3.dnsimple.com</a> <a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a><br>

<br>; <<>> DiG 9.6.0-APPLE-P2 <<>> @<a href="http://ns3.dnsimple.com" target="_blank">ns3.dnsimple.com</a> <a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a><br>


; (1 server found)<br>;; global options: +cmd<br>;; Got answer:<br>;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38917<br>;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 0<br>;; WARNING: recursion requested but not available<br>


<br>;; QUESTION SECTION:<br>;<a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a>. IN A<br><br>;; ANSWER SECTION:<br><a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a>. 3600 IN CNAME<br>


<a href="http://production.s3.rubygems.org.s3.amazonaws.com" target="_blank">production.s3.rubygems.org.s3.amazonaws.com</a>.<br><br>;; AUTHORITY SECTION:<br>. 518400 IN NS <a href="http://a.root-servers.net" target="_blank">a.root-servers.net</a>.<br>

. 518400 IN NS <a href="http://b.root-servers.net" target="_blank">b.root-servers.net</a>.<br>
. 518400 IN NS <a href="http://c.root-servers.net" target="_blank">c.root-servers.net</a>.<br>. 518400 IN NS <a href="http://d.root-servers.net" target="_blank">d.root-servers.net</a>.<br>. 518400 IN NS <a href="http://e.root-servers.net" target="_blank">e.root-servers.net</a>.<br>


. 518400 IN NS <a href="http://f.root-servers.net" target="_blank">f.root-servers.net</a>.<br>. 518400 IN NS <a href="http://g.root-servers.net" target="_blank">g.root-servers.net</a>.<br>. 518400 IN NS <a href="http://h.root-servers.net" target="_blank">h.root-servers.net</a>.<br>


. 518400 IN NS <a href="http://i.root-servers.net" target="_blank">i.root-servers.net</a>.<br>. 518400 IN NS <a href="http://j.root-servers.net" target="_blank">j.root-servers.net</a>.<br>. 518400 IN NS <a href="http://k.root-servers.net" target="_blank">k.root-servers.net</a>.<br>


. 518400 IN NS <a href="http://l.root-servers.net" target="_blank">l.root-servers.net</a>.<br>. 518400 IN NS <a href="http://m.root-servers.net" target="_blank">m.root-servers.net</a>.<br><br>;; Query time: 203 msec<br>;; SERVER: 66.220.0.169#53(66.220.0.169)<br>


;; WHEN: Thu Jan 27 17:39:21 2011<br>;; MSG SIZE  rcvd: 312<br><br><br>[3]<br><br>; <<>> DiG 9.6.0-APPLE-P2 <<>> @<a href="http://ns3.dnsimple.com" target="_blank">ns3.dnsimple.com</a> <a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a><br>


; (1 server found)<br>;; global options: +cmd<br>;; Got answer:<br>;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38917<br>;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 0<br>;; WARNING: recursion requested but not available<br>


<br>;; QUESTION SECTION:<br>;<a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a>. IN A<br><br>;; ANSWER SECTION:<br><a href="http://production.s3.rubygems.org" target="_blank">production.s3.rubygems.org</a>. 3600 IN CNAME<br>


<a href="http://production.s3.rubygems.org.s3.amazonaws.com" target="_blank">production.s3.rubygems.org.s3.amazonaws.com</a>.<br><br>;; Query time: 203 msec<br>;; SERVER: 66.220.0.169#53(66.220.0.169)<br>;; WHEN: Thu Jan 27 17:39:21 2011<br>


;; MSG SIZE  rcvd: 312<br><br>--<br><a href="http://anthonyeden.com" target="_blank">http://anthonyeden.com</a> | twitter: @aeden | skype: anthonyeden<br>