Pi-Hole und FritzBox Setup Anleitung

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.

5 Likes

ich habe die ULA Adressen bei IPv6 gesetzt und eine IPv6 für den pi in den Netzwerkeinstellungen gefunden, die mit fd00 beginnt und immer gleich bleibt. Die Lease Time zum "Verfall" der IP Adressen habe ich auf 7 Tage gesetzt.

Im DDNS-Rebind-Schutz unter Heimnetzwerk / Netzwerkeinstellungen (FW 6.93) habe ich "pi.hole" ohne Anführungsstriche eingetragen, damit die fritzbox überhaupt Adressen aus dem Heimnetzwerk annimmt.

Mein pi-hole läuft seit Dezember '17 nach anfänglichen Adressproblemen (dei doofen IPv6) problemlos. Alle PCs und Smartphones sind nahezu werbefrei und schnell.

Wo hast du den Pi-Hole in der FritzBox als DNS Server eingetragen?
Welche DNS Server hast du im Pi-Hole konfiguriert? Nur externe oder auch die FritzBox?
Was hast du für die Optionen "Never forward non-FQDN" und "never forward reverse lookups for private IP ranges" im Pi-Hole eingestellt?

Könntest du bitte mal die Ikea, Pro7 und Sat1 Seiten bei dir am Handy ausprobieren?

Wo hast du den Pi-Hole in als DNS Server eingetragen?
In der 7490: Heimnetzwerk => Netzwerk => Nettwerkeinstellungen => IP4 Adressen => Lokaler DNS-Server (hier muss die feste IP des PIs stehen)

Welche DNS Server hast du im Pi-Hole konfiguriert? Nur externe oder auch die FritzBox?
Im Admin Menü von Pi-Hole: Settings => DNS: Nur externe. Google, OpenDNS und die beiden Adressen meines Internet-Providers (sind aber nicht wichtig)

Was hast du für die Optionen “Never forward non-FQDN” und “never forward reverse lookups for private IP ranges” im Pi-Hole eingestellt?
Beides ist mit Haken versehen.

Könntest du bitte mal die Ikea, Pro7 und Sat1 Seiten bei dir am Handy ausprobieren?
Ikea.com und ikea.de laufen
Prosieben.de und Sat1.de laufen auch.
Am PC und am Handy keinerlei Probleme.

Wo hast du den Pi-Hole in als DNS Server eingetragen?
In der 7490: Heimnetzwerk => Netzwerk => Nettwerkeinstellungen => IP4 Adressen => Lokaler DNS-Server (hier muss die feste IP des PIs stehen)

Welche DNS Server hast du im Pi-Hole konfiguriert? Nur externe oder auch die FritzBox?
Im Admin Menü von Pi-Hole: Settings => DNS: Nur die IP der Fritzbox (in der Fritzbox sind die von Google eingetragen)

Was hast du für die Optionen “Never forward non-FQDN” und “never forward reverse lookups for private IP ranges” im Pi-Hole eingestellt?
Beides ohne Haken versehen.

Könntest du bitte mal die Ikea, Pro7 und Sat1 Seiten bei dir am Handy ausprobieren?
Am PC und am iPhone keinerlei Probleme.

Sonstiges:
In der Fritzbox unter Internet, Zugangsdaten, IPv6, IPv6 deaktiviert.

iptables rules auf dem pi eingetragen, damit der Seitenaufbau schnell geht.

iptables -A INPUT -p tcp --destination-port 443 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p udp --destination-port 80 -j REJECT --reject-with icmp-port-unreachable
iptables -A INPUT -p udp --destination-port 443 -j REJECT --reject-with icmp-port-unreachable
sudo apt install iptables-persistent

Verstehe ich nicht.
Wenn in der FB DNS-Server (und nicht Pi-Hole) eingetragen sind, laufen doch die DNS-Anfragen nicht mehr über Pi-Hole sondern über die dort eingetragenen DNS-Server, imho ist das Pi-Hole dann nutzlos?

Ich habe in der FB als DNS-Server das Pi-hole eingetragen und im Pi-Hole bei Bedarf zu verwendende DNS-Server (Google und Level3).
Funktioniert einwandfrei, sogar, wie ich heute morgen feststellen konnte, wenn ich unterwegs das Smartphone per VPN mit der FB verbinde, Pi-Hole togo sozusagen.

