Deployment di un ambiente Microsoft Active Directory a tolleranza di errore


Questo tutorial è la prima parte di una serie che ti aiuterà a eseguire il deployment di un'architettura Windows ad alta disponibilità su Google Cloud con Microsoft Active Directory, SQL Server e Internet Information Services (IIS). In questo tutorial, configurerai una coppia ridondante di controller di dominio Windows con Active Directory utilizzando una nuova rete Virtual Private Cloud (VPC) e più subnet.

La serie è costituita da questi tutorial:

Ogni tutorial si basa sull'infrastruttura che hai creato nella precedente.

Puoi anche utilizzare questo tutorial per imparare a impostare una configurazione di Active Directory da utilizzare in altre architetture. Questa guida non copre la replica di un ambiente Active Directory remoto nel nuovo ambiente Active Directory basato su Google Cloud, anche se è possibile con Cloud VPN e la configurazione aggiuntiva di Active Directory.

Architettura

Architettura Active Directory a tolleranza di errore su Google Cloud.

Obiettivi

  • Crea una rete VPC in modalità personalizzata con due subnet su due zone.
  • Creare istanze virtuali Windows Server e abilitare i servizi di dominio Active Directory.
  • Configura un nuovo dominio con Active Directory.
  • Unisci le nuove istanze di Windows Server al nuovo dominio.
  • Configura le regole del firewall per consentire il traffico verso le macchine virtuali.
  • Esegui un test della configurazione.

Costi

Questo tutorial utilizza i componenti fatturabili di Google Cloud, tra cui:

Il Calcolatore prezzi stima il costo di questo ambiente di circa 4 $al giorno.

Prima di iniziare

  1. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  2. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  3. Attiva Compute Engine API.

    Abilita l'API

Inizializzazione delle variabili comuni

Devi definire diverse variabili di ambiente che controllano il deployment degli elementi dell'infrastruttura.

  1. Vai a Cloud Shell.

    Apri Cloud Shell

  2. In Cloud Shell, crea le seguenti variabili di ambiente per impostare i valori necessari più avanti nel tutorial.

    I comandi impostano la regione su us-east-1. Puoi utilizzare un'area geografica diversa, ma ricorda quella che utilizzi per poter utilizzare la stessa area geografica nei tutorial successivi.

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

    Sostituisci your-project-id con l'ID del progetto Google Cloud che stai utilizzando.

  3. Esegui questi comandi per impostare la regione e l'ID progetto predefiniti, in modo da non dover specificare questi valori in ogni comando successivo:

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

Creazione dell'infrastruttura di rete

Dopo aver definito le variabili di infrastruttura, è il momento di creare la rete e le subnet che Active Directory utilizzerà.

  1. In Cloud Shell, esegui il comando seguente per creare la rete VPC:

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

    Viene visualizzato il seguente avviso, che puoi ignorare, perché crei queste regole firewall nei passaggi successivi.

    Instances on this network will not be reachable until firewall rules
    are created.
    
  2. Aggiungi due subnet alla rete VPC:

    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. Crea una regola firewall interna per consentire il traffico tra subnet:

    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. Crea una regola firewall per consentire una connessione RDP sulla porta 3389 da qualsiasi località:

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

Creazione del primo controller di dominio

