Ich arbeite bei kleinen Projekten gerne mit dem Synology Directory Server als Ersatz für das Microsoft Active Directory (AD). Bei ein paar Benutzern, lassen sich hier doch einige Kosten sparen. Nun kommt aber auch dort gelegentlich die Anforderung eine Virtuelle Maschine (VM) hochverfügbar bereitzustellen. Dafür habe ich bisher immer den Microsoft Hyper-V Server (2019) in Verbindung mit der Hyper-V Replica verwendet.
Das klassische Setup, hat auch bis zur Aktivierung der Hyper-V Replication problemlos funktioniert.
- Join der beiden Hyper-V Hosts in die Domain des Synology Directory Servers
- Öffnen der Firewall auf den Hyper-V Hosts um über Port 80 der 443 zu replizieren
- Verwendung der Kerberos Authentifizierung (HTTP) für die Replikation
- Einrichten der Hyper-V Replica für eine oder zwei VMs
Allerdings wurde ich am Ende der Konfiguration mit dieser Fehlermeldung konfrontiert und konnte auf Anhieb nichts damit anfangen.
Ja klar, es gibt ein Problem mit Kerberos … aber wieso?
Die Namensauflösung funktionierte und auch die ServicePrincipalNames sind registriert.
Auch die Ports 80 und 443 sind über die Firewall geöffnet und antworten wie erwartet.
Mein Verdacht fiel nach einiger Zeit auf dem Synology Directory Server, dieser stellt quasi eine Domain mit dem folgendem Functional-Level bereit.
- Domain functional level: Equal to Windows Server 2008 R2
Die Hyper-V Replica wurde mit Windows Server 2012 vorgestellt, was aber nicht zwingend heißen muss, dass die Domain ebenfalls auf diesem Level sein muss. Ich denke aber das darin und vielleicht in Verbindung mit der Tatsache, dass hier eigentlich Samba 4.10 läuft, hier das Problem liegen könnte.
Als Alternative wollte ich die Authentifizierung per Zertifikat verwenden.
Dabei bin ich über eine Reihe von Herausforderungen gestolpert, die sich aber letztendlich lösen ließen. Als Grundlage habe ich diese Anleitung verwendet, die aber nur mit kleineren Modifikationen funktionierte.
Ein wichtiger Unterschied ist auf jeden Fall, dass meine beiden Hyper-V Hosts in der Domain verbleiben sollen, also nicht in einer Workgroup betrieben werden.
- Insgesamt werden n+1 (N = Anzahl der Hyper-V Hosts die an der Replikation teilnehmen) Zertifikate erstellt. Für jeden Hyper-V Host eines (das Server-Zertifikat) und das Root-Zertifikat. Bei zwei Hosts, haben wir damit drei Zertifikate
- Während das Root-Zertifikat auf jedem der Hyper-V Hosts installiert wird, bekommt jeder Host ein eigenes Server-Zertifikat
Auf dem ersten Knoten wird eine PowerShell-Sitzung als Administrator gestartet und dazu die folgenden Variabel angelegt.
Danach wird das Root-Zertifikat erstellt. Dazu habe ich die folgenden Punkte geändert (Zeile 26).
- KeyUsage CertSign in
- KeyUsage CertSign, CRLSign, DigitalSignature
Darüber hinaus in Zeile 27
- KeyLength 2056 in
- KeyLength 4096
Der Server auf dem das Root-Zertifikat erstellen, muss diesem ebenfalls vertrauen. Darum wird das Zertifikat von Personal nach Trusted Root Certification Authorities kopiert.
Nun wird auf demselben Knoten sowohl das Root-Zertifikat exportiert als auch die Server-Zertifikate erstellt.
Auch bei der Erstellung der Server-Zertifikaten habe ich ein paar Änderungen vorgenommen.
Hinzufügen eines weiteren Parameters (Zeile 64), wobei ich dazu (Zeile 60) den FQDN erstelle
- DnsName $fqdn, $name
- KeyLength 4096
Auf allen Hyper-V Hosts muss nun die Prüfung der Zertifikate abgeschaltet werden.
Nun werden die Zertifikate auf die anderen Knoten (hier nur einer) verteilt.
Kleiner Tipp, der “\” am Ende des Pfads erstellt das Verzeichnis automatisch.
Nun wird auf dem 2ten Knoten sowohl das Root- als auch der Server-Zertifikat importiert
Das sieht dann auf jedem Hyper-V Host wie folgt aus.
So, damit sollte die Hyper-V Replikation eigentlich funktionieren, was aber nicht der Fall war. Zusätzlich zur certificate-based Authentification (HTTPS), musste ich auch noch die Verwendung von Kerberos (HTTP) aktivieren! Warum, kann ich nicht genau sagen und muss hier nochmals mit einem Netzwerk-Trace der Sache auf den Grund gehen.
Mit dieser Konfiguration funktioniert nun die Hyper-V Replikation auch mit Hyper-V Hosts die in einer Samba-Domain und dem Synology Directory Server Mitglied sind.
Enjoy it, b!