Fehlertolerante Microsoft Active Directory-Umgebung bereitstellen


Diese Anleitung ist der erste Teil einer Reihe, in der gezeigt wird, wie Sie eine hochverfügbare Windows-Architektur in Google Cloud mit Microsoft Active Directory, SQL Server und Internet Information Services (IIS) bereitstellen. In dieser Anleitung richten Sie zwei redundante Windows-Domänencontroller mit Active Directory ein und verwenden dabei ein VPC-Netzwerk (Virtual Private Cloud) und mehrere Subnetze.

Die Reihe besteht aus folgenden Anleitungen:

Die einzelnen Anleitungen basieren auf der Infrastruktur, die Sie in der vorigen Anleitung erstellt haben.

Sie können in dieser Anleitung auch erfahren, wie Sie eine Active Directory-Konfiguration zur Verwendung in anderen Architekturen einrichten. Nicht besprochen wird, wie Sie eine Remote-Active-Directory-Umgebung in die neue, Google Cloud-basierte Active Directory-Umgebung replizieren. Dies ist aber mit Cloud VPN und zusätzlicher Active Directory-Konfiguration möglich.

Architektur

Fehlertolerante Active Directory-Architektur in Google Cloud

Ziele

  • Ein VPC-Netzwerk im benutzerdefinierten Modus mit zwei Subnetzen erstellen, die sich über zwei Zonen erstrecken
  • Virtuelle Windows Server-Instanzen erstellen und Active Directory Domain Services aktivieren
  • Neue Domain mit Active Directory konfigurieren
  • Die neuen Windows Server-Instanzen mit der neuen Domain verbinden
  • Firewallregeln konfigurieren, um Traffic zu den virtuellen Maschinen zuzulassen
  • Die Konfiguration testen.

Kosten

In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloud verwendet, darunter:

Gemäß dem Preisrechner liegen die geschätzten Kosten für diese Umgebung bei ca. 4 $ pro Tag.

Vorbereitung

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  2. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  3. Compute Engine API aktivieren.

    Aktivieren Sie die API

Gemeinsame Variablen initialisieren

Sie müssen verschiedene Variablen definieren, die festlegen, wo Elemente der Infrastruktur bereitgestellt werden.

  1. Rufen Sie Cloud Shell auf.

    Cloud Shell öffnen

  2. Erstellen Sie in Cloud Shell die folgenden Umgebungsvariablen, um die Werte festzulegen, die später in der Anleitung benötigt werden.

    Durch die Befehle wird als Region us-east-1 festgelegt. Sie können eine andere Region verwenden, müssen sich diese dann aber gut merken, damit Sie dieselbe Region in den folgenden Anleitungen verwenden können.

    export region=us-east1
    export zone_1=${region}-b
    export zone_2=${region}-c
    export vpc_name=webappnet
    export project_id=your-project-id
    

    Ersetzen Sie your-project-id durch die ID des von Ihnen verwendeten Google Cloud-Projekts.

  3. Führen Sie die folgenden Befehle aus, um die Standardregion und die Projekt-ID festzulegen, damit Sie diese Werte nicht bei jedem nachfolgenden Befehl angeben müssen:

    gcloud config set compute/region ${region}
    gcloud config set project ${project_id}
    

Netzwerkinfrastruktur erstellen

Nachdem Sie die Infrastrukturvariablen definiert haben, müssen Sie das Netzwerk und die Subnetze erstellen, die von Active Directory verwendet werden.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um das VPC-Netzwerk zu erstellen:

    gcloud compute networks create ${vpc_name}  \
        --description "VPC network to deploy Active Directory" \
        --subnet-mode custom
    

    Die folgende Warnung wird angezeigt. Sie können diese aber ignorieren, da Sie die Firewallregeln später erstellen.

    Instances on this network will not be reachable until firewall rules
    are created.
    
  2. Fügen Sie dem VPC-Netzwerk zwei Subnetze hinzu:

    gcloud compute networks subnets create private-ad-zone-1 \
        --network ${vpc_name} \
        --range 10.1.0.0/24
    
    gcloud compute networks subnets create private-ad-zone-2 \
        --network ${vpc_name} \
        --range 10.2.0.0/24
    
  3. Erstellen Sie eine interne Firewallregel, um den Traffic zwischen den Subnetzen zuzulassen:

    gcloud compute firewall-rules create allow-internal-ports-private-ad \
        --network ${vpc_name} \
        --allow tcp:1-65535,udp:1-65535,icmp \
        --source-ranges  10.1.0.0/24,10.2.0.0/24
    
  4. Erstellen Sie eine Firewallregel, um von einem beliebigen Ort aus eine RDP-Verbindung an Port 3389 zuzulassen:

    gcloud compute firewall-rules create allow-rdp \
        --network ${vpc_name} \
        --allow tcp:3389 \
        --source-ranges 0.0.0.0/0
    

