Déployer un environnement Microsoft Active Directory tolérant aux pannes

Ce tutoriel fait partie d'une série destinée à vous aider à déployer une architecture Windows à disponibilité élevée sur Google Cloud Platform (GCP) avec Microsoft Active Directory (AD), SQL Server et Internet Information Services (IIS). Dans ce tutoriel, vous configurez une paire redondante de contrôleurs de domaine Windows (DC) avec Active Directory à l'aide d'un nouveau réseau VPC (Virtual Private Cloud) et de plusieurs sous-réseaux.

Vous pouvez également utiliser ce tutoriel pour apprendre à mettre au point une configuration AD à utiliser dans d'autres architectures. Ce guide ne couvre pas la réplication d'un environnement AD distant vers le nouvel environnement AD basé sur GCP, bien que cela soit possible avec Cloud VPN et une configuration AD supplémentaire.

Architecture

Architecture Active Directory tolérante aux pannes sur GCP

Objectifs

  • Créer un réseau VPC en mode personnalisé avec deux sous-réseaux couvrant deux zones.
  • Créer des instances virtuelles Windows Server et activer les services de domaine AD.
  • Configurer un nouveau domaine avec Active Directory.
  • Joindre les nouvelles instances Windows Server au nouveau domaine.
  • Configurer les règles de pare-feu pour autoriser le trafic vers les machines virtuelles.
  • Tester la configuration.

Coûts

Ce tutoriel utilise des composants facturables de Google Cloud Platform, dont :

Le simulateur de coût estime le coût de cet environnement à environ 4 $ par jour.

Avant de commencer

  1. Sélectionnez ou créez un projet Google Cloud Platform.

    Accéder à la page "Gérer les ressources"

  2. Assurez-vous que la facturation est activée pour votre projet Google Cloud Platform.

    Découvrir comment activer la facturation

  3. Activez Compute Engine API.

    Activer l'API.

Initialiser des variables communes

Vous devez définir plusieurs variables d'environnement qui contrôlent où les éléments de l'infrastructure sont déployés.

  1. Allez dans Cloud Shell.

    Ouvrir Cloud Shell

  2. Dans Cloud Shell, créez les variables d'environnement suivantes pour définir les valeurs dont vous aurez besoin ultérieurement dans le tutoriel. Remplacez votre ID de projet par [YOUR_PROJECT_ID].

    La variable définit la région sur us-east-1. Si vous avez utilisé une région différente dans le tutoriel précédent, utilisez cette région ici.

    export region=us-east1
    export zone_1=${region}-b
    export zone_2=${region}-c
    export vpc_name=webappnet
    export project_id=[YOUR_PROJECT_ID]
    
  3. Exécutez les commandes suivantes pour définir la région et l'ID du projet par défaut afin d'éviter de devoir spécifier ces valeurs dans toutes les commandes ultérieures :

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

Créer l'infrastructure réseau

Une fois que vous avez défini les variables d'infrastructure, il est temps de créer le réseau et les sous-réseaux utilisés par AD.

  1. Dans Cloud Shell, exécutez la commande suivante pour créer le réseau VPC :

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

    Vous recevrez l'avertissement suivant, que vous pouvez ignorer, car vous allez créer ces règles de pare-feu lors d'étapes ultérieures.

    Instances on this network will not be reachable until firewall rules
    are created.
    
  2. Ajoutez deux sous-réseaux au réseau 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. Créez une règle de pare-feu interne pour autoriser le trafic entre les sous-réseaux :

    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. Créez une règle de pare-feu pour autoriser une connexion RDP sur le port 3389 à partir de n'importe quel emplacement :

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

Créer le premier contrôleur de domaine

