DNSmasq разрешает несколько доменов из локальных имен хостов

DNSmasq разрешает несколько доменов из локальных имен хостов

Я запускаю dnsmasq 2.90 внутри контейнера Docker на базе Debian 11.0 как часть Pi-hole 5.18.2.

Я хотел бы настроить dnsmasq для обслуживания адресов моих локальных имен хостов для нескольких локальных доменов (как .local, так и .subdomain.mydomain.com), поскольку локальное приложение имеет жестко закодированный домен .local. Я могу заставить его работать только для одного домена за раз.

Этот контейнер предоставляет DNS и DHCP-сервисы для моих локальных сетей. Как часть настройки Pi-hole addn-hosts=/etc/pihole/local.listдобавляется в .confфайл, смонтированный в /etc/dnsmasq.d. Этот список содержит список из ~30 IP-адресов из локальных и локально доступных подсетей и имен хостов, таких как:

192.168.1.10 server01
192.168.2.20 server02
100.115.x.x server03

dnsmasq обслуживает локальный домен поиска по DHCP, как указано в , так domain=subdomain.mydomain.comи dhcp-option=option:domain-search.subdomain.mydomain.comв отдельных файлах конфигурации, смонтированных в /etc/dnsmasq.d, а также настроенных как локальный домен с local=/subdomain.mydomain.com/.

Этот поисковый домен, а также IP-адрес DNS-сервера принимаются и реализуются так, как и ожидают мои клиенты:

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

Имя nslookupхоста работает addn-hosts, как и ожидалось, добавляя суффикс поиска и возвращая правильный результат:

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

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

Я хотел бы вернуть тот же IP для server01.local:

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

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

Я пробовал добавлять local в файлы .config как local=/subdomain.mydomain.com/local/с, так и без domain=/subdomain.mydomain.com/local/и отдельными domain=subdomain.mydomain.com domain=localзаписями. Это либо не меняет поведение, либо (если я добавляю две domain=записи) nslookup тогда работает для .localи не работает для .subdomain.mydomain.com.

Как сделать так, чтобы dnsmasq отвечал IP-адресом хоста для обоих .localдоменов .subdomain.mydomain.com?

решение1

Для тех, кто в будущем обнаружит это, ответ (как это часто бывает) — я был глуп.

.local зарезервирован для mDNSи поэтому, заставив мое устройство dnsmasq попытаться разрешить .local и объявив о своей способности разрешать .local, я нарушил mDNS. Я также тестировал разрешение с помощью nslookup, который не разрешает запросы mDNS.

После удаления всех ссылок на .local в dnsmasq, перезапуска служб, обновления аренды DHCP и тестирования разрешения .local с помощью ping все заработало.

Связанный контент