[Pdns-users] CNAME confusion?!
Andreas Mimz
dnsadmin at kos2.de
Sat Jan 15 14:53:12 UTC 2005
bert hubert wrote:
>Can you try this patch? It is entirely untested, but it might solve the
>problem. Wiebren, your problem too I think.
>
>Index: packethandler.cc
>===================================================================
>--- packethandler.cc (revision 276)
>+++ packethandler.cc (working copy)
>@@ -154,7 +154,7 @@
> DNSResourceRecord rr;
>
> if (p->qclass == 3 && p->qtype.getName() == "HINFO") {
>- rr.content = "PowerDNS $Id: packethandler.cc,v 1.27 2005/01/11 19:41:11 ahu Exp $";
>+ rr.content = "PowerDNS $Id$";
> rr.ttl = 5;
> rr.qname=target;
> rr.qtype=13; // hinfo
>@@ -174,7 +174,7 @@
> const string mode=arg()["version-string"];
> if(p->qtype.getCode()==QType::TXT && target=="version.bind") {// TXT
> if(mode.empty() || mode=="full")
>- rr.content="Served by POWERDNS "VERSION" $Id: packethandler.cc,v 1.27 2005/01/11 19:41:11 ahu Exp $";
>+ rr.content="Served by POWERDNS "VERSION" $Id$";
> else if(mode=="anonymous") {
> r->setRcode(RCode::ServFail);
> return 1;
>@@ -353,8 +353,9 @@
> B.lookup(QType(QType::ANY),target,p);
>
> bool shortcut=p->qtype.getCode()!=QType::SOA && p->qtype.getCode()!=QType::ANY;
>-
>+ unsigned hits=0;
> while(B.get(rr)) {
>+ hits++;
> if(!rfound && rr.qtype.getCode()==QType::CNAME) {
> found=true;
> r->addRecord(rr);
>@@ -365,7 +366,7 @@
> r->addRecord(rr);
> }
> }
>- if(rfound)
>+ if(hits || rfound)
> return 1; // ANY lookup found the right answer immediately
>
> if(found) {
>
>
>
>
Hmm the patch didn't work :-( ... same problem! But I'm now not quite
sure if it's really a problem from the nameserver...
If I do a "dig vbox.yavo.net AAAA @ns2.sk1.net" for example, I get this
result,
;; QUESTION SECTION:
;vbox.yavo.net. IN AAAA
;; ANSWER SECTION:
vbox.yavo.net. 86400 IN CNAME home.yavo.net.
home.yavo.net. 60 IN CNAME yavo.net.
;; AUTHORITY SECTION:
yavo.net. 86400 IN SOA ns1.sk1.net.
dnsadmin.sk1.net. 2004121601 10800 3600 604800 86400
so when I open my browser at the office and open vbox.yavo.net, the
nameserver of the office does an AAAA question first (I don't know for
what reason), and then the client machine where I'm sitting knows
already that vbox.yavo.net is an CNAME for home.yavo.net and
home.yavo.net is an CNAME for yavo.net (which is not correct!!!!). The
client machine then asks the nameserver only for the A record for
yavo.net. so the CNAME loop (that's in makeCanonic(), isn't it?) should
stop if there's an A-Record if I'm asking for an AAAA Record and other
way round. That would explain why it does work sometimes and why it
doesn't... because If I'm at home or at a friend the local nameserver
sends an A-question for vbox.yavo.net, and that's where it gets the
correct answer.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: question2.txt
URL: <http://mailman.powerdns.com/pipermail/pdns-users/attachments/20050115/69c2ef36/attachment.txt>
More information about the Pdns-users
mailing list