1. dnsmasq e o Network Manager
Como você mesmo, a partir de alguns dias no futuro: sua compreensão está correta.
Observe, no entanto, que o Network Manager inicia uma instância de dnsmasq como um processo filho (não um daemon separado) e mantém seu próprio conjunto de configurações do dnsmasq.
2. Posso ver como dnsmasq está lidando com uma determinada pesquisa de DNS?
Desculpe, ainda não sei.
3. Posso instruir dnsmasq a usar um servidor DNS específico para o domínio local?
Sim, a opção --server em dnsmasq ( manpage aqui ) permite que você especifique servidores DNS upstream para domínios específicos.
Você pode passar essa opção para a invocação do dnsmasq pelo Network Manager. Eu fiz isso criando um arquivo no diretório /etc/NetworkManager/dnsmasq.d/ com o conteúdo:
server=//192.168.0.1
Normalmente, esta linha seria server=/domain/<ipaddr> ; Nesse caso, a especificação de domínio vazia significa "somente nomes não qualificados", como localserver em seu exemplo (em oposição a localserver.domain ).
Como consertei seu problema imediato
A alteração acima ainda não corrigiu as coisas. Eu verifiquei que isso foi carregado ( service NetworkManager status mostra uma entrada de log dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names ), mas ainda retorna NXDOMAIN em pesquisas. Então resolvi o seguinte hack:
As máquinas locais às quais estou me conectando têm IPs estáticos, então eu as especifiquei manualmente em um arquivo em /etc/NetworkManager/dnsmasq.d com o conteúdo:
address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]