2.5 KiB
2.5 KiB
CoreDNS NetBox Sync
Dieser Container synchronisiert DNS-Records aus NetBox in lokale Zonefiles, die von CoreDNS (oder BIND) genutzt werden können.
Features
- Automatische Synchronisation: Holt alle 10 Minuten (konfigurierbar) Daten aus NetBox.
- Forward & Reverse Zones: Erstellt A/AAAA und PTR Records.
- Ausfallsicherheit: Wenn NetBox nicht erreichbar ist oder die API Fehler wirft, werden keine leeren Dateien geschrieben. Die alten Zonefiles bleiben erhalten, um
NXDOMAINAntworten zu verhindern. - Fallback NS: Konfigurierbarer Fallback-Nameserver, falls in NetBox keine NS-Records für die Zone definiert sind.
Installation & Nutzung
1. Image bauen
docker build -t local/dns-sync .
2. Container starten
Da die Standardwerte im Dockerfile hinterlegt sind, reicht dein bisheriger Befehl völlig aus, solange sich an der Konfiguration nichts geändert hat:
docker run -d \
--name klzDNS-worker \
--restart unless-stopped \
--net=container:klzDNS-coredns \
-v klzDNS-data:/zones \
local/dns-sync
3. Konfiguration anpassen (Optional)
Möchtest du Werte ändern (z.B. URL, Token oder Interval), kannst du diese als Umgebungsvariablen (-e) übergeben:
docker run -d \
--name klzDNS-worker \
--restart unless-stopped \
--net=container:klzDNS-coredns \
-v klzDNS-data:/zones \
-e NETBOX_URL="http://deine-netbox-url" \
-e NETBOX_TOKEN="dein-neuer-token" \
-e REFRESH_INTERVAL=300 \
local/dns-sync
Alternativ kannst du eine .env Datei erstellen:
# .env Datei
NETBOX_URL=http://192.168.1.50
REFRESH_INTERVAL=60
Und diese einbinden:
docker run -d ... --env-file .env local/dns-sync
Verfügbare Variablen
| Variable | Standardwert | Beschreibung |
|---|---|---|
NETBOX_URL |
http://172.30.242.99 |
URL zur NetBox Instanz |
NETBOX_TOKEN |
0b74... |
API Token (Read-Only reicht) |
ZONE_NAME |
klenzel.net |
Die zu verwaltende DNS-Zone |
REVERSE_ZONE_NAME |
172.in-addr.arpa |
Reverse Lookup Zone |
REFRESH_INTERVAL |
600 |
Sync-Intervall in Sekunden |
OUTPUT_FILE_FWD |
/zones/db.klenzel.net |
Pfad zur Forward Zone im Container |
OUTPUT_FILE_REV |
/zones/db.reverse.arpa |
Pfad zur Reverse Zone im Container |
FALLBACK_NS_HOSTNAME |
fks-01-cl-cdns |
Hostname des NS, falls keiner in NetBox definiert ist |
FALLBACK_NS_IP |
172.25.16.152 |
IP des Fallback NS (für Glue Record) |