Aufgrund der immer häufiger auftretenden DNS Fehler versuche ich hier mal etwas Licht ins Dunkle zu bringen. DNS ist kein Akt, tut keinem Weh und ist wunderbar einfach. Das kann sogar Spaß machen - weil es einem das Leben vereinfacht. Aber dennoch muss man hier wissen, was man tut.
Ich möchte auch ausdrücklich darauf hinweisen, das alles hier aufgeführte rein mein Wissen, meine Erfahrung und Meinung darstellt. Es gibt nicht DIE richtige Lösung, sondern immer viele verschiedene Wege die funktionieren und gut sind. Und bedenkt immer:
Nur weil etwas funktioniert, heißt nicht das es so richtig ist.
Zum Anfang etwas theoretisch Lektüre Aber keine Sorge, ich versuche es möglichst vereinfacht darzustellen. Der Profi staunt, der Laie wundert sich, oder wars andersrum?
------------------------------------------------------------------------------------------------------------------------------------------------
Viele kennen das Thema DNS eher von ihrem Werbeblocker wie piHole oder Adguard Home oder weil sie eine NextCloud haben und hierfür einen DynDNS Dienst nutzen. Aber selbst da wissen viele garnicht so wirklich was passiert und warum man was macht.
Was ist DNS?
DNS Steht für "Domain Name System". Ein hierarchisches System zur Auflösung von Namen zu IP Adressen (und andersherum). Letztendlich dient es einfach dazu Dienste für uns Menschen einfach Merkbar zu machen. Einen Namen wie google.de merkt man sich doch einfach als die IP Adresse dazu
DNS Funktioniert ganz simpel:
Ein DNS Server hat hinterlegt welcher Name zu welcher IP Adresse gehört bzw umgekehrt ebenso.
Beispiel:
google.de hat die IP Adresse 142.250.185.227
Wenn ich im Browser also die Adresse "google.de" eingebe bekommt mein PC über den DNS die Info das er den Server mit der Adresse 142.250.185.227 ansprechen muss. Ich sehe nur "google.de" und alles hinten dran ist mir als Mensch egal.
Das Ganze ist hierarchisch aufgebaut, es gibt Zuständigkeiten damit jeder DNS Server weiß wo er welche Anfragen nachschlagen kann.
Wie sieht das nun für euch Daheim aus?
Jeder Router ist im Standardfall bei euch Daheim der DHCP und der DNS Server. Er verteilt IP Adresse und ist der interne DNS der alle Anfragen annimmt und beantwortet oder an nächst höheren Ebene nachfragt.
Wenn ihr also in eurem WLAN die Seite google.de aufruft fragt euer Gerät den Router, dieser wiederrum schaut nach ob er selbst dafür zuständig ist und wenn nicht fragt er die nächste höhere Stelle an -> den DNS eures Internet Anbieters, bekommt von dort die Antwort und leitet diese an euer Gerät weiter
Wenn ihr jetzt einen PiHole o.Ä. aktiv habt um eure Werbung zu blocken wird nichts anderes gemacht als das der PiHole die DNS Server Funktion übernimmt und dort sind eingetragene sogenannten Upstream-Server (Nachschlage DNS Server) hinterlegt sowie Adresslisten welche zu blocken sind.
Eine geblocke Seite wird einfach bei der DNS Anfrage nicht beantwortet -> seite kann nicht aufgerufen werden.
Es ist also weniger ein Blocken sondern ein einfaches "kenn ich nicht"
Das gleiche gilt für sämtliche Anfragen IN eurem Netzwerk. Diese haben NICHTS mit dem Internet zu tun.
Einfachstes Beispiel - ich will auf die Nezwerkfreigabe von meinem NAS zugreifen:
Hierbei sendet mein PC die Anfrage "Kiwi" an seinen DNS Server und bekommt als Antwort die IP von dem Gerät wieder.
Woher weiß man jetzt welcher DNS Server zuständig ist?
Dafür gibt es Domains! Eure FritzBox beispielsweise heißt auch fritz.box und diese Verteilt der DHCP Server ebenso an all seine Clients. Somit heißen eure Geräte im Netzwerk z.B. "notebook.fritz.box"
Der Client bekommt dies Zugewiesen und stellt an alle DNS Anfragen OHNE Domain Endung automatisch diese Domain hinten dran.
Wenn ich also "kiwi" anfrage lautet die offizielle Anfrage "kiwi.fritz.box" und da die Fritzbox konfiguriert ist die sie der Haupt DNS für diese Domain ist schaut sie in ihren eigenen DNS Einträgen nach ob der Host mit dem Namen "kiwi" vorhanden ist und gibt die interne IP Adresse 192.168.178.x als Antwort zurück.
Und hier entstehen die Meisten Fehler.
- ich habe einen PiHole / Adguard und erreiche mein NAS nicht mehr
- beim Zugriff auf meine NextCloud bekomme ich ein Fehlerhaftes Zertifikat / das der FritzBox angezeigt
- Zugriffe auf die NextCloud sind sporadisch träge / langsam im internen Netz, von Außen läuft alles
Sind so ein paar Klassiker für fehlerhaftes DNS, auch eine Authentifizierung an einem Netzlaufwerk kann deswegen fehlschlagen.
Was passiert wenn ich einen piHole / Adugard einrichte zum Werbeblocken ohne weitere Konfiguration?
90% der Anleitungen gehen das Thema DNS nur Grob an und haben als Ziel wirklich NUR Werbung zu blocken, alles andere ist egal. Ihr bekommt aber früher oder später Probleme in eurem Netzwerk.
Wenn der PiHole nun als DNS Server aktiv ist werden UpStream Server eingetragen. In der FritzBox stellt ihr im DHCP ein, dass der DNS Server künftig der pihole ist und das wars.
Dennoch verteilt die FritzBox weiterhin die domain fritz.box doch der PiHole als DNS Server weiß von dieser Domain nichts und ist nicht für diese Konfiguriert. Bei Anfragen an diese Domain versucht er diese dann an einen Upstream Server anzufragen bekommt aber keiner Info -> nichts geht mehr!
das Ganze mal bildlich dargestellt:
Wie man sieht läuft da ein wenig was im Kreis. Das kann funktionieren, muss aber nicht. Abgesehen davon ist es langsam belastet eure Internetleitung unnötig. Ebenso kann es zu sporadischen Problemen kommen oder es geht rein nichts mehr.
PiHole richtig konfigurieren
Um ans Ziel zu kommen gibt es wie immer mehrere Wege. Ich zeige euch hier 2.
Quick & Dirty, hauptsache Läuft:
- auf der FritzBox im DHCP den PiHole hinterlegen
- UpStream Server im PiHole definieren und Listen nach Bedarf einfügen
- conditional Forwarding einrichten ( == bedingte Weiterleitungen)
- fertig
Was passiert nun?
Der PiHole schickt alle Anfragen für die Domain fritz.box bzw für den Netzwerkbereich 192.168.178.1 bis 192.168.178.255 an die FritzBox welche für die Domain bzw. dieses Netzwerk als interner DNS Server tätig ist. Alle anderen Anfragen gehen weiterhin über den PiHole.
Alternativ dazu meine persönlich bevorzugte Variante:
PiHole wird DHCP & DNS Server
- DHCP im PiHole einrichten
- DHCP auf FritzBox deaktivieren
- UpStream Server im PiHole eintragen und Listen nach Bedarf eintragen
- fertig
Das Ziel ist ebenso erreicht
Wie ihr seht ist das nicht viel aufwendiger, aber es hat ein paar Vorteile:
- Bei Probleme / Änderungen müsst ihr nur auf EINEM Geräte suchen wenn es um das Thema IP und DNS geht! Bei der anderen Lösung kann der Fehler seitens PiHole UND FritzBox sein
- ihr könnt im PiHole beliebige DNS Einträge für das interne Netzwerk setzen, Bsp: wenn ich "Paperless.meinedomain.de" eingebe Lande ich auf meinem Docker Host und habe Zugriff auf mein Paperless ohne das es von Außen verfügbar ist
- der DNS Server kennt defintiv alle Geräte im Netz wenn er selbst auch DHCP spielt, das läuft einfach alles viel Runder
Viel Text, das hat mich selbst erschreckt. Aber ich habe es bereits eingekürzt. Kompakter wüsste ich es nicht.
Wer Fehler findet darf sie für sich behalten und Rechtschreibfehler dienen wie immer der Unterhaltung.
In den nächsten Tagen werde ich noch weitere Infos hinzufügen. Geplante Themen:
- DynDNS
- DNS Fehler erkennen
- ... ?
Wer noch Wünsche, Ideen, Anregungen und Kritik hat, immer her damit! Ich bin für jede Schandtat bereit.