Im Forum finden sich zum Thema Pi-Hole und FritzBox einige Threads in denen über Probleme geklagt wird und verschiedenste Vorschläge zum Setup gemacht werden. Diese Anleitungen und Aussagen sind teilweise wiedersprüchlich oder scheinen veraltet. Außerdem sind mir manche Lösungsvorschläge nicht ganz klar.
In diesem Post versuche ich diese Vorschläge und Lösungen zusammenzutragen. Ich hoffe Ihr könnt mir meine Fragen beantworten, sodass ich mit eurer Hilfe die ultimative Pi-Hole Fritzbox Anleitung schreiben kann. So müssen neue User mit einer FritzBox nicht immer einen neuen Thread aufmachen oder sich durch teilweise veraltete Lösungansätze durchlesen.
Wo wird der Pi-Hole in der FritzBox als DNS eingetragen?
Zu dieser Frage finden sich zwei unterschiedliche Konfigurationen.
1.) Pi-Hole als Upstream-DNS in der FritzBox eintragen
Internet -> Zugangsdaten -> DNS-Server: Hier die Pi-Hole IP einragen
Heimnetz -> Heimnetzübersicht -> Netzwerkeinstellungen: Hier unter DNS-Rebind-Schutz den Pi-Hole eintragen.
2.) Per DHCP der FritzBox den Pi-Hole als lokalen DNS an die Clients kommunizieren
Heimnetz -> Heimnetzübersicht -> Netzwerkeinstellungen -> IPV4-Adressen: Pi-Hole IP als DNS eintragen
Heimnetz -> Heimnetzübersicht -> Netzwerkeinstellungen -> IPV6-Adressen: Pi-Hole IP als DNS eintragen
Vergabe der IP-Adresse für den Pi-Hole
Der Pi-Hole muss auf jeden Fall immer die selbe IP-Adresse haben.
Der erste Schritt ist meines Wissens nach auf jeden Fall notwendig. Beim zweiten bin ich mir nicht sicher.
1.) Heimnetz -> Heimnetzübersicht -> Alle Geräte -> Details des Pi-Hole: Entweder Haken bei "Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen." oder eine feste IP-Adresse zwischen .2 und .19 vergeben (Der DHCP IP-Adressen-Range beginnt erst bei .20)
2.) Da sich die IPv6-Adresse des Pi-Holes ändern kann wurde empfohlen in der FritzBox "ULA" zu verwenden. (AVM empfiehlt dies nicht, wenn man einen IPv6 Internet Anschluss hat)
Ab Pi-Hole Version 3.1 soll es aber nicht mehr notwendig sein. Trotzdem habe ich immer wieder davon gelesen. Erläutert wird das hier: https://discourse.pi-hole.net/t/why-do-some-sites-take-forever-to-load-when-using-pi-hole/3654
Ist die "ULA" Einstellung nun notwendig oder nicht?
DNS-Server im Pi-Hole / Problem mit lokalen Hostnamen
Auch hier werden verschiedene Konfigurationen vorgeschlagen.
1.) FritzBox als einzigen DNS-Server im Pi-Hole eintragen. Alle nicht blockierten Anfragen werden dann vom Pi-Hole an die FritzBox gesendet und von dort aus den den Upstream-DNS, der in der FritzBox konfiguriert ist.
So können lokale Hostnames aufgelöst werden. Es kommt aber eine zusätzliche Station in die Aufrufhirarchie.
2.) Diverse externe DNS-Server und zusätzlich zur Auflösung der lokalen Hostnamen die FritzBox als DNS-Server eintragen.
So können lokale Hostnames aufgelöst werden. Soweit ich weiss sendet dnsmasq die Anfragen jedoch abwechselnd an alle eingetragenen DNS-Server. Gelangen so auch Anfragen für lokale Hostnames z.B. an externe DNS-Server? Woher weiss dnsmasq, wann der die FritzBox fragen muss?
"Never forward non-FQDN" -> Haken ja oder nein?
"never forward reverse lookups for private IP ranges" -> Haken ja oder nein?
Soweit zur Konfiguration und dem Setup. Nun möchte ich noch ein paar meiner Probleme erläutern. Werden diese beantwortet und gelöst, trägt dies hoffentlich zur Vollständigkeit dieser Anleitung bei.
Manche Seiten laden sehr lange.
Zu diesem Them gibt es bereits einen Thread, in dem auch eine Lösung für das Problem genannt wird.
https://discourse.pi-hole.net/t/why-do-some-sites-take-forever-to-load-when-using-pi-hole/3654
Die Lösung hat bei mir aber nur bedingt geholfen.
Das Problem rührt daher, dass Anfragen über HTTPS nicht so behandelt werden können wie über HTTP, da der Pi-Hole den Verkehr nicht lesen kann und deshalb auch nicht die Block-Datei zurücklienfern kann. Deshalb liefern diese Anfragen nichts zurück und der Browser wartet dann ewig auf eine Antwort, wehslab die Seiten dann lange laden. Es wird deshalb empfohlen im Pi-Hole die HTTPS Ports zu blockieren. So wartet der Client nicht, sondern bekommt vom Pi-Hole sofort das Signal, dass dieser Port blockiert ist. Das Warten soll so also verhindert werden.
Um zu Testen, ob die Konfiguration funktioniert hat, werden zwei Testseiten genannt. Ich bin mir aber nicht sicher, was das richtige Ergebniss der Tests sein soll.
Vor der Blockade: Beide Seiten zeigen bei mir JavaScript Code an.
Nach der Blockade: HTTP zeigt noch den selben Code. HTTPS Anfrage läuft auf Fehler. Es wird eine Browserfehlermeldung angezeigt.
Ist das das gewünschte Ergebnis nach der Blockierung?
Dennoch gibt es bei mir Seiten die am iPhone ewig laden. Der Inhalt wird nach kurzer Zeit angezeigt, die Seite lädt aber ewig. (Das iPhone verwendet den Pi-Hole als DNS)
Z.B. IKEA
Probleme am iPhone
Wie bereits gesagt, das iPhone verwendet wirklich den Pi-Hole als DNS.
Die Seiten von Pro7 und Sat1 laden am iPhone nie zu ende. Auch nach mehreren Minuten nicht. Am PC laden die Seiten zwar langsam, aber sie kommen. Die Adressen die im Pi-Hole bei diesen Aufrufen blockiert werden, habe ich testweise auf die Whitelist gesetzt. Sie werden dann auch nicht mehr geblockt, im Log des Pi-Holes sind dann für diese Aufrufe keinerleie Blockierungen zu sehen, die Seiten laden aber trotzdem nicht.
Ich weiss nicht woran das liegt.
Seiten laden langsamer
Insgesamt erscheint der Aufbau von Seiten langsamer als ohne Pi-Hole. Egal an welchem Endgerät. Ich dachte eigentlich, der Aufbau der Seiten müsste schneller sein, da der Client die Werbung nicht mehr laden muss. Kann das an Roundtrips zwischen Client, Pi-Hole und FritzBox liegen? Aufgrund falscher Konfiguration?
Eventuell fällt mir noch was ein. Dieser Post wird sich mit jedem gelösten Problem verändern, sodass hier am Schluss eine vollständige Anleitung zum Konfigurieren von Pi-Hole und FritzBox steht.
Vielen Dank für eure Hilfe. Und vielen Dank an die Entwickler. Wirklich eine tolle Idee.