Die Fritzbox verteilt die PI-Hole IP per DHCP an alle Clients. Die Clients fragen PI-Hole, PI-Hole fragt Fritzbox, Fritzbox fragt Google.

Vorteil ist, dass dann interne Namen aufgelöst werden können, die nur die Fritzbox kennt. fritz.box, fritz,nas, interne Clients, Landingpage für Kindersicherung etc.

Nachteil ist, VPN Clients und Clients im Gast Netz fragen die Fritzbox als DNS und nicht das Pi-Hole.

Bei meiner fritz-Box 7490 verteilt nicht die FritzBox selber die Ip, sondern das PiHole. An der Fritzbox ist sowohl DNS-Server als auch DHCP-Server ausgeschaltet. DNS und DHCP laufen bei mir über Pi-Hole und habe damit keine Probleme.

Die Auflösung fritz.box und fritz.nas funktioniert per aktueller Pi-Hole version ganz gut. Auch selbstdefinierte Namen laufen. Man muss nur "Never forward reverse lookups for private IP ranges" und "Use DNSSEC" im Pi-Hole aktiviert sein. Also DNNSEC muss scheinbar auch aktiviert sein, da es bei mir nur zuverlässig läuft, wenn beide optionen aktiviert sind.

Nach dem setzten der Config sollte man dann bei seinen Rechner mal ipconfig.exe /flushdns (zumindest bei den Windows-Rechnern) durchführen, da es sein dass Windows noch die alte Route im Cache hat. Nach dem flushen geht er dann die neue Route. Bei mir wurde dadurch das Problem der Namensauflösung behoben.

Bezüglich des Themas das Seiten sehr lange laden (insbesondere wenn die fritzbox immer noch den DHCP-Server übernimmt und nur die Pi-Hole als DNS Server verteilt) habe ich behoben, in dem ich SSL bei lighthttp in Verbindung mit einem selbst-signiertem SSL Zertifikat aktiviert habe:

hier eine Anleitung dazu:
https://redmine.lighttpd.net/projects/1/wiki/HowToSimpleSSL
nicht vergessen den https Server danach einmal neu zu starten
(service lighttpd restart)

Wenn jetzt eine (https) Werbedomain aufgerufen wird meckern zwar sämtliche Browser zunächst rum da die Echtheit des Zertifikates nicht bestätigt werden kann, aber dafür gibts keine timeouts mehr. Insbesondere auf Tablets/Smartphones ist dieses spürbar merkbar.

Wenn man einen modernen Router hat, welcher erlaubt seinem Heimnetz über DHCP ipv4 und ipv6 DNS Server zu setzen bevorzuge ich persönlich 2, weil dann muss ich mich auch nicht mit der DNS Rebind Problematik rumärgern und meine Fritzbox bleibt weiterhin DHCP Server.

Möglichkeit 1 habe ich nicht im Einsatz

zu 1. Ja, dies ist alles so korrekt. Ich habe Haken bei immer die gleiche Adresse zuweisen gesetzt, das habe ich aber auch generell bei allen meinen Geräten und im Firmenumfeld macht man so etwas auch (DHCP Reservierung)

  1. Ich habe ULA gesetzt. Verstanden habe ich das so. Eine ipv4 Adresse in deinem Heimnnetz z.b. 192.168.178.50 bleibt immer gleich, egal was dein Provider macht (nur du kannst die ändern). Eine IPV6 Adresse von einem Gerät in deinem Netzwerk kann sich ändern (es ändert sich zwar nur ein Teil, aber auch eine Teiländerung ist ja eine andeere Adresse), je nachdem was dein Provider macht. Und ULA in der Firtzbox wirkt dem entgegen, weil die Fritzbox nicht mehr die "Änderung" vom Provider durchreicht, sondern in deinem Netz mittels ULA dafür sorgt das alle deine Geräte ihre adresse bis in alle Ewigkeit (oder wenn du sie persönlich abänderst) behalten.

ich habe 1 im Einsatz. Mir gefällt das Konzept dass alles was der pihole durchlässt an den router durchgereicht wird. Und in der Fritzbox selber kann ich ja DNS Upstreams einstellen wie ich lustig bin (oder gibt es Provider, welche einem Netzwerkseitig zwingen ihre DNS zu nehmen?)

