Haga que dnsmasq resuelva múltiples dominios desde nombres de host locales

Haga que dnsmasq resuelva múltiples dominios desde nombres de host locales

Estoy ejecutando dnsmasq 2.90 dentro de un contenedor acoplable basado en Debian 11.0 como parte de Pi-hole 5.18.2.

Me gustaría configurar dnsmasq para que proporcione las direcciones de mis nombres de host locales para múltiples dominios locales (tanto .local como .subdomain.mydomain.com) ya que una aplicación local tiene el dominio .local codificado. Sólo puedo hacerlo funcionar para un dominio a la vez.

Este contenedor proporciona servicios DNS y DHCP para mis redes locales. Como parte de la configuración de Pi-hole, addn-hosts=/etc/pihole/local.listse agrega al .confarchivo montado en /etc/dnsmasq.d. Esta lista contiene una lista de ~30 direcciones IP de subredes y nombres de host locales y accesibles localmente, como por ejemplo:

192.168.1.10 server01
192.168.2.20 server02
100.115.x.x server03

dnsmasq sirve el dominio de búsqueda local a través de DHCP, tal como se especifica en domain=subdomain.mydomain.comy dhcp-option=option:domain-search.subdomain.mydomain.comen archivos de configuración separados montados en /etc/dnsmasq.d, así como también configurado como dominio local con local=/subdomain.mydomain.com/.

Este dominio de búsqueda, así como la IP del servidor DNS, es aceptado e implementado según lo esperado por mis clientes:

❯ cat /etc/resolv.conf
search subdomain.mydomain.com
nameserver 192.168.2.2

A nslookupde un nombre de host en addn-hostsproceso como se esperaba, agregando el sufijo de búsqueda y devolviendo el resultado correcto:

❯ nslookup
> server01
Server:     192.168.2.2
Address:    192.168.2.2#53

Name:   server01.subdomain.mydomain.com
Address: 192.168.1.10

Me gustaría devolver la misma IP para server01.local:

> server01.local
Server:     192.168.2.2
Address:    192.168.2.2#53

** server can't find server01.local: NXDOMAIN

Intenté agregar archivos locales a los archivos .config local=/subdomain.mydomain.com/local/con y sin entradas domain=/subdomain.mydomain.com/local/separadas . domain=subdomain.mydomain.com domain=localEsto no cambia el comportamiento o (si agrego las dos domain=entradas) nslookup funciona para .localy no para .subdomain.mydomain.com.

¿Cómo puedo hacer que dnsmasq responda con la IP del nombre de host para ambos .localdominios .subdomain.mydomain.com?

Respuesta1

Para cualquiera que encuentre esto en el futuro, la respuesta (como suele ser el caso) es que estaba siendo estúpido.

.local está reservado para mDNSy así, al decirle a mi dispositivo dnsmasq que intentara resolver .local y anunciara su capacidad para resolver .local, estaba rompiendo mDNS. También estuve probando la resolución usando nslookup, que no resuelve consultas mDNS.

Al eliminar todas las referencias a .local en dnsmasq, reiniciar los servicios, actualizar las concesiones de DHCP y probar la resolución de .local mediante un ping, está funcionando.

información relacionada