Lassen Sie dnsmasq mehrere Domänen aus lokalen Hostnamen auflösen

Lassen Sie dnsmasq mehrere Domänen aus lokalen Hostnamen auflösen

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.listwird der .confunter 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.comund dhcp-option=option:domain-search.subdomain.mydomain.comin 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 nslookupeines Hostnamens funktioniert addn-hostswie 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=localEinträge. Dies ändert entweder nichts am Verhalten, oder (wenn ich die beiden domain=Einträge hinzufüge) funktioniert nslookup dann für .localund nicht für .subdomain.mydomain.com.

Wie kann ich dnsmasq dazu bringen, mit der Hostnamen-IP für beide .localDomä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.

verwandte Informationen