
Ich verwende dnsmasq 2.90 in einem auf Debian 11.0 basierenden Docker-Container als Teil von Pi-hole 5.18.2.
Ich möchte dnsmasq so konfigurieren, dass die Adressen meiner lokalen Hostnamen für mehrere lokale Domänen (sowohl .local als auch .subdomain.mydomain.com) bereitgestellt werden, da eine lokale Anwendung die .local-Domäne fest codiert hat. Ich kann es nur für eine Domäne gleichzeitig zum Laufen bringen.
Dieser Container stellt DNS- und DHCP-Dienste für meine lokalen Netzwerke bereit. Als Teil der Pi-Hole-Einrichtung addn-hosts=/etc/pihole/local.list
wird der .conf
unter gemounteten Datei Folgendes hinzugefügt /etc/dnsmasq.d
. Diese Liste enthält eine Liste von ca. 30 IP-Adressen aus lokalen und lokal zugänglichen Subnetzen und Hostnamen, wie zum Beispiel:
192.168.1.10 server01
192.168.2.20 server02
100.115.x.x server03
dnsmasq stellt die lokale Suchdomäne über DHCP bereit, sowohl wie in domain=subdomain.mydomain.com
und dhcp-option=option:domain-search.subdomain.mydomain.com
in separaten, unter gemounteten Konfigurationsdateien angegeben /etc/dnsmasq.d
, als auch wie mit als lokale Domäne festgelegt local=/subdomain.mydomain.com/
.
Diese Suchdomäne sowie die IP des DNS-Servers werden von meinen Clients wie erwartet akzeptiert und umgesetzt:
❯ cat /etc/resolv.conf
…
search subdomain.mydomain.com
nameserver 192.168.2.2
A nslookup
eines Hostnamens funktioniert addn-hosts
wie erwartet, fügt das Suchsuffix hinzu und gibt das richtige Ergebnis zurück:
❯ nslookup
> server01
Server: 192.168.2.2
Address: 192.168.2.2#53
Name: server01.subdomain.mydomain.com
Address: 192.168.1.10
Ich möchte die gleiche IP für server01.local zurückgeben:
> server01.local
Server: 192.168.2.2
Address: 192.168.2.2#53
** server can't find server01.local: NXDOMAIN
Ich habe versucht, local zu den .config-Dateien hinzuzufügen, local=/subdomain.mydomain.com/local/
sowohl mit als auch ohne domain=/subdomain.mydomain.com/local/
und separate domain=subdomain.mydomain.com
domain=local
Einträge. Dies ändert entweder nichts am Verhalten, oder (wenn ich die beiden domain=
Einträge hinzufüge) funktioniert nslookup dann für .local
und nicht für .subdomain.mydomain.com
.
Wie kann ich dnsmasq dazu bringen, mit der Hostnamen-IP für beide .local
Domänen zu antworten .subdomain.mydomain.com
?
Antwort1
Die Antwort für jeden, der dies in Zukunft findet (wie so oft), ist: Ich war dumm.
.local ist für mDNS reserviertund indem ich meinem dnsmasq-Gerät sagte, es solle versuchen, .local aufzulösen und seine Fähigkeit zur Auflösung von .local anzukündigen, unterbrach ich mDNS. Ich testete die Auflösung auch mit nslookup, das mDNS-Abfragen nicht auflöst.
Indem ich alle Verweise auf .local in dnsmasq entferne, die Dienste neu starte, die DHCP-Leases aktualisiere und die .local-Auflösung durch einen Ping teste, funktioniert es.