Netlogon registers A records below _msdcs (gc._msdcs.<domain>), which the default check-names of primary zones refuses; dynamic zones now get check-names ignore. Troubleshooting for dcdiag in ACTIVE-DIRECTORY.md, an end-to-end check of such an update. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
DDI-Suite
Selbst gehostete DDI-Lösung (DNS, DHCP, IP-Adressverwaltung) im Stil von VitalQIP: ein zentraler Management-Server verwaltet Netze und Adressen und rollt Konfigurationen auf Agents aus, die BIND 9 und Kea DHCP steuern.
„DDI-Suite“ ist ein Arbeitstitel. Alle Namen sind zentral konfigurierbar (ADR 0018).
Stand
| Meilenstein | Status |
|---|---|
| M0 Fundament (Repo, Build, Lint, CI, Entwicklungsumgebung, Architektur, ADRs) | abgeschlossen (v0.1.0) |
| M1 Server-Kern (Schema, Anmeldung lokal/OIDC/TOTP, Rollen, Audit, Lizenz, REST-API, Netze/Adressen, Oberfläche) | abgeschlossen (v0.2.0) |
| M2 Config-Generator (BIND/Kea aus dem Datenmodell, geprüft mit echtem BIND 9.18/9.20 und Kea 2.6/3.2) | abgeschlossen (v0.3.0) |
| M3 Agent verwaltet (Registrierung, mTLS, signierte Revisionen, Anwenden mit Prüfung/Health-Check/Rollback, Leases; End-to-End-Test mit BIND und Kea) | abgeschlossen (v0.4.0) |
| M4 Pull und Push (Betriebsmodi, „Jetzt ausrollen“, offene Änderungen, Diff, Rollback, Live-Status) | abgeschlossen (v0.5.0) |
| M5 Cluster und Zonen (DNS-Primary/Secondary mit TSIG, Kea-HA, Zonen und Records, dynamische Zonen, Lease-Übernahme) | abgeschlossen (v0.6.0) |
| M6 Auslieferung (Installer für Debian/Ubuntu/EL9, gehärtete systemd-Units, Pakete, Release-Signatur, Messungen, Betriebs- und Sicherheitsdoku) | abgeschlossen (v0.7.0) |
Installation: docs/INSTALL.md. Der Management-Server verwaltet Netze und Adressen (QIP-artige Tabelle), Zonen und Records, DNS- und DHCP-Cluster, Benutzer, Lizenz und Audit-Log. Aus den Daten erzeugt er die BIND- und Kea-Konfiguration als unveränderliche Revisionen (Ausrollen). Die Agents (ddi-agent-dns, ddi-agent-dhcp) registrieren sich mit einem Einmal-Token, holen die signierten Revisionen über mTLS, prüfen und aktivieren sie, rollen bei Fehlern zurück und melden Zustand und Leases (Agents, Leases).
Dokumentation
- Projektauftrag
- Architektur
- Architekturentscheidungen (ADRs)
- REST-API
- Lizenzierung
- Systemvoraussetzungen (mit Messwerten)
- Installation
- Betrieb (Sicherung, Upgrade, Schlüssel, Fehlersuche)
- Sicherheit (Bedrohungsmodell, Schlüsselverwaltung, Härtung)
- Active Directory
Entwicklung
Voraussetzungen
| Werkzeug | Version | Wofür |
|---|---|---|
| Go | 1.27 (siehe go.mod) |
Server, Agents |
| Node.js | 24 LTS | Weboberfläche |
| GNU make, bash | – | Build-Einstieg, Skripte |
| buf | 1.73 | Protobuf-Lint und -Generierung (Netzzugriff auf buf.build) |
| golangci-lint | 2.14 | Go-Linter |
| shellcheck | 0.11 | Shell-Linter |
| Docker mit Compose | aktuell | Entwicklungsumgebung, Integrationstests |
Unter Linux installiert scripts/ci/install-tools.sh buf, golangci-lint und shellcheck in den gepinnten Versionen mit Prüfsummenkontrolle.
Häufige Befehle
make help # alle Ziele
make build # Weboberfläche und Binaries für das eigene System nach bin/
make test # Go- und Frontend-Tests
make lint # alle Linter inkl. Lizenz-Header-Prüfung
make fmt # formatieren
make generate # Protobuf-Code neu erzeugen
make release # Tarballs für linux/amd64 und linux/arm64 plus SHA256SUMS nach dist/
Entwicklungsumgebung
make dev-up # PostgreSQL 17, BIND 9.20, Kea DHCPv4 3.2 starten
make dev-smoke # prüfen, dass alles antwortet
make dev-admin # ersten Administrator anlegen (gibt Einmal-Passwort aus)
make run-server # Server auf http://127.0.0.1:8080
cd web && npm run dev # Frontend mit Hot Reload, leitet API-Aufrufe an den Server weiter
make dev-down # stoppen (Daten bleiben erhalten)
| Dienst | Erreichbar unter |
|---|---|
| PostgreSQL | 127.0.0.1:5432 (DDI_DEV_PG_PORT), Benutzer/DB ddi, Passwort nur für Entwicklung (siehe Compose-Datei) |
| BIND | 127.0.0.1:5353 UDP/TCP (DDI_DEV_DNS_PORT), Zonen dev.test und 2.0.192.in-addr.arpa |
| Kea DHCPv4 | im Compose-Netz, bedient 192.0.2.0/24 über Relay (Testnetz nach RFC 5737) |
CI
Gitea Actions unter .gitea/workflows/: Go (Lint, Tests mit Race-Detector, govulncheck), Protobuf, Web (ESLint, Typecheck, Tests, npm audit, Build), Shell/SPDX, Release-Probebau und ein Compose-Smoke-Test. Messungen von Server, BIND und Kea laufen auf Anforderung im Workflow bench (make bench, test/bench/); die Ergebnisse stehen in SYSTEM-REQUIREMENTS.md. Tags v* erzeugen ein Release mit Artefakten. Anforderungen an den Runner stehen in ADR 0003.
Lizenz
Der Management-Server (server/, web/, tools/) ist proprietär. Agents, Protokoll und gemeinsamer Code (agent/, proto/, internal/, deploy/, scripts/, test/) stehen unter der Apache-2.0-Lizenz. Details in LICENSE.