Gemini Agent 76dffc4c0d Initial commit
2025-12-04 05:19:36 +00:00
2025-12-04 05:19:36 +00:00
2025-12-04 05:19:36 +00:00
2025-12-04 05:19:36 +00:00
2025-12-04 05:19:36 +00:00

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 NXDOMAIN Antworten 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)
Description
No description provided
Readme 68 KiB
Languages
Python 94.2%
Dockerfile 5.8%