Successivamente, crea un controller di dominio con le seguenti proprietà:

  • Nome: ad-dc1
  • Indirizzo IP: 10.1.0.100
  1. Crea un'istanza di Compute Engine di Windows Server 2016 da utilizzare come primo controller di dominio:

    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. Attendi circa un minuto, quindi crea una password per l'istanza Windows ad-dc1:

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

    Il nome utente è il nome utente del tuo Account Google. Prendi nota di nome utente e password per gli utilizzi futuri.

  3. Utilizza RDP per connetterti all'istanza del controller di dominio con le credenziali create nel passaggio precedente.

  4. Apri un terminale PowerShell come amministratore. Fai clic su Start, digita PowerShell e premi Maiusc+Ctrl+Invio.

  5. Imposta le credenziali di Windows per l'account amministratore:

    net user Administrator *
    

    Ti viene chiesto di creare una password. Usa una password efficace e memorizzala in un luogo sicuro per utilizzarla in futuro.

    L'account amministratore diventerà un account amministratore di dominio dopo aver creato la Foresta di Active Directory.

  6. Attiva l'account:

    net user Administrator /active:yes
    
  7. Installa i servizi di dominio Active Directory, inclusi gli strumenti di gestione:

    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
  8. Imposta le variabili seguenti:

    $DomainName = "example-gcp.com"
    $DomainMode = "7"
    $ForestMode = "7"
    $DatabasePath = "C:\Windows\NTDS"
    $SysvolPath = "C:\Windows\SYSVOL"
    $LogPath = "C:\Logs"
    
  9. Installa la nuova configurazione di foresta di Active Directory in modalità Windows Server 2016:

    Install-ADDSForest -CreateDnsDelegation:$false `
        -DatabasePath $DatabasePath `
        -LogPath $LogPath `
        -SysvolPath $SysvolPath `
        -DomainName $DomainName `
        -DomainMode $DomainMode `
        -ForestMode $ForestMode `
        -InstallDNS:$true `
        -NoRebootOnCompletion:$true `
        -Force:$true
    
  10. Quando viene richiesto, inserisci una password per l'amministratore in modalità provvisoria. Conserva la password in un luogo sicuro per utilizzarla in futuro.

  11. Ignora i seguenti avvisi. Ogni avviso viene visualizzato due volte, una volta durante la verifica dei prerequisiti e una seconda volta durante il processo di installazione.

    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. Riavvia la macchina virtuale:

    Restart-Computer
    
  13. Utilizza RDP per connetterti al controller di dominio ad-dc1 con le credenziali di amministratore definite durante l'installazione della foresta di Active Directory. Ricorda di aggiungere il nome di dominio come prefisso, ad esempio EXAMPLE-GCP\Administrator.

  14. Apri un terminale PowerShell come amministratore.

  15. Imposta le variabili seguenti:

    $DNSPrimary = "10.2.0.100"
    $DNSSecondary = "127.0.0.1"
    $LocalStaticIp = "10.1.0.100"
    $DefaultGateway = "10.1.0.1"
    
  16. Imposta l'indirizzo IP e il gateway predefinito:

    netsh interface ip set address name=Ethernet static `
        $LocalStaticIp 255.255.255.0 $DefaultGateway 1
    
  17. Configura il server DNS principale:

    netsh interface ip set dns Ethernet static $DNSPrimary
    

    Il server DNS ad-dc2 sarà disponibile solo dopo il deployment del secondo controller di dominio, quindi puoi ignorare il seguente messaggio di errore:

    The configured DNS server is incorrect or does not exist.
  18. Configura il server DNS secondario:

    netsh interface ip add dns Ethernet $DNSSecondary index=2
    

    La voce del server DNS relativa a questo controller di dominio, ad-dc1, dovrebbe essere la seconda nell'elenco per evitare che Active Directory perda spesso la connessione con l'altro controller. Utilizza il secondo controller di dominio, ad-dc2, come server DNS principale. Crei il controller di dominio ad-dc2 nella sezione successiva. Se non segui questo pattern, in Server Manager > Servizi di dominio Active Directory vengono visualizzati i seguenti errori:

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

    Prima che entrambi i server siano completamente configurati, potresti riscontrare errori sul server ad-dc1. Puoi ignorare questi errori.

Creazione del secondo controller di dominio

