On 26/11/13 09:45, Nishant Rajvanshi wrote:
We are using dnsmasq as a proxy/caching server for our network. We need a
couple of customizations in dnsmasq  for our network:

1) To be able to control the  TTLs for certain IPs which are returned using
aliases.

so for e.g if I had an alias=1.2.3.4,5.6.7.8

I want to modify the TTL when received IP was 1.2.3.4, or the returned IP
is 5.6.7.8

So, basically, i want to control the TTL for specific requests.


2) Sometimes, the responses returned by upstream servers are large. For.e.g
a request for google.com from a client would results in 10-12 IPs being
returned by the upstream server. We need to capture the response and be
able to return just 1 or 2 ips to the client. This is required to reduce
the caching of excess data and also reduce network traffic and DNS failures
on a busy network.

Please suggest how this can be done. I'm not a C programmer, but if someone
can give us pointers for the changes (files/functions etc), I can attempt
to make them.




For 1) you need to look at the function do_doctor() in src/rfc1035.c, it should be fairly simple to do.

for 2), I'd think quite hard if you really want to solve the problem that way, it sounds like a bit of a hack to me. If you do, I'd continue to cache all the data, but limit the number of replies _when_answering_from_the_cache. That way you'll still round-robin through all the possible replies. Look in answer_request for the loop which calls cache_find_by_name() and exit the loop after a few addresses have been retrieved.


Cheers,

Simon.



_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss

Reply via email to