Vous allez ensuite créer un contrôleur de domaine ayant les propriétés suivantes :

  • Nom : ad-dc1
  • Adresse IP : 10.1.0.100

  1. Créez une instance Google Compute Engine de Windows Server 2016 à utiliser comme premier contrôleur de domaine :

    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. Attendez environ une minute, puis créez un mot de passe pour l'instance Windows ad-dc1 :

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

    Le nom d'utilisateur est le nom d'utilisateur de votre compte Google. Prenez note du nom d'utilisateur et du mot de passe pour une utilisation future.

  3. Utilisez RDP pour vous connecter à l'instance du contrôleur de domaine avec les identifiants créés à l'étape précédente.

  4. Ouvrez un terminal PowerShell en tant qu'administrateur. Cliquez sur Démarrer, saisissez PowerShell, puis appuyez sur Maj+Ctrl+Entrée.

  5. Définissez les identifiants Windows du compte Administrateur :

    net user Administrator *
    

    Vous êtes invité à créer un mot de passe. Utilisez un mot de passe sécurisé et stockez-le en lieu sûr pour une utilisation ultérieure.

    Le compte Administrateur deviendra un compte d'administrateur de domaine une fois que vous aurez créé la forêt AD avec.

  6. Activez le compte :

    net user Administrator /active:yes
    
  7. Installez les services de domaine Active Directory, y compris les outils de gestion :

    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
  8. Définissez les variables suivantes :

    $DomainName = "example-gcp.com"
    $DomainMode = "7"
    $ForestMode = "7"
    $DatabasePath = "C:\Windows\NTDS"
    $SysvolPath = "C:\Windows\SYSVOL"
    $LogPath = "C:\Logs"
    
  9. Installez la nouvelle configuration de forêt Active Directory en mode 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. Lorsque vous y êtes invité, entrez un mot de passe administrateur en mode sans échec. Stockez le mot de passe dans un endroit sûr pour une utilisation future.

  11. Ignorez les avertissements suivants. Chaque avertissement apparaîtra deux fois, une fois lors de la vérification des conditions préalables et une seconde fois pendant le processus d'installation.

    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. Redémarrez la machine virtuelle :

    Restart-Computer
    
  13. Utilisez RDP pour vous connecter au contrôleur de domaine ad-dc1 avec les identifiants d'administrateur que vous avez définis lors de l'installation de la forêt AD. N'oubliez pas d'ajouter le nom de domaine en tant que préfixe, comme dans EXAMPLE-GCP\Administrator.

  14. Ouvrez un terminal PowerShell en tant qu'administrateur.

  15. Définissez les variables suivantes :

    $DNSPrimary = "10.2.0.100"
    $DNSSecondary = "127.0.0.1"
    $LocalStaticIp = "10.1.0.100"
    $DefaultGateway = "10.1.0.1"
    
  16. Définissez l'adresse IP et la passerelle par défaut :

    netsh interface ip set address name=Ethernet static `
        $LocalStaticIp 255.255.255.0 $DefaultGateway 1
    
  17. Configurez le serveur DNS principal :

    netsh interface ip set dns Ethernet static $DNSPrimary
    

    Le serveur DNS ad-dc2 ne sera disponible qu'après le déploiement du deuxième contrôleur de domaine. Vous pouvez donc ignorer le message d'erreur suivant :

    The configured DNS server is incorrect or does not exist.
  18. Configurez le serveur DNS secondaire :

    netsh interface ip add dns Ethernet $DNSSecondary index=2
    

    L'entrée du serveur DNS pour ce contrôleur de domaine, ad-dc1, doit figurer en deuxième position dans la liste afin d'empêcher AD de perdre fréquemment la connexion avec l'autre contrôleur. Utilisez le deuxième contrôleur de domaine, ad-dc2, en tant que serveur DNS principal. Vous allez créer le contrôleur de domaine ad-dc2 dans la section suivante. Si vous ne suivez pas ce schéma, les erreurs suivantes apparaissent sous Gestionnaire de serveur > Services de domaine Active Directory :

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

    Il est possible que des erreurs s'affichent sur le serveur ad-dc1 avant que les deux serveurs soient entièrement configurés. Vous pouvez ignorer ces erreurs.

Créer le deuxième contrôleur de domaine

Vous allez ensuite créer un deuxième contrôleur de domaine dans une zone différente pour assurer la tolérance aux pannes. Le deuxième contrôleur de domaine comprend les propriétés suivantes :

  • Nom : ad-dc2
  • Adresse IP : 10.2.0.100

  1. Si votre fenêtre Cloud Shell a expiré, ouvrez une nouvelle instance Cloud Shell et réinitialisez les variables que vous avez définies précédemment. Pour cela, modifiez le script suivant pour spécifier l'ID du projet et la région utilisés précédemment.

    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}
    
  2. Copiez le script dans votre fenêtre Cloud Shell et exécutez-le.

  3. Utilisez Cloud Shell pour créer la deuxième instance du contrôleur de domaine :

    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. Attendez environ une minute, puis créez un mot de passe pour l'instance Windows ad-dc2 :

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

    Le nom d'utilisateur est le nom d'utilisateur de votre compte Google. Prenez note du nom d'utilisateur et du mot de passe pour une utilisation future.

  5. Utilisez RDP pour vous connecter à l'instance du contrôleur de domaine avec les identifiants créés à l'étape précédente.

  6. Ouvrez un terminal PowerShell en tant qu'administrateur.

  7. Installez les services de domaine Active Directory, y compris les outils de gestion :

    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
  8. Définissez les variables suivantes :

    $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. Configurez le serveur DNS principal :

    netsh interface ip set dns Ethernet static $DNSPrimary
    
  10. Configurez le deuxième serveur de sorte qu'il agisse comme son propre serveur DNS secondaire :

    netsh interface ip add dns Ethernet $DNSSecondary index=2
    

    Le serveur DNS ad-dc2 ne sera disponible qu'une fois que ad-dc2 a été ajouté au domaine en tant que contrôleur de domaine. Comme le serveur n'a pas encore été joint, le message suivant s'affiche, mais vous pouvez l'ignorer :

    The configured DNS server is incorrect or does not exist.
  11. Définissez l'adresse IP et la passerelle par défaut :

    netsh interface ip set address name=Ethernet static `
        $LocalStaticIp 255.255.255.0 $DefaultGateway 1
    
  12. Exécutez le script PowerShell suivant qui vous indiquera quand le premier contrôleur de domaine sera opérationnel. Attendez que le message Domain controller is reachable s'affiche.

    $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. Ajoutez la machine virtuelle à la forêt en tant que deuxième contrôleur de domaine :

    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. Lorsque vous êtes invité à fournir un mot de passe pour le compte Administrateur, utilisez les identifiants de l'administrateur que vous avez définis lors de l'installation de la forêt AD. Ajoutez le nom de domaine en tant que préfixe, comme dans EXAMPLE-GCP\Administrator.

  15. Lorsque vous êtes invité à entrer un mot de passe administrateur en mode sans échec, utilisez le même mot de passe que celui que vous avez utilisé pour le premier contrôleur de domaine.

  16. Ignorez les avertissements suivants. Chaque avertissement apparaîtra deux fois, une fois lors de la vérification des conditions préalables et une seconde fois pendant le processus d'installation.

    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. Redémarrez la machine virtuelle :

    Restart-Computer
    

Tester l'installation

  1. Attendez 5 à 10 minutes pour vous assurer que les deux contrôleurs de domaine sont opérationnels et qu'ils répliquent les informations.

  2. À l'aide de RDP, connectez-vous à la première instance de contrôleur de domaine à l'aide des identifiants d'administrateur que vous avez définis lors de l'installation du premier contrôleur de domaine. Ajoutez le nom de domaine en tant que préfixe, comme dans EXAMPLE-GCP\Administrator.

  3. Ouvrez un terminal PowerShell en tant qu'administrateur.

  4. Testez que la réplication fonctionne :

    repadmin /replsum
    

    La sortie devrait ressembler à ce qui suit, sans erreur ni échec.

    Résultat du test de la réplication, affichant une absence d'échec

    Si le contrôleur de domaine n'est pas disponible, vous recevez un message semblable à ce qui suit :

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

    Si vous recevez ce message, attendez quelques minutes, puis relancez la commande.

Effectuer un nettoyage

Si vous n'avez pas l'intention d'utiliser l'environnement AD que vous avez créé dans ce tutoriel, effacez les ressources que vous avez créées sur GCP afin qu'elles ne vous soient pas facturées. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet, procédez comme suit :

  1. Dans la console GCP, accédez à la page Projets.

    Accéder à la page Projets

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer delete.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer des instances

Pour supprimer une instance Compute Engine, procédez comme suit :

  1. Dans la console GCP, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Cochez la case à côté de l'instance que vous souhaitez supprimer.
  3. Cliquez sur le bouton Supprimer delete situé en haut de la page pour supprimer l'instance.

Supprimer des réseaux VPC

Pour supprimer les réseaux VPC, les sous-réseaux et les règles de pare-feu, procédez comme suit :

  1. Dans la console Cloud Platform, accédez à la page Réseaux VPC.

    Accéder à la page des réseaux VPC

  2. Sélectionnez le réseau VPC que vous avez créé.

  3. Cliquez sur le bouton Supprimer en haut de la page.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…