Docs: Add FritzBox Rebind Protection & Client Troubleshooting guides.

- Updated 'duckdns_setup.md' with critical instructions for configuring FritzBox DNS Rebind Protection to enable internal access (NAT Loopback).
- Added steps for clearing client-side DNS cache (Windows).
- Included Cloudflare DNS switch in documentation reflecting recent monitor script changes.
This commit is contained in:
2026-01-06 13:19:32 +00:00
parent 7f8205ffb9
commit 373304c57f
2 changed files with 68 additions and 67 deletions

View File

@@ -39,13 +39,17 @@ Dieser Container sorgt dafür, dass DuckDNS immer die aktuelle IP kennt.
### 2. Der Monitor (Sidecar)
Dieser Container prüft alle 5 Minuten die DNS-Auflösung und schreibt das Ergebnis ins Log. Er vergleicht:
1. **Public IP:** Die tatsächliche externe IP (via ipify).
2. **Global DNS:** Die IP laut Google DNS (8.8.8.8) -> Prüft Internet-Propagation.
2. **Global DNS:** Die IP laut Cloudflare DNS (1.1.1.1) -> Prüft Internet-Propagation (Google 8.8.8.8 erwies sich als zu langsam/unzuverlässig).
3. **Local DNS:** Die IP laut Container-Resolver -> Prüft lokales Caching.
```yaml
dns-monitor:
image: alpine
container_name: dns-monitor
# Explizite DNS-Server im Container setzen, um Synology-Timeouts zu umgehen:
dns:
- 8.8.8.8
- 1.1.1.1
environment:
- SUBDOMAINS=deine-subdomains
- TZ=Europe/Berlin
@@ -57,39 +61,41 @@ Dieser Container prüft alle 5 Minuten die DNS-Auflösung und schreibt das Ergeb
**Wichtig:** Das Skript `monitor.sh` liegt im Host-Verzeichnis `/app/dns-monitor/` und installiert zur Laufzeit fehlende Pakete (`bind-tools`, `curl`).
## Logs & Monitoring
## Peripherie-Konfiguration (FritzBox / Router)
### Update-Status prüfen
```bash
docker logs duckdns
Damit die Dienste auch aus dem **internen Netzwerk (WLAN/LAN)** erreichbar sind, müssen Router-Einstellungen angepasst werden. Ohne diese Anpassungen blockiert der Router den Zugriff auf die eigene externe IP ("NAT Loopback" Problem) oder Clients cachen alte IPs.
### 1. FritzBox DNS-Rebind-Schutz
Die FritzBox blockiert standardmäßig DNS-Antworten, die auf private IP-Adressen zeigen (Rebind-Schutz). Dies verhindert oft auch das korrekte "Hairpinning" (Zugriff auf eigene externe IP von innen).
**Lösung:**
1. FritzBox Oberfläche öffnen (`http://fritz.box`).
2. Navigieren zu: **Heimnetz** -> **Netzwerk** -> Reiter **Netzwerkeinstellungen**.
3. Ganz unten (ggf. "weitere Einstellungen" aufklappen) zu **"DNS-Rebind-Schutz"**.
4. Dort **alle** genutzten Subdomains eintragen (eine pro Zeile):
```text
floke.duckdns.org
floke-ai.duckdns.org
floke-gitea.duckdns.org
floke-ha.duckdns.org
floke-n8n.duckdns.org
duckdns.org
```
5. Speichern.
### 2. Client DNS Cache leeren
Nach Änderungen an DuckDNS oder der FritzBox halten Windows-Clients oft noch stundenlang an der alten IP fest.
**Lösung (Windows CMD als Admin):**
```cmd
ipconfig /flushdns
ping floke.duckdns.org
```
Der Ping muss die aktuelle **externe IP** (z.B. `.252`) zurückgeben, nicht die alte. Wenn er die externe IP zeigt und `<1ms` Antwortzeit hat, funktioniert das NAT-Loopback korrekt.
### DNS-Konsistenz prüfen (WICHTIG!)
Hier sehen wir, ob die Welt (bzw. der Container) die Domain korrekt auflöst.
## Troubleshooting
```bash
docker logs dns-monitor
```
**Szenario OK:**
```text
[TIMESTAMP] [DNS-MONITOR] OK | Public: 87.x.x.x | Global(8.8.8.8): 87.x.x.x | Local: 87.x.x.x
```
Alles synchron.
**Szenario ALERT (Zombie-Updater / Propagation):**
```text
[TIMESTAMP] [DNS-MONITOR] ALERT | Public: 87.x.x.x | Global(8.8.8.8): 87.y.y.y | Local: 87.y.y.y
```
Dies deutet darauf hin, dass entweder die Propagation noch läuft oder ein anderes Gerät (FritzBox, HA) die IP überschreibt.
**Szenario CACHE_ALERT (Lokales Problem):**
```text
[TIMESTAMP] [DNS-MONITOR] CACHE_ALERT | Public: 87.x.x.x | Global(8.8.8.8): 87.x.x.x | Local: 87.y.y.y
```
Das Internet kennt die neue IP schon, aber lokal wird noch die alte gecacht.
## Troubleshooting: "IP Flapping" (Zombie-Updater)
### "IP Flapping" (Zombie-Updater)
Wenn die IP im Monitor ständig zwischen der aktuellen (`...252`) und einer alten (`...49`) springt, gibt es einen zweiten Updater im Netzwerk (z.B. Router, Home Assistant, alte Skripte).
**Lösung:**
@@ -99,6 +105,10 @@ Wenn die IP im Monitor ständig zwischen der aktuellen (`...252`) und einer alte
4. `docker-compose up -d duckdns` ausführen.
5. Damit werden alle alten Updater ausgesperrt.
### Logs prüfen
**Update-Status:** `docker logs duckdns`
**DNS-Konsistenz:** `docker logs dns-monitor`
## Dateien
- `/app/docker-compose.yml`: Definition der Services.
- `/app/dns-monitor/monitor.sh`: Das Shell-Skript für den Monitor-Container.
- `/app/dns-monitor/monitor.sh`: Das Shell-Skript für den Monitor-Container.