adicionando interface=eth0
ao dnsmasq.conf, como sugerido por mosvy, resolveu o problema.
Após a reinicialização, o serviço dnsmasq está em execução, mas não responde a solicitações remotas (tentando usar "dig @ 10.0.0.1 stackexchange.com" de outra máquina). O log parece bom na minha opinião:
Aug 11 17:41:04 srvname systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Aug 11 17:41:04 srvname dnsmasq[488]: dnsmasq: syntax check OK.
Aug 11 17:41:04 srvname dnsmasq[530]: started, version 2.76 cachesize 150
Aug 11 17:41:04 srvname dnsmasq[530]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ips
Aug 11 17:41:04 srvname dnsmasq[530]: DNS service limited to local subnets
Aug 11 17:41:04 srvname dnsmasq[530]: using nameserver 208.67.222.222#53
Aug 11 17:41:04 srvname dnsmasq[530]: using nameserver 208.67.220.220#53
Aug 11 17:41:04 srvname dnsmasq[530]: read /etc/hosts - 5 addresses
Aug 11 17:41:04 srvname systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Aug 11 17:41:21 srvname dnsmasq[530]: Ignoring query from non-local network
Eu não tenho idéia de onde a última linha vem, mas ela está lá imediatamente após a reinicialização, antes de fazer qualquer coisa.
Se eu reiniciar o serviço dnsmasq, recebo as mesmas entradas de log, exceto a última linha e, em seguida, é alcançável por todas as máquinas na rede - tudo está bem.
configuração do dnsmasq:
domain-needed
bogus-priv
no-resolv
server=208.67.220.220
server=208.67.222.222
address=/homeserver.mydomain.com/10.0.0.99
A última linha é para que as máquinas na minha rede local consigam encontrar o próprio servidor usando seu nome de domínio. Meu roteador de internet não encaminhará solicitações de homeserver.mydomain.com da rede local para 10.0.0.99 por conta própria (esse é um recurso que alguns roteadores possuem e outros (como o meu) não).
Além dessa configuração, eu filtro servidores de malware de uma lista.
configuração relevante do iptables (arquivo persistente iptables):
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT
Encontrei duas soluções possíveis até agora, mas não sei como implementá-las:
SO: Debian GNU / Linux 9 (stretch)
Kernel: Linux 4.9.0-8-amd64 # 1 SMP Debian 4.9.110-3 + deb9u4 (2018-08-21) x86_64 GNU / Linux
Hardware: Asus VivoMini Intel N3000