
Estou executando o dnsmasq 2.90 dentro de um contêiner docker baseado no Debian 11.0 como parte do Pi-hole 5.18.2.
Gostaria de configurar o dnsmasq para servir os endereços dos meus nomes de hosts locais para vários domínios locais (ambos .local e .subdomain.mydomain.com), pois um aplicativo local possui o domínio .local codificado. Só posso fazer funcionar para um domínio por vez.
Este contêiner fornece serviços DNS e DHCP para minhas redes locais. Como parte da configuração do Pi-hole addn-hosts=/etc/pihole/local.list
é adicionado ao .conf
arquivo montado em /etc/dnsmasq.d
. Esta lista contém uma lista de aproximadamente 30 endereços IP de sub-redes e nomes de host locais e acessíveis localmente, como:
192.168.1.10 server01
192.168.2.20 server02
100.115.x.x server03
dnsmasq está servindo o domínio de pesquisa local sobre DHCP conforme especificado domain=subdomain.mydomain.com
e dhcp-option=option:domain-search.subdomain.mydomain.com
em arquivos de configuração separados montados em /etc/dnsmasq.d
, bem como definido como um domínio local com local=/subdomain.mydomain.com/
.
Este domínio de pesquisa, assim como o IP do servidor DNS, é aceito e implementado conforme esperado pelos meus clientes:
❯ cat /etc/resolv.conf
…
search subdomain.mydomain.com
nameserver 192.168.2.2
Um nslookup
nome de host funciona addn-hosts
conforme o esperado, adicionando o sufixo de pesquisa e retornando o resultado correto:
❯ nslookup
> server01
Server: 192.168.2.2
Address: 192.168.2.2#53
Name: server01.subdomain.mydomain.com
Address: 192.168.1.10
Gostaria de retornar o mesmo IP para server01.local:
> server01.local
Server: 192.168.2.2
Address: 192.168.2.2#53
** server can't find server01.local: NXDOMAIN
Tentei adicionar local aos arquivos .config local=/subdomain.mydomain.com/local/
com e sem entradas domain=/subdomain.mydomain.com/local/
separadas . domain=subdomain.mydomain.com
domain=local
Isso não altera o comportamento ou (se eu adicionar as duas domain=
entradas) o nslookup funciona for .local
e não for .subdomain.mydomain.com
.
Como posso fazer com que o dnsmasq responda com o IP do nome do host para ambos .local
os .subdomain.mydomain.com
domínios?
Responder1
Para qualquer um que descubra isso no futuro, a resposta (como costuma acontecer) é que eu estava sendo estúpido.
.local é reservado para mDNSe assim, ao dizer ao meu dispositivo dnsmasq para tentar resolver .local e anunciar sua capacidade de resolver .local, eu estava quebrando o mDNS. Também estava testando a resolução usando o nslookup, que não resolve consultas mDNS.
Removendo todas as referências a .local no dnsmasq, reiniciando os serviços e atualizando as concessões de DHCP e testando a resolução .local por meio de um ping, está funcionando.