Este instructivo es la primera parte de una serie que te ayudará a implementar una arquitectura de Windows con alta disponibilidad en Google Cloud con Microsoft Active Directory, Internet Information Services (IIS) y SQL Server. En este instructivo, configurarás un par redundante de controladores de dominio de Windows con Active Directory mediante una red de nube privada virtual (VPC) nueva y varias subredes.
La serie consta de estos instructivos:
- Implementa un entorno de Microsoft Active Directory tolerante a errores (este documento).
- Implementa SQL Server de varias subredes
- Implementa servidores web IIS con balanceo de cargas
Cada instructivo continúa con la infraestructura que creaste en el anterior.
También puedes usar este instructivo a fin de aprender a establecer una configuración de Active Directory para su uso en otras arquitecturas. En esta guía, no se explica cómo replicar un entorno de Active Directory remoto en el nuevo entorno de Active Directory basado en Google Cloud, aunque esto es posible con la VPN de Cloud y la configuración adicional de Active Directory.
Arquitectura
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 Active Directory
- 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 usan componentes facturables de Google Cloud, que incluyen los siguientes:
La calculadora de precios estima un costo de cerca de $4 por día para este entorno.
Antes de comenzar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita Compute Engine API.
Inicializa variables comunes
Debes definir diferentes variables del entorno para controlar en qué lugar se implementan los elementos de la infraestructura.
Ve a Cloud Shell.
En Cloud Shell, crea las siguientes variables de entorno a fin de establecer valores que necesitarás más adelante en este instructivo.
Los comandos establecen la región en
us-east-1
. Puedes usar una región diferente, pero recuerda cuál usaste para volver a usarla en los instructivos posteriores.export region=us-east1 export zone_1=${region}-b export zone_2=${region}-c export vpc_name=webappnet export project_id=your-project-id
Reemplaza your-project-id por el ID del proyecto de Google Cloud que estás usando
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}
Crea la infraestructura de red
Una vez que hayas definido las variables de infraestructura, es momento de crear la red y las subredes que usará Active Directory.
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
Verás la siguiente advertencia, pero puedes ignorarla, ya que crearás estas reglas de firewall en pasos posteriores.
Instances on this network will not be reachable until firewall rules are created.
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
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
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
Crea 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
Crea una instancia de Compute Engine de Windows Server 2016 para usarla 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
Espera alrededor de un minuto y, luego, crea una contraseña para la instancia de Windows
ad-dc1
: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 usarlos más adelante.
Usa RDP para conectarte a la instancia del controlador de dominio con las credenciales que creaste en el paso anterior.
Abre una terminal de PowerShell como Administrador. Haz clic en Iniciar, escribe PowerShell y, luego, presiona Mayúsculas + Ctrl + Intro.
Establece las credenciales de Windows para la cuenta de administrador:
net user Administrator *
Se te pedirá que crees una contraseña. Usa una contraseña segura y almacénala en una ubicación segura, ya que la necesitarás más adelante.
La cuenta de administrador se convertirá en una cuenta de administrador de dominio una vez que la uses para crear el bosque de Active Directory.
Habilita la cuenta:
net user Administrator /active:yes
Instala los servicios de dominio de Active Directory, incluidas las Herramientas de administración:
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Configura las siguientes variables:
$DomainName = "example-gcp.com" $DomainMode = "7" $ForestMode = "7" $DatabasePath = "C:\Windows\NTDS" $SysvolPath = "C:\Windows\SYSVOL" $LogPath = "C:\Logs"
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
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.
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.
Reinicia la máquina virtual:
Restart-Computer
Usa RDP para conectarte al controlador de dominio
ad-dc1
con las credenciales de administrador que definiste durante la instalación del bosque de Active Directory. Recuerda agregar el nombre de dominio como un prefijo, como enEXAMPLE-GCP\Administrator
.Abre una terminal de PowerShell como Administrador.
Configura las siguientes variables:
$DNSPrimary = "10.2.0.100" $DNSSecondary = "127.0.0.1" $LocalStaticIp = "10.1.0.100" $DefaultGateway = "10.1.0.1"
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
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 implemente el segundo controlador de dominio, por lo que puedes omitir el siguiente mensaje de error:The configured DNS server is incorrect or does not exist.
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
, debe ser la segunda en la lista a fin de evitar que Active Directory pierda la conexión con el otro controlador. Usa el segundo controlador de dominio,ad-dc2
, como el servidor DNS principal. Crearás el controlador de dominioad-dc2
en la próxima sección. Si no sigues este patrón, aparecerán los siguientes errores 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 configurados por completo. Puedes ignorar estos errores.
Crea el segundo controlador de dominio
A continuación, crearás un segundo controlador de dominio en una zona diferente a fin de proporcionar tolerancia a errores. El segundo controlador de dominio tiene las siguientes propiedades:
- Nombre:
ad-dc2
- Dirección IP:
10.2.0.100
Si tu ventana de Cloud Shell venció, abre una instancia nueva de Cloud Shell y restablece las variables que estableciste antes. Para hacerlo, edita la siguiente secuencia de comandos a fin de especificar el ID del proyecto y la región que usaste antes.
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}
Reemplaza your-project-id por el ID del proyecto de Google Cloud que estás usando
Copia la secuencia de comandos en la ventana de Cloud Shell y ejecútala.
Usa 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
Espera alrededor de un minuto y, luego, crea una contraseña para la instancia de Windows
ad-dc2
: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.
Utiliza RDP para conectarte a la instancia del controlador de dominio con las credenciales que creaste en el paso anterior.
Abre una terminal de PowerShell como Administrador.
Instala los servicios de dominio de Active Directory, incluidas las Herramientas de administración:
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
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"
Configura el servidor DNS principal:
netsh interface ip set dns Ethernet static $DNSPrimary
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
solo estará disponible después de quead-dc2
se una al dominio como un 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.
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
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" }
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
Cuando se te solicite que ingreses una contraseña para la cuenta de administrador, usa las credenciales de administrador que definiste durante la instalación del bosque de Active Directory. Agrega el nombre de dominio como un prefijo, como en
EXAMPLE-GCP\Administrator
.Cuando se te solicite que ingreses una contraseña de administrador de modo seguro, usa la misma que usaste para el primer controlador de dominio.
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.
Reinicia la máquina virtual:
Restart-Computer
Prueba la instalación
Espera entre 5 y 10 minutos para asegurarte de que ambos controladores de dominio estén operativos y repliquen la información.
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
.Abre una terminal de PowerShell como Administrador.
Prueba que la replicación funcione:
repadmin /replsum
El resultado debería parecerse al siguiente, sin errores ni fallas:
Si el controlador de dominio no está disponible, verás un mensaje similar al siguiente:
Beginning data collection for replication summary, this may take awhile:
.... Source DSA largest delta fails/total %% error
Destination DSA largest delta fails/total %% errorSi ves este mensaje, espera unos minutos y vuelve a ejecutar el comando.
Limpia
Si deseas continuar con el siguiente instructivo de esta serie (Implementa SQL Server de varias subredes), conserva los recursos que creaste en este instructivo. Sin embargo, si no planeas usar el entorno de Active Directory que creaste en este instructivo, descarta los recursos que creaste en Google Cloud para que no se te cobre por ellos. En las siguientes secciones, se describe cómo borrarlos o desactivarlos.
Borra 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, sigue estos pasos:
- En la consola de Google Cloud, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
Borra instancias
Para borrar una instancia de Compute Engine, haz lo siguiente:
- En la consola de Google Cloud, ve a la página Instancias de VM.
-
Selecciona tu instancia
en la casilla de verificación de es la instancia que deseas borrar.
- Para borrar la instancia, haz clic en Más acciones, haz clic en Borrar y, luego, sigue las instrucciones.
Borra redes de VPC
Si deseas borrar la red de VPC, las subredes y las reglas de firewall, haz lo siguiente:
En la consola de Google Cloud, ve a la página Redes de VPC.
Selecciona la red de VPC que creaste.
Haz clic en el botón Borrar en la parte superior de la página.
Próximos pasos
- Continúa con los siguientes instructivos de esta serie:
- Obtén más información sobre los patrones para usar Active Directory en un entorno híbrido.
- Revisa las prácticas recomendadas para administrar identidades y accesos.
- Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.