[Pdns-users] Recursive Weirdness (Was: 2.9.4 -> 2.9.8 breakage)
Damian Gerow
damian at sentex.net
Wed Jul 30 16:38:06 UTC 2003
Thus spake Damian Gerow (damian at sentex.net) [09/06/03 13:40]:
> I have recursion enabled in pdns, using an external recurser. I allow
> recursion from two networks. If I do a recursive lookup from a host outside
> of these two networks, it fails, *unless* the address is in the pdns cache,
> then it reports back happily.
>
> Can anyone at least confirm that they are seeing the same behaviour / not
> seeing the same behaviour?
Okay, I have successfully shown that this is not the same behaviour as in
2.9.10 (I just updated yesterday).
To recap:
I have a PowerDNS server that supports recursive queries, using a dnscache
installation (from djbdns) on an RFC1918 network to do the lookups.
If I did a lookup from external, from a host that is /not/ in my
allow_recursion statement, it did not work *only* if the address was not
already in the cache. If the desired record was *in* the cache, pdns would
have returned it happily.
Until yesterday.
Now, to make things even *more* complicated, it looks like if I try a
recursive lookup from external, I can no longer do a recursive lookup from
internal for the same record. However, external lookups for cached addresses
are treated properly at this point (ignored).
To explain visually...
>From pdns.conf:
#################################
# allow-recursion List of netmasks that are allowed to recurse
#
allow-recursion=127.0.0.0/8,172.16.0.0/24,10.9.22.0/24
I do a query from a host /not/ in those networks:
% hostname
granite.sentex.ca
% host -t a granite.sentex.ca
granite.sentex.ca has address 199.212.134.1
% host www.microsoft.com 64.7.134.90
Using domain server 64.7.134.90:
Host not found, try again.
%
Then a query from a host that /is/ in those networks:
% hostname
pandora.afflictions.org
% host -t a pandora.afflictions.org
pandora.afflictions.org has address 10.9.22.21
% host www.microsoft.com 10.9.22.8
Using domain server 10.9.22.8:
Host not found, try again.
%
(Where 10.9.22.8 is one of the RFC1918 interfaces on the same machine as
64.7.134.90.)
Then I stop and start pdns on the server, and try again:
% host www.microsoft.com 10.9.22.8
Using domain server 10.9.22.8:
www.microsoft.com is a nickname for www.microsoft.akadns.net
www.microsoft.akadns.net has address 207.46.249.190
www.microsoft.akadns.net has address 207.46.134.155
www.microsoft.akadns.net has address 207.46.134.222
www.microsoft.akadns.net has address 207.46.249.222
www.microsoft.akadns.net has address 207.46.134.190
%
Am I *completely* cracked? Is my pdns installation so messed up that
someone can effectively (and easily) DoS any recursive functionality I may
want? Or is this in all 2.9.10 installations?
Here's the appropriate log entries:
Jul 30 12:31:57 ns pdns[76112]: Not authoritative for 'microsoft.com', sending servfail to 199.212.134.1 (recursion was desired)
Jul 30 12:31:57 ns last message repeated 2 times
Jul 30 12:31:57 ns pdns[76112]: Not authoritative for 'microsoft.com.sentex.net', sending servfail to 199.212.134.1 (recursion was desired)
Jul 30 12:31:58 ns pdns[76112]: Not authoritative for 'microsoft.com.sentex.net', sending servfail to 199.212.134.1 (recursion was desired)
Jul 30 12:31:58 ns pdns[76112]: Not authoritative for 'microsoft.com.sentex.net', sending servfail to 199.212.134.1 (recursion was desired)
Jul 30 12:31:58 ns pdns[76112]: Not authoritative for 'microsoft.com.sentex.ca', sending servfail to 199.212.134.1 (recursion was desired)
And yes, this is completely reproducible at will.
More information about the Pdns-users
mailing list