HA pi-hole (keepalived) und Fritzbox - pi-hole ist "blockiert im Heimnetz"

Moin!

ich will meine pi-hole hochverfügbar machen. Zwei will ich als Container in Proxmox laufen lassen (quasi die Standard pi-holes) und einen auf einem RPI Zero 2W als failover, falls der NUC aufgibt und ich nicht zu Hause bin. (ich hör das Telefon schon klingeln…)

Zum Setup: Die pi-hole (pihole01, pihole02) hängen auf einem NUC mit Proxmox hinter einer FRITZ!Box 6890 LTE (Willkommen auf dem Land). DHCP über nehmen die beiden auch und geben die beiden IPs als DNS-Server über DHCP an alle Clients mit. Synchronisation erfolgt mittels gravity-sync und Upstream DNS übernimmt bei beiden unbound - funktioniert auch alles sehr gut!

Jetzt habe ich bei dem sekundären keepalived eingerichtet, um zu sehen, ob die VIP bereits funktioniert, bevor ich den pihole-03 einbinde und mögliche Fehler wahrscheinlich noch schwieriger zu finden sind.

Ich habe es sowohl mit virtueller MAC (use_vmac unten auskommentiert) und ohne versucht.

! Configuration File for keepalived

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 55
    priority 150
    advert_int 1
#    use_vmac
#    vmac_xmit_base
    unicast_src_ip 192.168.8.22
    unicast_peer {
       192.168.8.23      # reserved IP for failover pi-hole
    }

#    authentication {
#        auth_type PASS
#        auth_pass &75La%cB
#    }

    virtual_ipaddress {
        192.168.8.20
    }
}

Die liebe Fritte zeigt mir ohne use_vmac:


und mit use_vmac und vmac_xmit_base

(pihole-x ist nur der in der Fritte eingetragene Hostname, da sonst auch pihole-02 dort stehen würde [hostname des Master])

Die IP 192.168.8.22 ist definitiv nicht nochmal im Netzwerk vergeben (arp -a hat es bestätigt).

Die Blockade der Fritzbox verhindert den Einsatz als DNS-Server, denn der Kleine kann so einfach nicht nach draußen telefonieren:

steveson@pihole-02:~$ dig ipv64.net
;; communications error to 127.0.0.1#53: timed out
;; communications error to 127.0.0.1#53: timed out
;; communications error to 127.0.0.1#53: timed out

; <<>> DiG 9.18.28-1~deb12u2-Debian <<>> ipv64.net
;; global options: +cmd
;; no servers could be reached

Wie könnte ich das Problem lösen, dass die Fritte mir die IP als doppelt belegt ausgibt und somit den pi-hole blockiert?

Bin für jeden Hinweis dankbar - denn die Suchmaschinen konnten bei meinen Fragen auch nichts Passendes finden und nach allem was ich gelesen und probiert habe, scheint es ein Fritzbox-Thema zu sein. :thinking:

Danke und schönen Abend!

Eine andere variante wäre einfach im dhcp server mehrere dns server einzutragen, ich hatte auch schon mal 3 stück eingetragen, fällt einer oder zwei aus, ist immer noch einer da der die namen auflösen kann, jeder dns server hat eine eigene ip, die werden auch alle abgefragt also nicht das erst der erste ausfallen muss sondern nach unbestimmter Reihenfolge werden die alle mal abgefragt

Danke! Das ist natürlich eine mögliche Lösung für dieses spezifische Szenario. Umsetzen würde ich es in /etc/dnsmasq.d/10-custom-dhcp.conf

dhcp-option=option:dns-server,'IP_pihole-01','IP_pihole-02','IP_pihole-03'

Ich muss dann nur den individuellen DHCP-Bereich für jeden pi-hole anpassen, damit es da keine Überschneidung gibt (oder die Leases synchron halten :thinking:)

Es bleibt die Frage, wodurch die Blockade von der Fritte ausgelöst wird und wie die zu beheben wäre? Mein nächster Lösungsversuch wird wohl in Richtung IP Masquerading gehen… Nur da muss ich erst noch mehr dazu lesen.

kleiner tipp noch, es bringt nur wirklich etwas wen jeder DNS Server auf eigener Hardware ist, 2 stück auf einer Proxmox Maschine zu haben macht wenig sinn, stirbt der Proxmox sind gleich beide weg.

Daher kam der Gedanke, den 3. als failover/backup auf dem RPI Zero 2W laufen zu haben und nur Bedarfsfall zu nutzen.

schon mal bei der Fritzbox geschaut was bei dem (?) neben dem blockiert steht?, aber mach es dir nicht unnötig schwer, genau dafür gibt es ja die Option das man mehrere DNS Server eintragen kann, einfach jeden Physischen DNS Server dort eintragen und schon hast du ein abgesicherten DNS betrieb.

Klick auf „(?)blockiert“ (ein Link):
pihole02 blockiert-3
Fritzbox DHCP ist deaktiviert und die IP-Adresse gibt es kein zweites Mal im Netzwerk. :unamused:

Die drei DNS-Server eintragen geht schon. :+1:

Die Fritte zeigt das jetzt an und nun will ich halt herausfinden, wieso weshalb warum… :upside_down_face:

Vielleicht gab es die Adresse schon mal mit einer anderen MAC, ein neustart der Fritte könnte dabei helfen, die Fritzbox zeigt ja auch nicht angeschlossene geräte an die schon mal verbunden waren, vielleicht ist dort die IP schon gespeichert, einfach mal die liste durchgehen und aufräumen

Ich glaub es nicht… :man_facepalming: Es gab tatsächlich noch einen Eintrag der sich versteckt hatte - dabei war ich doch gestern gefühlt dreimal durch durch die Liste, aber wohl zu viel mit den IPs hin- und hergemacht :confused:

Mit use_vmac und vmac_xmit_base scheint es nun wie gewünscht zu funktionieren.
Falls DNS-Anwendungen in der Fritte über Zugangsprofile gesperrt sind, so muss für die Einträge der „physischen“ piholes (also nicht der Eintrag mit der virtuellen IP) DNS in der Fritzbox freigegeben sein.

Danke!!
(und jetzt mal sehen, was passiert, wenn ich den 3. pihole reinhänge… :face_with_peeking_eye:)