Ersten Domänencontroller erstellen

Als Nächstes erstellen Sie einen Domaincontroller mit den folgenden Attributen:

  • Name: ad-dc1
  • IP-Adresse: 10.1.0.100
  1. Erstellen Sie eine Compute Engine-Instanz von Windows Server 2016, die als erster Domaincontroller verwendet werden soll:

    gcloud compute instances create ad-dc1 --machine-type n1-standard-2 \
        --boot-disk-type pd-ssd \
        --boot-disk-size 50GB \
        --image-family windows-2016 --image-project windows-cloud \
        --network ${vpc_name} \
        --zone ${zone_1} --subnet private-ad-zone-1 \
        --private-network-ip=10.1.0.100
    
  2. Warten Sie etwa eine Minute und erstellen Sie dann ein Passwort für die Windows-Instanz ad-dc1:

    gcloud compute reset-windows-password ad-dc1 --zone ${zone_1} --quiet
    

    Der Nutzername ist der Ihres Google-Kontos. Notieren Sie Nutzernamen und Passwort.

  3. Verwenden Sie RDP, um mit den im vorherigen Schritt erstellten Anmeldedaten eine Verbindung zur Domänencontrollerinstanz herzustellen.

  4. Öffnen Sie ein PowerShell-Terminal als Administrator. Klicken Sie auf Start, geben Sie PowerShell ein und drücken Sie dann Umschalt+Strg+Eingabe.

  5. Legen Sie die Windows-Anmeldedaten für das Administratorkonto fest:

    net user Administrator *
    

    Sie werden aufgefordert, ein Passwort zu erstellen. Wählen Sie ein starkes Passwort und bewahren Sie es zum späteren Gebrauch an einem sicheren Ort auf.

    Das Administratorkonto wird zu einem Domainadministratorkonto, nachdem Sie die Active Directory-Gesamtstruktur damit erstellt haben.

  6. Aktivieren Sie das Konto:

    net user Administrator /active:yes
    
  7. Installieren Sie Active Directory Domain Services, einschließlich Management Tools:

    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
  8. Legen Sie die folgenden Variablen fest:

    $DomainName = "example-gcp.com"
    $DomainMode = "7"
    $ForestMode = "7"
    $DatabasePath = "C:\Windows\NTDS"
    $SysvolPath = "C:\Windows\SYSVOL"
    $LogPath = "C:\Logs"
    
  9. Installieren Sie die neue Active Directory-Gesamtstrukturkonfiguration im Windows Server 2016-Modus:

    Install-ADDSForest -CreateDnsDelegation:$false `
        -DatabasePath $DatabasePath `
        -LogPath $LogPath `
        -SysvolPath $SysvolPath `
        -DomainName $DomainName `
        -DomainMode $DomainMode `
        -ForestMode $ForestMode `
        -InstallDNS:$true `
        -NoRebootOnCompletion:$true `
        -Force:$true
    
  10. Wenn Sie dazu aufgefordert werden, geben Sie ein Administratorpasswort für den abgesicherten Modus ein. Bewahren Sie das Passwort für den späteren Gebrauch an einem sicheren Ort auf.

  11. Schließen Sie die folgenden Warnungen. Jede Warnung wird zweimal angezeigt. Einmal während der Prüfung der Voraussetzungen und ein zweites Mal während des Installationsvorgangs.

    WARNING: Windows Server 2016 domain controllers have a default for the
    security setting named Allow cryptography algorithms compatible with
    Windows NT 4.0 that prevents weaker cryptography algorithms when
    establishing security channel sessions.
    For more information about this setting, see Knowledge Base article 942564 (http://go.microsoft.com/fwlink/?LinkId=104751).
    WARNING: This computer has at least one physical network adapter that does
    not have static IP address(es) assigned to its IP Properties. If both IPv4
    and IPv6 are enabled for a network adapter, both IPv4 and IPv6 static IP
    addresses should be assigned to both IPv4 and IPv6 Properties of the
    physical network adapter. Such static IP address(es) assignment should be
    done to all the physical network adapters for reliable Domain Name
    System (DNS) operation.
    
    WARNING: A delegation for this DNS server cannot be created because the
    authoritative parent zone cannot be found or it does not run Windows DNS
    server. If you are integrating with an existing DNS infrastructure, you
    should manually create a delegation to this DNS server in the parent zone
    to ensure reliable name resolution from outside the domain "example-gcp.com".
    Otherwise, no action is required.
    
  12. Starten Sie die virtuelle Maschine neu:

    Restart-Computer
    
  13. Stellen Sie mithilfe von RDP eine Verbindung zum Domaincontroller ad-dc1 her. Verwenden Sie die Administratoranmeldedaten, die Sie bei der Installation der Active Directory-Gesamtstruktur festgelegt haben. Denken Sie daran, den Domainnamen wie in EXAMPLE-GCP\Administrator als Präfix hinzuzufügen.

  14. Öffnen Sie ein PowerShell-Terminal als Administrator.

  15. Legen Sie die folgenden Variablen fest:

    $DNSPrimary = "10.2.0.100"
    $DNSSecondary = "127.0.0.1"
    $LocalStaticIp = "10.1.0.100"
    $DefaultGateway = "10.1.0.1"
    
  16. Legen Sie die IP-Adresse und das Standardgateway fest:

    netsh interface ip set address name=Ethernet static `
        $LocalStaticIp 255.255.255.0 $DefaultGateway 1
    
  17. Konfigurieren Sie den primären DNS-Server:

    netsh interface ip set dns Ethernet static $DNSPrimary
    

    Der DNS-Server ad-dc2 ist erst verfügbar, nachdem der zweite Domaincontroller bereitgestellt wurde. Deshalb können Sie die folgende Fehlermeldung ignorieren:

    The configured DNS server is incorrect or does not exist.
  18. Konfigurieren Sie den sekundären DNS-Server:

    netsh interface ip add dns Ethernet $DNSSecondary index=2
    

    Der DNS-Servereintrag ad-dc1 für diesen Domaincontroller sollte in der Liste an zweiter Stelle stehen, um eine häufige Verbindungsunterbrechung zwischen Active Directory und dem anderen Controller zu vermeiden. Verwenden Sie den zweiten Domaincontroller ad-dc2 als primären DNS-Server. Den Domaincontroller ad-dc2 erstellen Sie im nächsten Abschnitt. Wenn Sie sich nicht an dieses Vorgehen halten, werden die folgenden Fehler unter Server-Manager > Active Directory Domain Services angezeigt:

    The DFS Replication service failed to update configuration in Active
    Directory Domain Services. The service will retry this operation
    periodically.
    

    Bevor beide Server vollständig konfiguriert sind, werden auf dem Server ad-dc1 möglicherweise Fehler angezeigt. Sie können diese Fehler ignorieren.

Zweiten Domänencontroller erstellen

Als Nächstes erstellen Sie einen zweiten Domaincontroller in einer anderen Zone, um Fehlertoleranz zu gewährleisten. Der zweite Domänencontroller hat die folgenden Eigenschaften:

  • Name: ad-dc2
  • IP-Adresse: 10.2.0.100
  1. Wenn Ihr Cloud Shell-Fenster abgelaufen ist, öffnen Sie eine neue Cloud Shell-Instanz und setzen die zuvor festgelegten Variablen zurück. Dazu bearbeiten Sie das folgende Skript: Geben Sie die Projekt-ID und Region an, die Sie zuvor verwendet haben.

    region=us-east1
    zone_2=${region}-c
    zone_1=${region}-b
    vpc_name=webappnet
    project_id=your-project-id
    
    gcloud config set compute/region ${region}
    gcloud config set project ${project_id}
    

    Ersetzen Sie your-project-id durch die ID des von Ihnen verwendeten Google Cloud-Projekts.

  2. Kopieren Sie das Skript in Ihr Cloud Shell-Fenster und führen Sie es aus.

  3. Verwenden Sie Cloud Shell zum Erstellen der zweiten Domänencontrollerinstanz:

    gcloud compute instances create ad-dc2 --machine-type n1-standard-2 \
        --boot-disk-size 50GB \
        --boot-disk-type pd-ssd \
        --image-family windows-2016 --image-project windows-cloud \
        --can-ip-forward \
        --network ${vpc_name} \
        --zone ${zone_2} \
        --subnet private-ad-zone-2 \
        --private-network-ip=10.2.0.100
    
  4. Warten Sie etwa eine Minute und erstellen Sie dann ein Passwort für die Windows-Instanz ad-dc2:

    gcloud compute reset-windows-password ad-dc2 --zone ${zone_2} --quiet
    

    Der Nutzername ist der Ihres Google-Kontos. Notieren Sie Nutzernamen und Passwort.

  5. Verwenden Sie RDP, um mit den im vorherigen Schritt erstellten Anmeldedaten eine Verbindung zur Domänencontrollerinstanz herzustellen.

  6. Öffnen Sie ein PowerShell-Terminal als Administrator.

  7. Installieren Sie Active Directory Domain Services, einschließlich Management Tools:

    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
  8. Legen Sie die folgenden Variablen fest:

    $DomainName = "example-gcp.com"
    $DomainPrefix = "EXAMPLE-GCP"
    $DNSPrimary = "10.1.0.100"
    $DNSSecondary = "127.0.0.1"
    $LocalStaticIp = "10.2.0.100"
    $DefaultGateway = "10.2.0.1"
    $DatabasePath = "C:\Windows\NTDS"
    $SysvolPath = "C:\Windows\SYSVOL"
    $LogPath = "C:\Logs"
    
  9. Konfigurieren Sie den primären DNS-Server:

    netsh interface ip set dns Ethernet static $DNSPrimary
    
  10. Konfigurieren Sie den zweiten Server so, dass er als eigener sekundärer DNS-Server fungiert:

    netsh interface ip add dns Ethernet $DNSSecondary index=2
    

    Der DNS-Server ad-dc2 ist erst verfügbar, wenn ad-dc2 der Domain als Domaincontroller hinzugefügt wurde. Da der Server noch nicht hinzugefügt wurde, wird die folgende Meldung angezeigt, die Sie jedoch ignorieren können:

    The configured DNS server is incorrect or does not exist.
  11. Legen Sie die IP-Adresse und das Standardgateway fest:

    netsh interface ip set address name=Ethernet static `
        $LocalStaticIp 255.255.255.0 $DefaultGateway 1
    
  12. Führen Sie das folgende PowerShell-Skript aus, das Sie darüber informiert, wann der erste Domänencontroller betriebsbereit ist. Warten Sie, bis die Meldung Domain controller is reachable angezeigt wird.

    $DomainIsReady=$False
    For ($i=0; $i -le 30; $i++) {
        nltest /dsgetdc:$DomainName
        if($LASTEXITCODE -ne 0) {
            Write-Host "Domain not ready, wait 1 more minute, then retry"
            Start-Sleep -s 60
        }
        else {
            $DomainIsReady=$True
            Write-Host "Domain controller is reachable"
            break
        }
    }
    if($DomainIsReady -eq $False) {
        Write-Host "Domain not ready. Check if it was deployed ok"
    }
    
  13. Fügen Sie die virtuelle Maschine als zweiten Domänencontroller zur Gesamtstruktur hinzu:

    Install-ADDSDomainController `
        -Credential (Get-Credential "$DomainPrefix\Administrator") `
        -CreateDnsDelegation:$false `
        -DatabasePath $DatabasePath `
        -DomainName $DomainName `
        -InstallDns:$true `
        -LogPath $LogPath `
        -SysvolPath $SysvolPath `
        -NoGlobalCatalog:$false `
        -SiteName 'Default-First-Site-Name' `
        -NoRebootOnCompletion:$true `
        -Force:$true
    
  14. Wenn Sie aufgefordert werden, ein Passwort für das Administratorkonto einzugeben, verwenden Sie die Administratoranmeldedaten, die Sie während der Installation der Active Directory-Gesamtstruktur festgelegt haben. Fügen Sie den Domainnamen wie in EXAMPLE-GCP\Administrator als Präfix hinzu.

  15. Wenn Sie aufgefordert werden, ein Administratorpasswort für den abgesicherten Modus einzugeben, verwenden Sie dasselbe Passwort, das Sie für den ersten Domänencontroller verwendet haben.

  16. Ignorieren Sie die folgenden Warnungen. Jede Warnung wird zweimal angezeigt. Einmal während der Prüfung der Voraussetzungen und ein zweites Mal während des Installationsvorgangs.

    WARNING: Windows Server 2016 domain controllers have a default for the
    security setting named "Allow cryptography algorithms compatible with
    Windows NT 4.0" that prevents weaker cryptography algorithms when
    establishing security channel sessions.
    For more information about this setting, see Knowledge Base article 942564 (http://go.microsoft.com/fwlink/?LinkId=104751).
    WARNING: A delegation for this DNS server cannot be created because the
    authoritative parent zone cannot be found or it does not run Windows DNS
    server. If you are integrating with an existing DNS infrastructure, you
    should manually create a delegation to this DNS server in the parent zone
    to ensure reliable name resolution from outside the domain
    "example-gcp.com". Otherwise, no action is required.
    
  17. Starten Sie die virtuelle Maschine neu:

    Restart-Computer
    

Installation testen

  1. Warten Sie 5 bis 10 Minuten, bis beide Domänencontroller funktionsfähig sind und Daten replizieren.

  2. Verwenden Sie RDP, um mit den bei der Installation des ersten Domänencontrollers definierten Administratoranmeldedaten eine Verbindung zu diesem herzustellen. Fügen Sie den Domainnamen wie in EXAMPLE-GCP\Administrator als Präfix hinzu.

  3. Öffnen Sie ein PowerShell-Terminal als Administrator.

  4. Testen Sie, ob die Replikation funktioniert:

    repadmin /replsum
    

    Die Ausgabe sollte ungefähr so aussehen und keine Fehler enthalten:

    Ergebnis des Replikationstests ohne Fehler

    Wenn der Domaincontroller nicht verfügbar ist, wird eine Meldung wie die folgende angezeigt:

    Beginning data collection for replication summary, this may take awhile:
    .... Source DSA largest delta fails/total %% error
    Destination DSA largest delta fails/total %% error

    Wenn diese Meldung angezeigt wird, warten Sie ein paar Minuten und wiederholen Sie dann den Befehl.

Bereinigen

Wenn Sie mit der nächsten Anleitung in dieser Reihe (SQL-Server für mehrere Subnetze bereitstellen) fortfahren möchten, behalten Sie die in dieser Anleitung erstellten Ressourcen bei. Wenn Sie jedoch nicht die in dieser Anleitung erstellte Active Directory-Umgebung verwenden möchten, bereinigen Sie die in Google Cloud erstellten Ressourcen, damit Ihnen keine Kosten in Rechnung gestellt werden. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten, wenn Sie das zum Ausführen der Anleitung erstellte Projekt löschen.

So löschen Sie das Projekt:

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Instanzen löschen

So löschen Sie eine Compute Engine-Instanz:

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie auf das Kästchen für die Die Instanz, die Sie löschen möchten.
  3. Klicken Sie zum Löschen der Instanz auf Weitere Aktionen, dann auf Löschen, und folgen Sie dann der Anleitung.

VPC-Netzwerke löschen

So löschen Sie VPC-Netzwerk, Subnetze und Firewallregeln:

  1. Rufen Sie in der Google Cloud Console die Seite "VPC-Netzwerke" auf.

    Zur Seite "VPC-Netzwerke"

  2. Wählen Sie das von Ihnen erstellte VPC-Netzwerk aus.

  3. Klicken Sie oben auf der Seite auf Löschen.

Nächste Schritte