Implementación de un entorno de Microsoft Active Directory tolerante a errores

Este instructivo es parte de una serie que tiene como objetivo ayudarte a implementar una arquitectura de Windows de alta disponibilidad en Google Cloud Platform (GCP) a través de Active Directory (AD) de Microsoft, Internet Information Services (IIS) y SQL Server. En este instructivo, configurarás un par redundante de Controladores de dominio (DC) de Windows con AD mediante una red de nube privada virtual (VPC) nueva y subredes múltiples.

Además, puedes utilizar este instructivo para aprender a establecer una configuración de AD que se usará en otras arquitecturas. Esta guía no trata cómo replicar un entorno AD remoto en el nuevo entorno AD basado en GCP, si bien es posible hacerlo con Cloud VPN y una configuración de AD adicional.

Arquitectura

Arquitectura de Active Directory tolerante a errores en GCP

Objetivos

  • Crear una red de VPC de modo personalizado con dos subredes que abarquen dos zonas
  • Crear instancias virtuales de Windows Server y habilitar los servicios de dominio de AD
  • Configurar un nuevo dominio con Active Directory
  • Agregar las nuevas instancias de Windows Server al nuevo dominio
  • Configurar reglas de firewall a fin de permitir tráfico a las máquinas virtuales
  • Probar la configuración

Costos

En este instructivo, se utilizan componentes facturables de Google Cloud Platform, incluidos los siguientes:

La calculadora de precios estima un costo de cerca de $4 por día para este entorno.

Antes de comenzar

  1. Select or create a GCP project.

    Go to the Project selector page

  2. Asegúrate de tener habilitada la facturación para tu proyecto.

    Aprende a habilitar la facturación

  3. Habilita las API de Compute Engine necesarias.

    Habilita las API

Cómo inicializar variables comunes

Debes definir diferentes variables del entorno para controlar en qué lugar se implementan los elementos de la infraestructura.

  1. Ve a Cloud Shell.

    Abrir Cloud Shell

  2. En Cloud Shell, crea las siguientes variables del entorno a fin de fijar valores que necesitarás más adelante en este instructivo. Sustituye el ID del proyecto por [YOUR_PROJECT_ID].

    La variable establece la región como us-east-1. Si en el instructivo anterior utilizaste otra región, úsala aquí.

    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. Ejecuta el siguiente comando para establecer la región predeterminada y el ID del proyecto, y así no tendrás que especificar estos valores en todos los comandos posteriores:

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

Cómo crear la infraestructura de red

Luego de definir las variables de la infraestructura, debes crear la red y las subredes que utilizará AD.

  1. En Cloud Shell, ejecuta el siguiente comando a fin de crear la red de VPC:

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

    Recibirás la siguiente advertencia, que puedes ignorar, ya que crearás estas reglas de firewall más adelante en otros pasos.

    Instances on this network will not be reachable until firewall rules
    are created.
    
  2. Agrega dos subredes a la red de 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 regla de firewall interna a fin de permitir el tráfico entre subredes:

    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 regla de firewall para permitir una conexión RDP en el puerto 3389 desde cualquier ubicación:

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

Cómo crear el primer controlador de dominio

A continuación, crearás un controlador de dominio con las siguientes propiedades:

  • Nombre: ad-dc1
  • Dirección IP: 10.1.0.100

  1. Crea una instancia de Google Compute Engine de Windows Server 2016 para utilizarla como el primer controlador de 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. Espera aproximadamente un minuto y, a continuación, crea una contraseña para la instancia ad-dc1 de Windows:

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

    El nombre de usuario es el mismo que el de tu Cuenta de Google. Toma nota del nombre de usuario y la contraseña para utilizarlos más adelante.

  3. Utiliza RDP para conectarte a la instancia del controlador de dominio con las credenciales que creaste en el paso anterior.

  4. Abre una terminal de PowerShell como Administrador. (Haz clic en Inicio, escribe PowerShell y, luego, presiona Shift+Ctrl+Enter).

  5. Establece las credenciales de Windows para la Cuenta de administrador:

    net user Administrator *
    

    Se te pedirá que crees una contraseña. Utiliza una contraseña segura y almacénala en una ubicación segura, ya que deberás utilizarla más adelante.

    La Cuenta de administrador se convertirá en una Cuenta de administrador de dominio una vez que hayas creado el bosque de AD con ella.

  6. Habilita la cuenta:

    net user Administrator /active:yes
    
  7. Instala los servicios de dominio de Active Directory, incluidas las Herramientas de administración:

    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
  8. Configura las siguientes variables:

    $DomainName = "example-gcp.com"
    $DomainMode = "7"
    $ForestMode = "7"
    $DatabasePath = "C:\Windows\NTDS"
    $SysvolPath = "C:\Windows\SYSVOL"
    $LogPath = "C:\Logs"
    
  9. Instala la nueva configuración del bosque de Active Directory en el 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. Cuando se te solicite, ingresa una contraseña de administrador de modo seguro. Almacena la contraseña en una ubicación segura para utilizarla en el futuro.

  11. Desestima las siguientes advertencias. Cada advertencia aparecerá dos veces: una durante la verificación de requisitos previos, y una segunda vez durante el proceso de instalación.

    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. Reinicia la máquina virtual:

    Restart-Computer
    
  13. Utiliza RDP para conectarte al controlador de dominio ad-dc1 con las credenciales de administrador que definiste durante la instalación del bosque de AD. Recuerda agregar el nombre de dominio como un prefijo, como en EXAMPLE-GCP\Administrator.

  14. Abre una terminal de PowerShell como Administrador.

  15. Configura las siguientes variables:

    $DNSPrimary = "10.2.0.100"
    $DNSSecondary = "127.0.0.1"
    $LocalStaticIp = "10.1.0.100"
    $DefaultGateway = "10.1.0.1"
    
  16. Configura la dirección IP y la puerta de enlace predeterminada:

    netsh interface ip set address name=Ethernet static `
        $LocalStaticIp 255.255.255.0 $DefaultGateway 1
    
  17. Configura el servidor DNS principal:

    netsh interface ip set dns Ethernet static $DNSPrimary
    

    El servidor DNS ad-dc2 estará disponible solo después de que se haya implementado el segundo controlador de domino, por lo que puedes omitir el siguiente mensaje de error:

    The configured DNS server is incorrect or does not exist.
  18. Configura el servidor DNS secundario:

    netsh interface ip add dns Ethernet $DNSSecondary index=2
    

    La entrada del servidor DNS para este controlador de dominio, ad-dc1, debería estar segunda en la lista a fin de evitar que AD pierda conexión frecuentemente con el otro controlador. Utiliza el segundo controlador de dominio, ad-dc2, como el servidor DNS principal. Crearás el controlador de dominio ad-dc2 en la próxima sección. Si no sigues este patrón, los siguientes errores aparecerán en Administrador del servidor > Servicios de dominio de Active Directory:

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

    Es posible que veas errores en el servidor ad-dc1 antes de que ambos servidores estén correctamente configurados. Puedes ignorar estos errores.

Cómo crear el segundo controlador de dominio

A continuación, crearás el segundo controlador de dominio en una zona diferente a fin de brindar tolerancia a errores. El segundo controlador de dominio tiene las siguientes propiedades:

  • Nombre: ad-dc2
  • Dirección IP: 10.2.0.100

  1. Si tu ventana de Cloud Shell ha caducado, abre una nueva instancia de Cloud Shell y restablece las variables que estableciste anteriormente. Para hacerlo, edita la siguiente secuencia de comandos a fin de especificar el ID del proyecto y la región que utilizaste 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. Copia la secuencia de comandos en tu ventana de Cloud Shell y ejecútala.

  3. Utiliza Cloud Shell para crear la instancia del segundo controlador de 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. Espera aproximadamente un minuto y, a continuación, crea una contraseña para la instancia ad-dc2 de Windows:

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

    El nombre de usuario es el mismo que el de tu Cuenta de Google. Toma nota del nombre de usuario y la contraseña para utilizarlos más adelante.

  5. Utiliza RDP para conectarte a la instancia del controlador de dominio con las credenciales que creaste en el paso anterior.

  6. Abre una terminal de PowerShell como Administrador.

  7. Instala los servicios de dominio de Active Directory, incluidas las Herramientas de administración:

    Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
  8. Configura las siguientes variables:

    $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 el servidor DNS principal:

    netsh interface ip set dns Ethernet static $DNSPrimary
    
  10. Configura el segundo servidor a fin de que actúe como su propio servidor DNS secundario:

    netsh interface ip add dns Ethernet $DNSSecondary index=2
    

    El servidor DNS ad-dc2 estará disponible solo después de que ad-dc2 esté unido al dominio como el controlador de dominio. Debido a que tu servidor todavía no se unió, verás el siguiente mensaje, pero puedes ignorarlo:

    The configured DNS server is incorrect or does not exist.
  11. Configura la dirección IP y la puerta de enlace predeterminada:

    netsh interface ip set address name=Ethernet static `
        $LocalStaticIp 255.255.255.0 $DefaultGateway 1
    
  12. Ejecuta la siguiente secuencia de comandos de PowerShell, que te permitirá saber cuándo estará operativo el primer controlador de dominio. Espera hasta ver el mensaje 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. Agrega la máquina virtual al bosque como un segundo controlador de 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. Cuando se te solicite que ingreses una contraseña para la cuenta de Administrador, utiliza las credenciales de Administrador que definiste durante la instalación del bosque de AD. Agrega el nombre de dominio como un prefijo, como en EXAMPLE-GCP\Administrator.

  15. Cuando se te solicite que ingreses una contraseña de administrador de modo seguro, utiliza la misma que usaste para el primer controlador de dominio.

  16. Ignora las siguientes advertencias. Cada advertencia aparecerá dos veces: una durante la verificación de requisitos previos, y una segunda vez durante el proceso de instalación.

    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. Reinicia la máquina virtual:

    Restart-Computer
    

Cómo poner a prueba la instalación

  1. Espera entre 5 y 10 minutos para asegurarte de que ambos controladores de dominio estén operativos y que repliquen la información.

  2. Mediante RDP, conéctate a la instancia del primer controlador de dominio con las credenciales de administrador que definiste durante la instalación del primer controlador de dominio. Agrega el nombre de dominio como un prefijo, como en EXAMPLE-GCP\Administrator.

  3. Abre una terminal de PowerShell como Administrador.

  4. Prueba que la replicación funcione:

    repadmin /replsum
    

    El resultado debería parecerse al siguiente, sin errores ni fallas:

    Resultado de la replicación de pruebas, con cero fallas

    Si el controlador de dominio no está disponible, recibirás un mensaje que se parece al que figura a continuación;

    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 recibes este mensaje, espera unos minutos y vuelve a ejecutar el comando.

Limpieza

Si no planeas utilizar el entorno de AD creado en este instructivo, limpia los recursos creados en GCP para que no se te facture por ellos. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.

Cómo borrar el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, haz lo siguiente:

  1. In the GCP Console, go to the Projects page.

    Go to the Projects page

  2. In the project list, select the project you want to delete and click Delete .
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Borrar instancias

Para borrar una instancia de Compute Engine:

  1. In the GCP Console, go to the VM Instances page.

    Go to the VM Instances page

  2. Click the checkbox for the instance you want to delete.
  3. Click Delete to delete the instance.

Borrar redes de VPC

Si deseas borrar la red de VPC, las subredes y las reglas de firewall, haz lo siguiente:

  1. En Cloud Platform Console, ve a la página de redes de VPC.

    Ir a la página de redes de VPC

  2. Selecciona la red de VPC que creaste.

  3. Haz clic en el botón Borrar en la parte superior de la página.

¿Qué sigue?

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…