On Sat, Feb 29, 2020 at 10:59:23AM -0300, Salatiel Filho wrote: > On Tue, Feb 11, 2020 at 7:51 AM Simon Kelley wrote: > > On 11/02/2020 00:44, Salatiel Filho wrote: > > > I am trying to understand the behaviour of conf-dir parameter. > > > Although I am running dnsmasq inside openwrt, this is more a dnsmasq > > > question than openwrt question. > > > > > > I have conf-dir=/tmp/dnsmasq.d > > > This directory CAN contain files or not. The files, when exists, are > > > created by the init scripts of two other services (nextdns and stubby) > > > When nextdns it creates 20-nextdns.conf and send a SIGHUP to dnsmasq ( > > > reload ). The content of the conf file is: > > > > > > # cat /var/dnsmasq.d/20-nextdns.conf > > > server=127.0.0.1#5342 > > > strict-order > > > no-resolv > > > > > > From this moment on , the new requests will use nextdns server as > > > upstream (127.0.0.1 port 5432) as expected. > > > > > > Now if I start the stubby service, it will create > > > /var/dnsmasq.d/30-stubby.conf and reload dnsmasq. > > > # cat /var/dnsmasq.d/30-stubby.conf > > > server=127.0.0.1#5453 > > > strict-order > > > no-resolv > > > > > > > > > Now we have two files inside the conf-dir. > > > > > > > > > Question number 1: Since we have strict-order, what server should be > > > used? The one from the 20-nextdns.conf or the one from 30-stubby.conf > > > ? I suppose the order is alphabetical, right ? > > > > > > Now comes the odd part. If I stop nextdns, the init script will delete > > > the /var/dnsmasq.d/20-nextdns.conf and reload dnsmasq. As expected, > > > the only upstream server will be the one from 30-stubby.conf ( > > > 127.0.0.1#5453 ). BUT if i start nextdns again, it will create the > > > /var/dnsmasq.d/20-nextdns.conf again and reload dnsmasq again. But > > > now, dnsmasq will not start using the dns from 20-nextdns.conf ( > > > 127.0.0.1#5342 ). It will keep using the DNS from 30-stubby.conf ( > > > 127.0.0.1#5453). > > > > > > Question 2: Shouldn't dnsmasq on reload respect the strict-order and > > > start using the dns from 20-nextdns.conf instead of keeping using the > > > one from 30-stubby.conf ? > > > > > > Thanks! > > > > > > > > > > In all the released versions of dnsmasq, the order in which the files in > > a conf-dir are loaded is indeterminate. > > > > The next dnsmasq release changes this to alphabetic order. > > > > > > Simon. > > > > > Thanks, Simon. I found your commit at > http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2020q1/013693.html > ( > http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=ab53883c94f94958e22077c79ba1dae1850a475e > ) and patched 2.80 with it. > It appears to work, but I noticed two problems: > > The first: > I have two files in confdir: 10-stubby.conf and 20-nextdns.conf > > # cat /var/dnsmasq.d/10-stubby.conf > server=127.0.0.1#5453 > strict-order > no-resolv > > # cat /var/dnsmasq.d/20-nextdns.conf > server=127.0.0.1#5342 > strict-order > no-resolv > > > After restart dnsmasq , the log shows: > Sat Feb 29 10:50:44 2020 daemon.info dnsmasq[17671]: using nameserver > 127.0.0.1#5342 > Sat Feb 29 10:50:44 2020 daemon.info dnsmasq[17671]: using nameserver > 127.0.0.1#5453 > > The order appears to be reversed. The 127.0.0.1#5342 is being used > even though it is added by the 20-nextdns.conf ( which should be > loaded after 10-stubby.conf) > > The second problem is: > If I delete /var/dnsmasq.d/20-nextdns.conf and send a HUP signal, > dnsmasq does not notice that file was deleted and keep using > 127.0.0.1#5342. If I restart ( instead of reload/HUP) it will work as > expected. > If i send a USR1 signal ( after deletion ) I still see: > Sat Feb 29 10:56:19 2020 daemon.info dnsmasq[17671]: server 127.0.0.1#5342: > queries sent 67, retried or failed 0 > Sat Feb 29 10:56:19 2020 daemon.info dnsmasq[17671]: server 127.0.0.1#5453: > queries sent 0, retried or failed 0 > > > Atenciosamente/Kind regards, > Salatiel
From my point of view: } } } the order in which the files in a conf-dir are loaded is indeterminate. } } The next dnsmasq release changes this to alphabetic order. } did make an attempt with 1 patch on top of 2.80 } the order in which the files in a conf-dir are loaded is still indeterminate. Looks like the old version is still in use. Regards Geert Stappers -- Silence is hard to parse _______________________________________________ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss