Hi,

On 16.04.24 19:09, Jacob Bunk Nielsen via dnsdist wrote:
Hi

Andreas Wili via dnsdist <dnsdist@mailman.powerdns.com> writes:

I have dnsdist deployed centrally to route DNS queries to various backends:
[...]
In this setup, I use caching as follows:
cache_all_queries = newPacketCache(2000000, {maxTTL=86400, minTTL=0,
temporaryFailureTTL=60, staleTTL=60})
getPool(""):setCache(cache_all_queries)

I would now need to disable caching for certain servers that issue a DNS query. 
Is there a
rule for this or any other option?

Do you mean that you do not want to cache responses from e.g.
"backend2"? Then you can try something like:

-- Configure backends in separate pools
newServer({
     address='192.168.100.10',
     name='backend1',
     pool='use_cache_pool'
})
newServer({
     address='192.168.100.20',
     name='backend2',
     pool='no_cache_pool'
})

-- Create cache
cache_all_queries = newPacketCache(2000000,
                                    {maxTTL=86400,
                                     minTTL=0,
                                     temporaryFailureTTL=60,
                                     staleTTL=60})
-- Set cache for the "use_cache_pool"
getPool('use_cache_pool'):setCache(cache_all_queries)

-- route requests to your two pools, this will route ~50% to the pool
-- using cache and the remaining queries to your no_cache_pool.
-- You probably want something else, but I can't guess what.
AddAction(ProbaRule(0.5), PoolAction('use_cache_pool'))
AddAction(AllRule(), PoolAction('no_cache_pool'))

If it's something else you wish to achieve, then please describe in more
words, e.g. with an example.

Best regards,
Jacob
_______________________________________________
dnsdist mailing list
dnsdist@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/dnsdist

dnsdist has been installed on the server with the IP address
192.168.100.4 and configured with the specified configuration.

All other servers in the network have been configured to use this server
as their resolver in /etc/resolv.conf:

# /etc/resolv.conf
nameserver 192.168.100.4

In general, DNS resolution via dnsdist works based on the configured
backends.

Now, there are two servers on the network for which all DNS queries must
not be cached.

The question is whether a rule can be defined to exclude queries from
these two servers based on their IP addresses from being cached. If
caching cannot be disabled for specific source IP addresses using a
rule, then the only option is to define another backend where caching is
not active, right?

I hope I was able to describe the issue more clearly now.

Best regards,
Andreas

_______________________________________________
dnsdist mailing list
dnsdist@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/dnsdist

Reply via email to