Die von dir erwaähnte zusätzliche Aufrufhierarchie wird man immer haben, da ja der pihole praktisch zusätzlich in das Netzwerk kommt:

vorher: Client ->Bitte rufe www.google.de -> Fritzbox -> Internet
jetzt: Client ->Bitte rufe www.google.de -> pihole -> fritzbox -> internet

ich habe die beiden Haken bei
“Never forward non-FQDN”

“never forward reverse lookups for private IP ranges”

aktiviert.

ein Fully qualified domain name ist www.ichbineinerichtigedomain.de . Eine Non FQDN ist www.ichbineinerichtigedomain.hierstehtnurnochquatsch , endet also nicht auf .de, .com oder so (neuerdings gehen zwar auch .hamburg usw, aber das will ich jetzt nicht weiter ausführen)

wenn du eine selbstgemacht domainendung hast wie .irgendwas, dann sollte man den Haken rausnehmen.

bei dem 2. Haken bin ich auch nicht sicher, habe ihn persönlich aber aktiviert

Dein Versuch hier mal eine ultimativ-glaktische Anleitung zu bauen ist supergeil! Da helf ich gerne, wenn ich kann.

Und ULA in der Firtzbox wirkt dem entgegen, weil die Fritzbox nicht mehr die “Änderung” vom Provider durchreicht, sondern in deinem Netz mittels ULA dafür sorgt das alle deine Geräte ihre adresse bis in alle Ewigkeit (oder wenn du sie persönlich abänderst) behalten.

Exakt! Und das erkennt man daran, dass die von der FB vergebenen IPv6 Adressen mit fd00:: beginnen, während eine selbst erzeugte IPv6 z.Bsp. 2038:etc lauten.
Das sog. ULA-Präfix fd00 kann man ändern, wenn's einem wichtig ist.

Wenn man also seinem RPi eine fest IPv4 verpasst, dann sollte man ihm auch eine feste IPv6 verpassen (damit die sich nicht mitten im Betrieb sechs Wochen später ändert und man ewig rumsucht).

Und damit man (ganz sicher) eine feste IPv6 kriegt (die sich nicht mehr ändert), aktiviert man in der FB die Funktion "Unique Local Addresses (ULA) immer zuweisen".
Und dann kann man auf dem Pi-hole (zBsp, mit ifconfig) die IPv6 Adresse auslesen und bei der FB unter "Lokaler DNSv6-Server:" eintragen.

Damit hat

  • der RPi eine feste IPv4 und eine fest IPv6 (beide von der FB)
  • die FB die Info dass DNS für IPv4 und IPv6 der RPi/das Pi-hole macht
  • und alle Clients teilt die FB das dann ebenfalls mit, auf dass die auch nicht weitersuchen, egal ob sie über IPv4 oder IPv6 arbeiten.

Klappt halt glaub ich nur, wenn die FB die DHCP Adressen verteilt. Also die Lösung 2.

Edit: Vergessen: Alles geht zackig auf PC/Mac/IPhone/Android. Auch die von Dir genannten Seiten, auch wenn ich auch nicht weiß, was bei der Testseiten-Sammelseite richtig oder falsch ist. Ein Screenshot wäre hilfreich, aber immerhin lädt alles.

2 Likes

Ich häng' mich mal an diesen Thread an. Nachdem mein Android Smartphone einfach keine dauerhafte Verbindung mehr zur Fritzbox aufbauen konnte, habe ich Ursachenforschung betreiben müssen.
Zumindest Android Smatphones haben noch Probleme mit Wlan über IPv6, solange die Fritzbox advertisments nach RFC 5006 verteilt. Nachdem dieser Haken nicht mehr gesetzt war, ging alles prima.

Wer IPv6 verwenden will, sollte auch drauf achten die iptables rules für v6 zu setzen:

ip6tables -A INPUT -p tcp --destination-port 443 -j REJECT --reject-with tcp-reset
ip6tables -A INPUT -p udp --destination-port 80 -j REJECT --reject-with icmp6-port-unreachable
ip6tables -A INPUT -p udp --destination-port 443 -j REJECT --reject-with icmp6-port-unreachable

sudo apt install ip6tables-persistent

