Hallo miteinander,
ich bräuchte mal Hilfe bei einer etwas komplizierteren Konfiguration. Mein LAN wird derzeit noch komplett (DHCP, DNS) von einem Windows Server verwaltet. Da ich jetzt pi-hole auf einem RPI3 nutzen möchte, wollte ich auch gleich die komplette DHCP/DNS-Verwaltung umziehen. Was sich wegen paar Besonderheiten aber etwas schwieriger gestaltet. Unter Windows läuft alles wie hier beschrieben. Ich denke mal das ganze sollte ich 1:1 nach Linux umziehen können. Frage ist nur noch: Wie?
Ich habe ca. 40 IP-Devices im LAN. Da manche Geräte doppelt sind (Laptop per LAN und WLAN), musste ich beim DNS etwas "tricksen" und habe das ganze so aufgebaut:
- .lan
- .wlan
- .air
- .plc
Das möchte ich auch beibehalten. Dazu kommt das ich ein paar Subdomains (Apache VHosts trennt diese dann) meiner Webdomain Lokal nutze (CNAME auf den DDNS-Namen @ Provider-DNS-Konfig). Ist ja eigentlich kein Problem und hat erstmal nichts mit Pi-Hole zu tun. ABER... ich möchte diese Domains auch nutzen können, wenn Internet mal down ist. Ich benötige also LOKAL eine anderen Namensauflösung.
dienst1.meinedomain.tld = im LAN: lokale-ip, vom WAN aus: meine dynamische IP vom Provider zugewiesen
dienst2.meinedomain.tld = im LAN: lokale-ip, vom WAN aus: meine dynamische IP vom Provider zugewiesen
dienst3.meinedomain.tld = im LAN: lokale-ip, vom WAN aus: meine dynamische IP vom Provider zugewiesen
Bei allen HOSTNAMEN soll halt die Auflösung in beide Richtungen funktionieren: nslookup IP = hostname, nslookup hostname = IP.
Bei den TLDs die ich oben nannte (lan, wlan, air, plc) kommt erschwerend hinzu das die in den IP-Ranges auch vermischt sind. LAN-Block, dann WLAN, dann noch mal LAN, dann AIR, dann PLC und dann noch mal LAN (grob)
Fast alle Geräte sollen die Zuweisung per statisches DHCP bekommen. 2-3 Geräte haben ihre IP fest im Gerät abgespeichert (wobei die MAC mit IP trotzdem im DHCP ist - falls ich auf dem System mal was anderes installiere etc - hat das System zumindest direkt schon mal eine IP). EIN Endgerät darf NICHT den Pi-Hole als DNS-Server bekommen, da das Gerät nur mit dem Provider-DNS funktioniert (Entertain-Receiver; kein Umschalten etc. mehr möglich)
Ich finde im Netz einige dnsmasq-Beispielkonfigurationen - aber die basieren alle auf einfache Netze. Das hilft mir nicht.
Ich weiß halt nicht wie ich folgendes Löse:
Zumindest die DHCP-Geschichte muß ich über eine eigene Konfig in /etc/dnsmasq.d/ lösen. 1_dhcp.conf
Kleine Anmerkung zu meinem Beispiel: ich nutze eine 24er Subnetmaske um Platz zu haben um das Netz in "Blöcke-nach-Anwendungsgebit" aufzuteilen (keine Subnetze!). Server und Desktop liegen z.b. nicht im gleichen Block. WLAN-Geräte die auch LAN haben, liegen 50 IPs höher (1 = Laptop-Lan, 101 = Laptop-WLAN). IP-Bereiche die NULL genutzt werden, tauchen in keiner range auf (also unter Windows-DHCP-Server): 1-3 sind Desktops. 10-15 sind mobile devices. 4-9 existiert dann nicht. Weiter oben hab ich eine 5er Range für alles was ich nicht kenne, aber eine IP haben darf [Gäste; neue Geräte für Erstkonfiguration]....
Konfigmässig bin ich bereits so weit:
[beispielhaft umschrieben]
dhcp-range=[Range 1-3]
dhcp-host=[MAC,hostname,ip,leasedauer: infinite] für jeden host in dieser Range
dhcp-option=[3,42,6 für Gateway, DNS, NTP],[IP] [3 Zeilen natürlich]
Jetzt ist aber DHCP-OPTION für jede 39 von 40-IP-Adressen IDENTISCH. Macht dann ja keinen sinn das immer wieder zu schreiben. Gibt es hier eine Reihenfolge? Wenn ich das in die ersten Zeile der Konfig setze = Global für alle Adressen? Oder muß ich das für jede RANGE (7-8 sind es glaub ich) machen? Wäre ja auch etwas ineffektiv. Unter Windows setze ich einmal einen Standard - also diese 3 Optionen. Jeder DHCP-Eintrag nutzt jetzt diese 3 Optionen (egal welche Range) - außer ich trage händisch für einen Eintrag etwas anderes an (was ich bei dem Entertain-Receiver machen muß: T-Online-DNS)
dhcp-host=[MAC,hostname,ip,leasedauer: infinite]`
Was ist hier der "hostname"? Für meinen Home-Webserver hab ich 4 Hostnamen (homeserver.lan, dienst1.meinedomain.tld bis dienst3.meinedomain.tld). Trage ich hier "homeserver" ein oder "homeserver.lan"? Wo definiere ich die anderen? Und somit auch die anderen TLDs wie LAN, WLAN, AIR, PLC.
Ich lese da leicht verwirrendes in punkte DNS ... /etc/hosts ... dort eintragen - aber soweit ich weiß ist diese Datei nur lokal. Mache ich also auf einem Client im LAN ein NSLOOKUP auf homeserver.lan - kütt nix. Oder tickt Linux hier anders?
Ich finde oft mal dieses Beispiel für in /etc/dnsmasq.d/
address=/dev/127.0.0.1
Ich könnte mir also jetzt eine Datei erstellen:
lan.conf
address=/homeserver.lan/[IPAdresse]
address=/gamemachine.lan/[IPAdresse]
address=/laptop.lan/[IPAdresse]
wlan.conf
address=/laptop.wlan/[IPAdresse+50]
sonstiges.conf
cname=dienst1.meinedomain.tld,homeserver.lan
cname=dienst2.meinedomain.tld,homeserver.lan
address=/ichhabeetwasgegendiesedomain.com/127.0.0.1
Dazu käme jeweils noch der PTR-Record für Reverse-DNS
ptr-record=[IP-Rückwärts].in-addr.arpa,homeserver.lan
Fehlt noch was? Ist das überhaupt richtig?
Ich würde also für eine übersichtliche Konfiguration mehrere Dateien in /etc/dnsmasq.d/ liegen haben.
1_dhcp.conf
2_dns_lan.conf
3_dns_wlan.conf
Wenn ich was ändern muss, könnte ich einfach fix die passende Datei anspringen und danach dnsmasq neu starten.
Grüße
Wulfman