Implante um ambiente do Microsoft Active Directory tolerante a falhas

Este tutorial faz parte de uma série destinada a ajudar você a implantar uma arquitetura Windows altamente disponível no Google Cloud Platform (GCP) com o Microsoft Active Directory (AD), o SQL Server e o Internet Information Services (IIS, na sigla em inglês). Neste tutorial, você configurará um par redundante de Controladores de Domínio do Windows (DC, na sigla em inglês) com o AD usando uma nova rede de Nuvem Privada Virtual (VPC, na sigla em inglês) e múltiplas sub-redes.

Você também pode usar este tutorial para aprender a definir uma configuração do AD para uso em outras arquiteturas. Este guia não abrange a replicação de um ambiente AD remoto para o novo ambiente AD baseado no GCP, mesmo que isso seja possível com o Cloud VPN e uma configuração adicional do AD.

Arquitetura

Arquitetura do Active Directory tolerante a falhas no GCP

Objetivos

  • Criar uma rede VPC personalizada com duas sub-redes abrangendo duas zonas.
  • Criar instâncias virtuais do Windows Server e ativar o AD Domain Services.
  • Configurar um novo domínio com o Active Directory.
  • Unir as novas instâncias do Windows Server ao novo domínio.
  • Configurar regras de firewall para permitir o tráfego para as máquinas virtuais.
  • Testar a configuração.

Custos

Neste tutorial, você usa componentes faturáveis do Google Cloud Platform, incluindo:

A calculadora de preços estima o custo desse ambiente em cerca de US$ 4 por dia.

Antes de começar

  1. Selecione ou crie um projeto do Google Cloud Platform.

    Acessar a página Gerenciar recursos

  2. Verifique se o faturamento foi ativado no projeto do Google Cloud Platform.

    Saiba como ativar o faturamento

  3. Ativar Compute Engine API.

    Ativar a API

Inicializar variáveis comuns

Você precisa definir muitas variáveis de ambiente para controlar onde os elementos da infraestrutura são implantados.

  1. Acesse o Cloud Shell.

    Abrir o Cloud Shell

  2. No Cloud Shell, crie as variáveis de ambiente a seguir para definir valores de que você precisará posteriormente no tutorial. Substitua [YOUR_PROJECT_ID] pelo código do projeto.

    A variável define a região como us-east-1. Se você tiver usado uma região diferente no tutorial anterior, use a mesma região aqui.

    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. Execute os comandos a seguir para definir a região padrão e o código do projeto, de modo que não seja preciso especificar esses valores em cada comando subsequente:

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

Como criar a infraestrutura de rede

Depois de definir as variáveis da infraestrutura, é hora de criar a rede e as sub-redes que o AD usará.

  1. No Cloud Shell, execute o seguinte comando para criar a rede VPC:

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

    Você receberá o aviso a seguir, que pode ser ignorado, já que você criará essas regras de firewall em etapas posteriores.

    Instances on this network will not be reachable until firewall rules
    are created.
    
  2. Adicione duas sub-redes à rede 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. Crie uma regra de firewall interna para permitir o tráfego entre sub-redes:

    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. Crie uma regra de firewall para permitir uma conexão RDP na porta 3389 a partir de qualquer local:

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

Como criar o primeiro controlador de domínio

A seguir, você criará um controlador de domínio que tem as seguintes propriedades:

  • Nome: ad-dc1
  • Endereço IP: 10.1.0.100

  1. Crie uma instância do Google Compute Engine do Windows Server 2016 a ser usada como o primeiro controlador de domínio:

    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. Aguarde aproximadamente um minuto e, em seguida, crie uma senha para a instância do Windows ad-dc1:

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

    O nome de usuário é o mesmo da sua conta do Google. Anote o nome de usuário e a senha para uso futuro.

  3. Use o RDP para se conectar à instância do controlador de domínio com as credenciais criadas na etapa anterior.

  4. Abra um terminal do PowerShell como administrador. Clique em Iniciar, digite PowerShell e pressione Shift+Ctrl+Enter.

  5. Defina as credenciais do Windows para a conta de administrador:

    net user Administrator *
    

    Será necessário criar uma senha. Use uma senha forte e a armazene em local seguro para uso futuro.

    A conta de administrador se tornará uma conta de administrador do domínio após a criação da floresta AD com essa conta.

  6. Ative a conta:

    net user Administrator /active:yes
    
  7. Instale o Active Directory Domain Services, incluindo as ferramentas de gerenciamento:

    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
  8. Configure as seguintes variáveis:

    $DomainName = "example-gcp.com"
    $DomainMode = "7"
    $ForestMode = "7"
    $DatabasePath = "C:\Windows\NTDS"
    $SysvolPath = "C:\Windows\SYSVOL"
    $LogPath = "C:\Logs"
    
  9. Instale a nova configuração de floresta do Active Directory no modo 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 for solicitado, digite uma senha de administrador do modo seguro. Armazene a senha em um local seguro para uso futuro.

  11. Descarte os avisos a seguir. Cada aviso aparecerá duas vezes, uma vez durante a verificação dos pré-requisitos e uma segunda vez durante o processo de instalação.

    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. Reinicie a máquina virtual:

    Restart-Computer
    
  13. Use o RDP para se conectar ao controlador do domínio ad-dc1 com as credenciais de administrador definidas durante a instalação da floresta AD. Lembre-se de adicionar o nome do domínio como prefixo, como em EXAMPLE-GCP\Administrator.

  14. Abra um terminal do PowerShell como administrador.

  15. Configure as seguintes variáveis:

    $DNSPrimary = "10.2.0.100"
    $DNSSecondary = "127.0.0.1"
    $LocalStaticIp = "10.1.0.100"
    $DefaultGateway = "10.1.0.1"
    
  16. Defina o endereço IP e o gateway padrão:

    netsh interface ip set address name=Ethernet static `
        $LocalStaticIp 255.255.255.0 $DefaultGateway 1
    
  17. Configure o servidor DNS primário:

    netsh interface ip set dns Ethernet static $DNSPrimary
    

    O servidor DNS ad-dc2 somente estará disponível após a implantação do segundo controlador de domínio. Portanto, você pode ignorar a seguinte mensagem de erro:

    The configured DNS server is incorrect or does not exist.
  18. Configure o servidor DNS secundário:

    netsh interface ip add dns Ethernet $DNSSecondary index=2
    

    A entrada do servidor DNS para este controlador de domínio, ad-dc1, deve ser a segunda na lista para evitar que o AD perca a conexão com o outro controlador com frequência. Use o segundo controlador de domínio, ad-dc2, como o servidor DNS primário. O controlador de domínio ad-dc2 será criado na próxima seção. Se você não seguir esse padrão, os erros a seguir aparecerão em Server Manager > Active Directory Domain Services:

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

    É possível que você veja erros no servidor ad-dc1 antes que ambos estejam totalmente configurados. Você pode ignorar esses erros.

Como criar o segundo controlador de domínio

A seguir, você criará um segundo controlador de domínio em uma zona diferente para proporcionar tolerância a falhas. O segundo controlador de domínio tem as seguintes propriedades:

  • Nome: ad-dc2
  • Endereço IP: 10.2.0.100

  1. Se a janela do Cloud Shell tiver expirado, abra uma nova instância do Cloud Shell e redefina as variáveis definidas anteriormente. Para isso, edite o script a seguir para especificar o código do projeto e a região usados anteriormente.

    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. Copie o script para a janela do Cloud Shell e execute-o.

  3. Use o Cloud Shell para criar a segunda instância do controlador de domínio:

    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. Aguarde aproximadamente um minuto e, em seguida, crie uma senha para a instância do Windows ad-dc2:

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

    O nome de usuário é o mesmo da sua conta do Google. Anote o nome de usuário e a senha para uso futuro.

  5. Use o RDP para se conectar à instância do controlador de domínio com as credenciais criadas na etapa anterior.

  6. Abra um terminal do PowerShell como administrador.

  7. Instale o Active Directory Domain Services, incluindo as ferramentas de gerenciamento:

    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
  8. Configure as seguintes variáveis:

    $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. Configure o servidor DNS primário:

    netsh interface ip set dns Ethernet static $DNSPrimary
    
  10. Configure o segundo servidor para que ele atue como seu próprio servidor DNS secundário:

    netsh interface ip add dns Ethernet $DNSSecondary index=2
    

    O servidor DNS ad-dc2 somente estará disponível depois que ad-dc2 for associado ao domínio como um controlador de domínio. Como o servidor ainda não foi associado, você verá a mensagem a seguir, que pode ser ignorada:

    The configured DNS server is incorrect or does not exist.
  11. Defina o endereço IP e o gateway padrão:

    netsh interface ip set address name=Ethernet static `
        $LocalStaticIp 255.255.255.0 $DefaultGateway 1
    
  12. Execute o script do PowerShell a seguir, que o informará quando o primeiro controlador de domínio se tornar operacional. Aguarde até ver a mensagem 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. Adicione a máquina virtual à floresta como um segundo controlador de domínio:

    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 for necessário fornecer uma senha para a conta de administrador, use as credenciais de administrador definidas durante a instalação da floresta AD. Adicione o nome do domínio como um prefixo, como em EXAMPLE-GCP\Administrator.

  15. Quando for necessário inserir uma senha de administrador do modo de segurança, use a mesma senha usada para o primeiro controlador de domínio.

  16. Ignore os avisos a seguir. Cada aviso aparece duas vezes: uma vez durante a verificação dos pré-requisitos e uma segunda vez durante o processo de instalação.

    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. Reinicie a máquina virtual:

    Restart-Computer
    

Como testar a instalação

  1. Aguarde de 5 a 10 minutos para garantir que ambos os controladores de domínio estejam operacionais e replicando informações.

  2. Usando o RDP, conecte-se à primeira instância do controlador de domínio com as credenciais de administrador definidas durante a instalação do primeiro controlador de domínio. Adicione o nome do domínio como um prefixo, como em EXAMPLE-GCP\Administrator.

  3. Abra um terminal do PowerShell como administrador.

  4. Teste e verifique se a replicação está funcionando:

    repadmin /replsum
    

    A saída será semelhante a esta, sem erros ou falhas:

    Resultado do teste de replicação, mostrando zero falha

    Se o controlador de domínio não estiver disponível, você receberá uma mensagem semelhante à seguinte:

    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 você receber essa mensagem, aguarde alguns minutos e tente executar o comando novamente.

Como fazer a limpeza

Se você não pretende usar o ambiente do AD criado neste tutorial, limpe os recursos criados no GCP para que você não seja cobrado por eles. As seções a seguir explicam como excluir ou desativar esses recursos.

Excluir o projeto

O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.

Para excluir o projeto:

  1. No Console do GCP, acesse a página Projetos.

    Acessar a página Projetos

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir delete.
  3. Na caixa de diálogo, digite o código do projeto e clique em Encerrar para excluí-lo.

Como excluir instâncias

Para excluir uma instância do Compute Engine:

  1. No Console do GCP, acesse a página Instâncias de VM.

    Acessar a página "Instâncias de VMs"

  2. Clique na caixa de seleção ao lado da a instância que você quer excluir.
  3. Para excluir a instância, clique em Excluir excluir no topo da página.

Como excluir redes VPC

Para excluir a rede VPC, sub-redes e regras de firewall:

  1. No Console do Cloud Platform, acesse a página "Redes VPC".

    Acessar a página "Redes VPC"

  2. Selecione a rede VPC que você criou.

  3. Clique no botão Excluir na parte superior da página.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…