Das Problem langsam ladender Seiten und nicht funktioniendem Chromecast lässt sich beheben, wenn du in der Fritzbox ins Heimnetz -› Netzwerkeinstellungen gehst und nach unten scrollst bis du das siehst:
DNS-Rebind-Schutz
FRITZ!Box unterdrückt DNS-Antworten, die auf IP-Adressen im eigenen Heimnetz verweisen (DNS-Rebind-Schutz). Hier können Sie eine Liste von Domainnamen angeben, für die der DNS-Rebind-Schutz nicht gelten soll.

Domainnamen-Ausnahmen:
Hier die IP vom Raspberry eintragen. Die selbe IP wie beim ersten und zweiten DNS Server Eintrag der Fritzbox.

Erst jetzt ist Pi Hole fertig konfiguriert.

Danach können lokale Clients wie SmartTV oder Chromecast Pi Hole als DNS Server finden und das Problem der langsam ladenden Seiten wird auch gelöst, da nicht auf IPv6 vergebens gesucht wird, nachdem IPv4 abgeklappert wurde, was enorm Zeit kostet…

1 Like

Hallo Gemeinde :slight_smile:

Ich muss denn Thread ausgraben, hab alles installiert, bei meiner FritzBox7360 unter: Zugangsdaten, DNS-Server meine IP vom Pi-Hole eingefügt aber dann lädt er leider die Internetseiten nicht mehr und unten steht: Host auflösen. Hab über Google das hier gefunden:

Auf Fritz!Boxen funktioniert das allerdings aufgrund der integrierten DNS-Rebind Protection nicht.

Hab auch schon bei der Fritz Box DNS Rebind Schutz meine IP vom Pi-Hole eingetragen, leider keine Besserung.

Jetzt lese ich hier das ich unter Heimnetz -> Heimnetzübersicht -> Netzwerkeinstellungen -> IPV4-Adressen: Pi-Hole IP als DNS eintragen kann, aber bei mir gibt es dort nur: IPv4-Adresse, Subnetzmaske, DHCP-Server vergibt IPv4-Adressen, Gastnetz, IPv4-Adresse... Leider keine Möglichkeit eine DNS Adresse einzugeben.

Unter denn Einstellungen vom Pi-Hole hab ich auch schon etliches ausprobiert, stehe auf dem Schlauch :smiley:

Kann mir da jemand weiterhelfen? Bin über jede Hilfe sehr dankbar!

Grüsse

Bist Du sicher, dass Du die richtige IP bei den zwei DNS Servern der Fritzbox eingetragen hast¿
? Denn Pi Hole sollte auch ohne rebind Schutz halbwegs funktionieren.

Die IP findest Du in der Konsole mit hostname-I
Ich habe DNS watch beim Pi-hole angegeben und mit der Rebind Ausnahme läuft das Surfen gleich schnell wie ohne Pi-hole.

Vielleicht hilft es, Pi-hole von Grund auf neu zu installieren, musste ich auch schon, einmal war bei mir Netzwerkkabel nicht ganz eingesteckt... ich bin überzeugt, dass das Problem bei einem übersehenen Detail liegt.

1 Like

Hii

Ja ich bin mir 100% sicher, habs nochmals überprüft:

Neu installiert hab ich auch schon, sorry habe ich vergessen zu erwähnen. Was mir noch einfällt, ich hab zuhause zwei Netgear Orbi RBK50 für mein WLAN, muss ich vielleicht dort die DNS Weiterleitung auch einrichten? Netzwerkkabel kann ich ausschliessen sonst hätte ich keine Verbindung zu im. Ein- und augeschalten hab ich in auch schon.

Danke für deine Hilfe :slight_smile:
Gruss

Das sieht soweit korrekt aus. Die selbe IP bei den Rebind DNS Ausnahmen eintragen.
Vereinfachen ist bei der Fehlersuche oft hilfreich, ich würde die Hotspots erst mal weglassen und mit dem RPi direkt am Router anschliessen beginnen.
Hast Du dem Raspberry in der Fritzbox eine fixe Adresse zugewiesen?
Was zeigt die Pi Hole Admin Seite im Browser an?

1 Like

Ich hab denn Fehler gefunden, mein Netgear WLAN Verstärker war als Router aktiviert anstatt als einfacher AP-Modus, kurz umgeschalten, woala es funktioniert :heart_eyes::sunglasses: da wird es ein durcheinander gegeben haben.

Danke für die Hilfe :slight_smile: