<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <br>
    <br>
    <div class="moz-cite-prefix">On 23/09/2021 17:43, Michael wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:71c308d7-8381-08ca-a385-7cb04dda764f@kmaclub.com">
      <pre class="moz-quote-pre" wrap="">On 9/23/21 04:35, Petr Menšík wrote:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Hi Hubert,

it may work, if you would run two dnsmasq instances. One for children
with OpenDNS as upstream servers, another for everyone else.

default instance:

bind-interfaces
listen-address=10.1.0.1
server=8.8.8.8
domain=home.arpa
dhcp-option=option:dns-server,10.1.0.1,8.8.8.8
dhcp-option=tag:child,option:dns-server:10.1.0.2,208.67.222.123
...

children instance:

bind-interfaces
listen-address=10.1.0.2
server=208.67.222.123
server=/home.arpa/10.1.0.1

Because the second instance would forward local domain to main instance,
which also registers dhcp, they should be able to resolve any local
names. But other names would be served by different server.

Children might have reserved different address range, but it might be
handy to be on shared broadcast link. Good for link-local address
resolution and easy local games setup. Not sure it is relevant anymore.

Not sure if 10.1.0.2 can be on the same interface as 10.1.0.1. It would
work fine with just DNS, but I think dhcp requires interface=eth0 or
similar. Which would block the second instance from working correctly. I
think alternative address would have to be on different interface.

</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
I do almost exactly this so I can confirm it works.


I have one machine running docker.   On that machine, I run two 
containers with their own IP addresses (macvlan).    .1 for the primary 
including DHCP pointing to my main DNS.   Then the .2 version that 
points to the safe DNS, but relays local name queries (and reverse) over 
to the .1.


Then in config as you highlighted above, I point the child machines to 
the .2 and everything else to .1.


It would be nice if you could use tags to point to different DNS 
servers, but until that is an option, this works.

Michael
</pre>
    </blockquote>
    <br>
    I think using different upstream servers based on the requesting
    client would be a problem because that would mean the same query
    would get different results.  That would appear to be what you would
    like to see (IIUC), but you then have all sorts of issues with the
    caches - there would need to be separate caches for separate
    tag-selected servers, with all the complexity involved in managing
    that.<br>
    <br>
    Since running multiple copies of dnsmasq for DNS can be done on
    separate IPs (I suggest with only one of them serving DHCP) I would
    tend to go with that rather than adding multiple-cache complexity.<br>
    <br>
    Regards,<br>
    <br>
    Geoff.<br>
    <br>
    <blockquote type="cite"
      cite="mid:71c308d7-8381-08ca-a385-7cb04dda764f@kmaclub.com">
      <pre class="moz-quote-pre" wrap="">


_______________________________________________
Dnsmasq-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Dnsmasq-discuss@lists.thekelleys.org.uk">Dnsmasq-discuss@lists.thekelleys.org.uk</a>
<a class="moz-txt-link-freetext" href="https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss">https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Geoff Back
What if we're all just characters in someone's nightmares?</pre>
  </body>
</html>