Fügen Sie nicht automatisch alle Subdomains in die DNSMasq-Adresse ein


10

Es ist möglich, DNSMasq so zu konfigurieren, dass eine feste IP-Adresse nur für eine Anforderung für genau diese Domäne und nicht für ihre Subdomänen zurückgegeben wird. Das heißt, ich will es eine feste IP zurückzukehren , wenn die Lösung example.com, aber nicht a.example.com, b.example.comusw.

Antworten:


8
host-record=example.com,1.2.3.4

Die Manpage zu dnsmasq sagt:

--host-record = <Name> [, <Name> ....] [<IPv4-Adresse>], [<IPv6-Adresse>]
Fügen Sie dem DNS A-, AAAA- und PTR-Einträge hinzu. Dadurch werden dem DNS ein oder mehrere Namen mit zugehörigen IPv4- (A) und IPv6- (AAAA) Einträgen hinzugefügt. Ein Name kann in mehr als einem Host-Datensatz vorkommen und daher mehr als einer Adresse zugewiesen werden. Nur die erste Adresse erstellt einen PTR-Datensatz, der die Adresse mit dem Namen verknüpft. Dies ist die gleiche Regel wie beim Lesen von Hosts-Dateien. Host-Record- Optionen gelten als vor Host-Dateien gelesen, sodass ein dort erscheinender Name die Erstellung von PTR-Records verhindert, wenn er auch in der Hosts-Datei erscheint. Im Gegensatz zu Hosts-Dateien werden Namen nicht erweitert, selbst wenn expand-hosts aktiviert ist. Kurze und lange Namen können im selben Host-Datensatz erscheinen , z. --host-record = Laptop, Laptop.thekelleys.org, 192.168.0.1,1234 :: 100


Die Frage trägt das Tag "internal-dns", wobei "host-record" für external-dns, auch als maßgebliche DNS bezeichnet, gilt.
Pro Backup

Beachten Sie, dass dnsmasq Ihre überschriebene v4 zurückgibt, wenn Sie versuchen, einen vorhandenen Host-Datensatz im Internet zu übernehmen (z. B. ihn für Ihr LAN neu zu schreiben). Wenn Sie die v6-Adresse weglassen und der Host eine echte v6-Adresse im Internet hat, wird Ihre überschriebene v4 zurückgegeben Adresse als A und der echte Internet v6 AAAA-Datensatz. Geben Sie beide an, wenn Sie nicht möchten, dass v6-fähige Hosts nicht über v6 auf den realen Internet-Host "durchfallen". Ich habe archive.ubuntu.com neu geschrieben, um auf meinen lokalen Spiegel zu zeigen, und nur die v4-Adresse in meinem LAN angegeben. Es stellte sich heraus, dass es auch eine v6-Adresse hat, und ich musste sicherstellen, dass ich diese auch in dnsmasq konfiguriert habe.
schleichen

2

Wie ist Ihre Konfigurationsdatei? dnsmasq löst nur Subdomains auf, wenn Ihr Eintrag mit dot beginnt.

Beispiel: address=/.subdomain.pc01.domain.com/192.168.1.2

Wenn Sie es so haben:

address=/subdomain.pc01.domain.com/192.168.1.2

es wird auch aufgelöst asd.subdomain.pc01.domain.com:

$ host asd.subdomain.pc01.domain.com
asd.subdomain.pc01.domain.com has address 192.168.1.2

Interessanter Punkt, aber wenn Sie die Frage sorgfältig lesen, ist dies nicht das, wonach das OP gefragt hat.
Jcharaoui

1

Fügen Sie einfach einen Eintrag für diese bestimmte Domäne in die Hosts-Datei auf dem Server ein, auf dem DNSMasq ausgeführt wird


Das funktioniert nicht; DNSMasq gibt für alle Subdomains der eingegebenen Domain dieselbe feste IP zurück
Michael Mrozek

1

Aus der Manpage von dnsmasq (für --server, gilt aber auch für --address):

Spezifischere Domains haben Vorrang vor weniger spezifischen Domains. --Server = / google.com / 1.2.3.4 --server = / www.google.com / 2.3.4.5 sendet Anfragen für * .google.com an 1.2. 3.4, außer * www.google.com, das zu 2.3.4.5 geht

Die einzige Lösung, die ich sehen kann, besteht darin, stattdessen einzelne Datensätze für jede der erforderlichen Subdomänen hinzuzufügen. Offensichtlich nicht ideal, aber es ist das Beste, was dnsmasq derzeit bieten kann (das kann ich finden).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.