In seguito, crei un secondo controller di dominio in una zona diversa per garantire la tolleranza agli errori. Il secondo controller di dominio ha le seguenti proprietà:

  • Nome: ad-dc2
  • Indirizzo IP: 10.2.0.100
  1. Se la finestra di Cloud Shell è scaduta, apri una nuova istanza di Cloud Shell e reimposta le variabili impostate in precedenza. Per farlo, modifica lo script seguente per specificare l'ID e la regione del progetto che hai utilizzato in precedenza.

    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}
    

    Sostituisci your-project-id con l'ID del progetto Google Cloud che stai utilizzando.

  2. Copia lo script nella finestra di Cloud Shell ed eseguilo.

  3. Utilizza Cloud Shell per creare la seconda istanza del controller di dominio:

    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. Attendi circa un minuto, quindi crea una password per l'istanza Windows ad-dc2:

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

    Il nome utente è il nome utente del tuo Account Google. Prendi nota di nome utente e password per un uso futuro.

  5. Utilizza RDP per connetterti all'istanza del controller di dominio con le credenziali create nel passaggio precedente.

  6. Apri un terminale PowerShell come amministratore.

  7. Installa i servizi di dominio Active Directory, inclusi gli strumenti di gestione:

    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
  8. Imposta le variabili seguenti:

    $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. Configura il server DNS principale:

    netsh interface ip set dns Ethernet static $DNSPrimary
    
  10. Configura il secondo server in modo che funga da server DNS secondario:

    netsh interface ip add dns Ethernet $DNSSecondary index=2
    

    Il server DNS ad-dc2 sarà disponibile solo dopo che ad-dc2 sarà stato aggiunto al dominio come controller di dominio. Poiché il server non è ancora stato aggiunto, viene visualizzato il seguente messaggio, ma puoi ignorarlo:

    The configured DNS server is incorrect or does not exist.
  11. Imposta l'indirizzo IP e il gateway predefinito:

    netsh interface ip set address name=Ethernet static `
        $LocalStaticIp 255.255.255.0 $DefaultGateway 1
    
  12. Esegui il seguente script di PowerShell, che ti comunicherà quando il primo controller di dominio diventerà operativo. Attendi finché non viene visualizzato il messaggio Domain controller is reachable.

    $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. Aggiungi la macchina virtuale alla foresta come secondo controller di dominio:

    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. Quando ti viene chiesto di fornire una password per l'account amministratore, utilizza le credenziali di amministratore definite durante l'installazione della foresta di Active Directory. Aggiungi il nome di dominio come prefisso, ad esempio EXAMPLE-GCP\Administrator.

  15. Quando ti viene chiesto di inserire una password amministratore in modalità provvisoria, utilizza la stessa password utilizzata per il primo controller di dominio.

  16. Ignora i seguenti avvisi. Ogni avviso viene visualizzato due volte: una durante la verifica dei prerequisiti e una seconda volta durante il processo di installazione.

    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. Riavvia la macchina virtuale:

    Restart-Computer
    

Test dell'installazione

  1. Attendi 5-10 minuti per assicurarti che entrambi i controller di dominio siano operativi e stiano replicando le informazioni.

  2. Utilizzando RDP, connettiti alla prima istanza di controller di dominio utilizzando le credenziali di amministratore definite durante la prima installazione del controller di dominio. Aggiungi il nome di dominio come prefisso, ad esempio EXAMPLE-GCP\Administrator.

  3. Apri un terminale PowerShell come amministratore.

  4. Verifica che la replica funzioni:

    repadmin /replsum
    

    L'output dovrebbe essere simile al seguente, senza errori.

    Risultato del test di replica, con zero errori

    Se il controller di dominio non è disponibile, viene visualizzato un messaggio simile al seguente:

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

    Se viene visualizzato questo messaggio, attendi un paio di minuti e riprova a eseguire il comando.

Esegui la pulizia

Se vuoi continuare con il tutorial successivo di questa serie (Deployment di un server SQL con più subnet), mantieni le risorse che hai creato in questo tutorial. Tuttavia, se non intendi utilizzare l'ambiente Active Directory creato in questo tutorial, vai avanti e pulisci le risorse che hai creato su Google Cloud, in modo che non ti vengano addebitati costi. Le seguenti sezioni descrivono come eliminare o disattivare queste risorse.

Elimina il progetto

Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.

Per eliminare il progetto:

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Eliminazione di istanze

Per eliminare un'istanza di Compute Engine:

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona la casella di controllo per l'istanza che vuoi eliminare.
  3. Per eliminare l'istanza, fai clic su Altre azioni, quindi su Elimina e segui le istruzioni.

Eliminazione delle reti VPC

Per eliminare la rete VPC, le subnet e le regole firewall:

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai alla pagina Reti VPC

  2. Seleziona la rete VPC che hai creato.

  3. Fai clic sul pulsante Elimina nella parte superiore della pagina.

Passaggi successivi