Desplegar Microsoft Exchange Server 2016 en Compute Engine


En este tutorial se describe cómo puedes desplegar Microsoft Exchange Server 2016 en Compute Engine y configurarlo para que tenga alta disponibilidad y resiliencia del sitio.

La implementación de Exchange abarcará dos zonas dentro de una sola región. En cada zona, implementará un servidor de buzones y un servidor de transporte perimetral. Los servidores de buzones de correo formarán parte de un grupo de disponibilidad de bases de datos para que los datos de los buzones se repliquen en varias zonas.

En el siguiente diagrama se muestra la implementación:

Despliegue de Microsoft Exchange

En este artículo se presupone que ya has implementado Active Directory en Google Cloud y que tienes conocimientos básicos de Exchange Server 2016, Active Directory y Compute Engine.

Objetivos

  • Configura un proyecto y una red de VPC, y prepáralos para la implementación de Exchange Server 2016.
  • Implementa servidores de buzones de Exchange en dos zonas y crea un grupo de disponibilidad de bases de datos.
  • Implementa servidores de transporte perimetral de Exchange en dos zonas.
  • Configura el balanceo de carga y las reglas de cortafuegos.

Costes

En este tutorial se usan componentes facturables de Google Cloud, como los siguientes:

Usa la calculadora de precios para generar una estimación de costes en función del uso previsto.

Antes de empezar

Para completar esta guía, necesitas lo siguiente:

  • Un dominio de Active Directory con al menos un controlador de dominio. El dominio de Active Directory debe usar un nombre de dominio DNS válido y enrutable públicamente. No se pueden usar nombres de dominio locales, como corp.local, ni nombres de dominio reservados, como example.com.

    Consulta el artículo Desplegar un entorno de Microsoft Active Directory tolerante a fallos para obtener más información sobre cómo desplegar un entorno de Active Directory en Compute Engine.

  • Una zona de reenvío de DNS privado para el nombre de dominio DNS de Active Directory que reenvía las consultas de DNS a tus controladores de dominio.

  • Acceso de administrador a tu dominio de Active Directory.

  • Un Google Cloud proyecto y una VPC con conectividad a tus controladores de dominio de Active Directory.

  • Una subred que se usará para las instancias de VM de Exchange. La subred debe abarcar al menos dos zonas.

Antes de empezar la implementación, consulte los requisitos de alta disponibilidad y resistencia del sitio de Exchange Server.

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.

Preparar el proyecto y la red

Para preparar tu proyecto y tu VPC de Google Cloud para la implementación de Exchange Server, haz lo siguiente:

  1. Cambia a tu proyecto en la Google Cloud consola y abre Cloud Shell.

    Abrir Cloud Shell

  2. Inicializa las siguientes variables:

    VPC_NAME=VPC_NAME
    SUBNET_NAME=SUBNET_NAME
    SUBNET_REGION=SUBNET_REGION
    SUBNET_ZONE_1=$SUBNET_REGION-a
    SUBNET_ZONE_2=$SUBNET_REGION-b
    

    Donde:

    • VPC_NAME es el nombre de tu VPC.
    • SUBNET_NAME es el nombre de tu subred.
    • SUBNET_REGION es la región de tu subred.
  3. Configura tu ID de proyecto predeterminado:

    gcloud config set project PROJECT_ID
    

    Sustituye PROJECT_ID por el ID de tu Google Cloud proyecto.

Crear un disco de instalación

Ahora, crea un disco que contenga el medio de instalación de Exchange Server. Si creas un disco que puedes conectar a varias instancias de VM, no tendrás que descargar el medio de instalación en cada instancia de VM por separado.

  1. Sigue las instrucciones de la sección Crear una imagen a partir de un archivo ISO. Usa la siguiente URL como URL de descarga:

    https://download.microsoft.com/download/6/6/F/66F70200-E2E8-4E73-88F9-A1F6E3E04650/ExchangeServer2016-x64-cu11.iso
    
  2. Usa la nueva imagen para crear un disco en la primera zona:

    gcloud compute disks create exchange-media-1 \
      --zone=$SUBNET_ZONE_1 \
      --image-project=$GOOGLE_CLOUD_PROJECT \
      --image=IMAGE
    

    Sustituye IMAGE por el nombre de la imagen que has creado en el paso anterior.

  3. Crea un disco en la segunda zona:

    gcloud compute disks create exchange-media-2 \
      --zone=$SUBNET_ZONE_2 \
      --image-project=$GOOGLE_CLOUD_PROJECT \
      --image=IMAGE
    

    Sustituye IMAGE por el nombre de la imagen que has creado en el primer paso.

Crear reglas de cortafuegos

Para permitir que los clientes se conecten a Exchange y habilitar la comunicación entre los servidores de Exchange, debes crear varias reglas de cortafuegos. Para simplificar la creación de estas reglas de cortafuegos, puedes usar etiquetas de red:

  • Los servidores de transporte perimetral se anotan con la etiqueta exchange-transport.
  • Los servidores de buzones de correo se anotan con la etiqueta exchange-mailbox.
  • El servidor testigo se anota con la etiqueta exchange-witness.
  • Todos los servidores están anotados con la etiqueta exchange.

Crea reglas de cortafuegos que usen estas etiquetas de red:

  1. Vuelve a tu sesión de Cloud Shell.
  2. Crea reglas de cortafuegos para los servidores de buzones:

    gcloud compute firewall-rules create allow-all-between-exchange-servers \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp,udp,icmp \
      --enable-logging \
      --source-tags=exchange \
      --target-tags=exchange \
      --network=$VPC_NAME \
      --priority 10000
    
    gcloud compute firewall-rules create allow-smtp-from-transport-to-mailbox \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp:25 \
      --enable-logging \
      --source-tags=exchange-transport \
      --target-tags=exchange-mailbox \
      --network=$VPC_NAME \
      --priority 10000
    
    gcloud compute firewall-rules create allow-edgesync-from-mailbox-to-transport \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp:50636 \
      --enable-logging \
      --source-tags=exchange-mailbox \
      --target-tags=exchange-transport \
      --network=$VPC_NAME \
      --priority 10000
    
    gcloud compute firewall-rules create allow-mail-to-mailbox \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp:25,tcp:110,tcp:135,tcp:143,tcp:443,tcp:993,tcp:995 \
      --enable-logging \
      --target-tags=exchange-mailbox \
      --network=$VPC_NAME \
      --priority 10000
    
    gcloud compute firewall-rules create allow-smb-within-dag \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp:135,tcp:445,udp:445,tcp:49152-65535 \
      --enable-logging \
      --source-tags=exchange-mailbox,exchange-witness \
      --target-tags=exchange-mailbox,exchange-witness \
      --network=$VPC_NAME \
      --priority 10000
    
  3. Crea una regla de cortafuegos para el servidor de transporte perimetral:

    gcloud compute firewall-rules create allow-smtp-to-transport \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp:25 \
      --enable-logging \
      --target-tags=exchange-transport \
      --network=$VPC_NAME \
      --priority 10000
    

Tu proyecto y tu VPC ya están listos para implementar Exchange Server.

Desplegar el rol de buzón de correo

Ahora, implementa los servidores de buzón de correo y un servidor de gestión que usarás para administrar Exchange.

Las instancias de VM usarán el tipo de máquina n1-standard-8. Para obtener un análisis más detallado de tus necesidades y los requisitos del sistema, consulta el artículo Buscar los permisos necesarios para ejecutar cualquier cmdlet de Exchange.

Implementar el servidor de gestión

Sigue estos pasos para crear una instancia de VM que actúe como servidor de gestión:

  1. Vuelve a tu sesión de Cloud Shell.
  2. Crea un script de especialización para la instancia de VM. La secuencia de comandos se ejecuta durante la inicialización de la VM e instala los requisitos previos del cliente para las herramientas de gestión de Exchange 2016:

    cat << "EOF" > specialize-admin.ps1
    
    $ErrorActionPreference = "stop"
    
    # Install required Windows features
    Install-WindowsFeature RSAT-ADDS,RSAT-DNS-Server
    Enable-WindowsOptionalFeature -Online -FeatureName IIS-ManagementScriptingTools, `
        IIS-ManagementScriptingTools, `
        IIS-IIS6ManagementCompatibility, `
        IIS-LegacySnapIn, `
        IIS-ManagementConsole, `
        IIS-Metabase, `
        IIS-WebServerManagementTools, `
        IIS-WebServerRole
    
    # Install Visual C++ Redistributable Package for Visual Studio 2012
    (New-Object System.Net.WebClient).DownloadFile(
        'http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU3/vcredist_x64.exe',
        "$env:Temp\vcredist_2012_x64.exe")
    & $env:Temp\vcredist_2012_x64.exe /passive /norestart | Out-Default
    
    EOF
    
  3. Crea una instancia de VM que use specialize-admin.ps1 como script especializado y adjunta el disco de instalación de Exchange como disco secundario. Más adelante, usarás el disco secundario para instalar las herramientas de gestión de Exchange:

    gcloud compute instances create exchange-admin \
      --image-family=windows-2019 \
      --image-project=windows-cloud \
      --machine-type=n1-standard-2 \
      --subnet=$SUBNET_NAME \
      --zone=$SUBNET_ZONE_1 \
      --tags=exchange \
      --disk=name=exchange-media-1,auto-delete=no,mode=ro \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-admin.ps1
    
  4. Monitoriza el proceso de inicialización de la VM consultando la salida de su puerto serie:

    gcloud compute instances tail-serial-port-output exchange-admin --zone=$SUBNET_ZONE_1
    

    Espera unos 5 minutos hasta que veas el resultado Instance setup finished, luego pulsa Ctrl+C. En este punto, la instancia de VM ya se puede usar.

  5. Crea un nombre de usuario y una contraseña para la instancia de VM.

  6. Conéctate a la VM mediante Escritorio remoto e inicia sesión con el nombre de usuario y la contraseña que has creado en el paso anterior.

  7. Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Símbolo del sistema (administrador).

  8. Confirma la solicitud de elevación haciendo clic en .

  9. En el símbolo del sistema elevado, inicia una sesión de PowerShell:

    powershell
    
  10. Une el ordenador a tu dominio de Active Directory:

    Add-Computer -Domain DOMAIN
    

    Sustituye DOMAIN por el nombre DNS de tu dominio de Active Directory.

  11. Reinicia el ordenador:

    Restart-Computer
    

    Espera aproximadamente 1 minuto a que se complete el reinicio.

  12. Conéctate a la VM mediante Escritorio remoto e inicia sesión con un usuario del dominio que sea miembro del grupo Administradores de empresa.

  13. Sigue las instrucciones para preparar el esquema y los dominios de Active Directory para Exchange Server. Puedes encontrar el medio de instalación de Exchange en la unidad D:.

  14. Sigue las instrucciones para instalar las herramientas de gestión de Exchange.

Desplegar los servidores de buzones

Ahora puedes desplegar las instancias de VM que actúan como servidores de buzones:

  1. Vuelve a tu sesión de Cloud Shell.
  2. Crea una secuencia de comandos especializada para la instancia de VM. La secuencia de comandos se ejecuta durante la inicialización de la VM e instala los requisitos previos para instalar servidores de buzón:

    cat << "EOF" > specialize-mailbox.ps1
    
    $ErrorActionPreference = "stop"
    
    # Install required Windows features
    Install-WindowsFeature RSAT-ADDS
    Install-WindowsFeature `
        NET-Framework-45-Features, `
        Server-Media-Foundation, `
        RPC-over-HTTP-proxy, `
        RSAT-Clustering, `
        RSAT-Clustering-CmdInterface, `
        RSAT-Clustering-Mgmt, `
        RSAT-Clustering-PowerShell, `
        WAS-Process-Model, `
        Web-Asp-Net45, `
        Web-Basic-Auth, `
        Web-Client-Auth, `
        Web-Digest-Auth, `
        Web-Dir-Browsing, `
        Web-Dyn-Compression, `
        Web-Http-Errors, `
        Web-Http-Logging, `
        Web-Http-Redirect, `
        Web-Http-Tracing, `
        Web-ISAPI-Ext, `
        Web-ISAPI-Filter, `
        Web-Lgcy-Mgmt-Console, `
        Web-Metabase, `
        Web-Mgmt-Console, `
        Web-Mgmt-Service, `
        Web-Net-Ext45, `
        Web-Request-Monitor, `
        Web-Server, `
        Web-Stat-Compression, `
        Web-Static-Content, `
        Web-Windows-Auth, `
        Web-WMI, `
        Windows-Identity-Foundation, `
        RSAT-ADDS
    
    # Install Visual C++ Redistributable Package for Visual Studio 2012
    (New-Object System.Net.WebClient).DownloadFile(
        'http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU3/vcredist_x64.exe',
        "$env:Temp\vcredist_2012_x64.exe")
    & $env:Temp\vcredist_2012_x64.exe /passive /norestart | Out-Default
    
    # Visual C++ Redistributable Package for Visual Studio 2013
    (New-Object System.Net.WebClient).DownloadFile(
        'http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe',
        "$env:Temp\vcredist_2013_x64.exe")
    & $env:Temp\vcredist_2013_x64.exe /passive /norestart | Out-Default
    
    # Install Microsoft Unified Communications Managed API
    (New-Object System.Net.WebClient).DownloadFile(
        'https://download.microsoft.com/download/2/C/4/2C47A5C1-A1F3-4843-B9FE-84C0032C61EC/UcmaRuntimeSetup.exe',
        "$env:Temp\UcmaRuntimeSetup.exe")
    & $env:Temp\UcmaRuntimeSetup.exe /passive /norestart | Out-Default
    
    EOF
    
  3. Crea una instancia de VM en la primera zona y pasa specialize-mailbox.ps1 como secuencia de comandos de especialización. Adjunta el disco de instalación de Exchange como disco secundario. El disco secundario se usa más adelante para instalar el rol de buzón de Exchange Server:

    gcloud compute instances create mailbox-1-a \
      --image-family=windows-2016 \
      --image-project=windows-cloud \
      --machine-type=n1-standard-8 \
      --subnet=$SUBNET_NAME \
      --tags exchange,exchange-mailbox \
      --zone=$SUBNET_ZONE_1 \
      --boot-disk-type pd-ssd \
      --disk=name=exchange-media-1,auto-delete=no,mode=ro \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-mailbox.ps1
    
  4. Crea otra instancia de VM en la segunda zona:

    gcloud compute instances create mailbox-1-b \
      --image-family=windows-2016 \
      --image-project=windows-cloud \
      --machine-type=n1-standard-8 \
      --subnet=$SUBNET_NAME \
      --tags exchange,exchange-mailbox \
      --zone=$SUBNET_ZONE_2 \
      --boot-disk-type pd-ssd \
      --disk=name=exchange-media-2,auto-delete=no,mode=ro \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-mailbox.ps1
    
  5. Monitoriza el proceso de inicialización de la VM consultando la salida de su puerto serie:

    gcloud compute instances tail-serial-port-output mailbox-1-b --zone=$SUBNET_ZONE_2
    

    Espera unos 5 minutos hasta que veas el resultado Instance setup finished y, a continuación, pulsa Ctrl+C. En este punto, la instancia de VM ya se puede usar.

  6. Sigue estos pasos en cada una de las dos instancias de VM:

    1. Crea un nombre de usuario y una contraseña para la instancia de VM.
    2. Conéctate a la VM mediante Escritorio remoto e inicia sesión con el nombre de usuario y la contraseña que has creado en el paso anterior.
    3. Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Símbolo del sistema (administrador).
    4. Confirma la solicitud de elevación haciendo clic en .
    5. En el símbolo del sistema elevado, inicia una sesión de PowerShell:

      powershell
      
    6. Une el ordenador a tu dominio de Active Directory:

      Add-Computer -Domain DOMAIN
      

      Sustituye DOMAIN por el nombre DNS de tu dominio de Active Directory.

    7. Reinicia el ordenador:

      Restart-Computer
      

      Espera aproximadamente 1 minuto a que se complete el reinicio.

    8. Conéctate a la VM mediante Escritorio remoto e inicia sesión con un usuario del dominio que sea miembro del grupo Administradores de empresa.

    9. Instala el rol de buzón de Exchange Server mediante el asistente de configuración o el modo desatendido. Puedes encontrar el medio de instalación de Exchange en la unidad D:.

Desplegar el servidor testigo

Para configurar un grupo de disponibilidad de bases de datos (DAG) para los dos servidores de buzones, necesitas una instancia de VM adicional que actúe como servidor testigo. Para implementar el servidor testigo, sigue estos pasos:

  1. Vuelve a tu sesión de Cloud Shell.
  2. Crea un servidor testigo en la primera zona:

    gcloud compute instances create witness \
      --image-family=windows-2016 \
      --image-project=windows-cloud \
      --machine-type n1-standard-8 \
      --subnet $SUBNET_NAME \
      --tags exchange,exchange-witness \
      --zone $SUBNET_ZONE_1 \
      --boot-disk-type pd-ssd \
      "--metadata=sysprep-specialize-script-ps1=add-windowsfeature FS-FileServer"
    
  3. Monitoriza el proceso de inicialización de la VM consultando la salida de su puerto serie:

    gcloud compute instances tail-serial-port-output witness --zone=$SUBNET_ZONE_1
    

    Espera unos 3 minutos hasta que veas el resultado Instance setup finished, luego pulsa Ctrl+C. En este punto, la instancia de VM ya se puede usar.

  4. Crea un nombre de usuario y una contraseña para la instancia de VM.

  5. Conéctate a la VM mediante Escritorio remoto e inicia sesión con el nombre de usuario y la contraseña que has creado en el paso anterior.

  6. Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Símbolo del sistema (administrador).

  7. Confirma la solicitud de elevación haciendo clic en .

  8. En el símbolo del sistema elevado, inicia una sesión de PowerShell:

    powershell
    
  9. Une el ordenador a tu dominio de Active Directory:

    Add-Computer -Domain DOMAIN
    

    Sustituye DOMAIN por el nombre DNS de tu dominio de Active Directory.

  10. Reinicia el ordenador:

    Restart-Computer
    

    Espera aproximadamente 1 minuto a que se complete el reinicio.

  11. Conéctate a la VM mediante Escritorio remoto e inicia sesión con un usuario del dominio que sea miembro del grupo Administradores de empresa.

  12. Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Símbolo del sistema (administrador).

  13. Confirma la solicitud de elevación haciendo clic en .

  14. En el símbolo del sistema elevado, inicia una sesión de PowerShell:

    powershell
    
  15. Añade el grupo de seguridad universal Exchange Trusted Subsystem al grupo local Administrators:

    Add-LocalGroupMember -Group Administrators -Member "DOMAIN\Exchange Trusted Subsystem"
    

    Sustituye DOMAIN por el nombre de NetBIOS de tu dominio de Active Directory.

Los dos servidores de buzones y el servidor testigo ya están implementados por completo, pero aún debe añadirlos a un grupo de disponibilidad de bases de datos.

Crear un grupo de disponibilidad de bases de datos

Para crear un DAG, sigue estos pasos:

  1. Conéctate a la VM de gestión mediante Escritorio remoto e inicia sesión con un usuario del dominio que sea miembro del grupo Administradores de la empresa.
  2. Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Símbolo del sistema (administrador).
  3. Confirma la solicitud de elevación haciendo clic en .
  4. En el símbolo del sistema elevado, inicia una sesión de PowerShell:

    powershell
    
  5. Descarga e instala el navegador Chrome:

    Start-BitsTransfer `
        -Source 'https://dl.google.com/chrome/install/latest/chrome_installer.exe' `
        -Destination "$env:Temp\chrome_installer.exe"
    & $env:Temp\chrome_installer.exe
    
  6. Para abrir el Centro de administración de Exchange (EAC), inicia Chrome y ve a la siguiente URL:

    https://mailbox-1-a/ecp/?ExchClientVer=15
    
  7. Inicia sesión con un usuario del dominio que sea miembro del grupo Administradores de la empresa.

  8. En el menú del EAC, selecciona Servidores > Grupos de disponibilidad de bases de datos.

  9. Haz clic en +.

  10. En el cuadro de diálogo, introduce los siguientes ajustes para crear un grupo de disponibilidad de la base de datos:

    1. Nombre del grupo de disponibilidad de la base de datos: mailbox
    2. Servidor testigo: witness
  11. Haz clic en Guardar.

  12. Haz clic en el icono Miembros del DAG gestionado.

  13. En el cuadro de diálogo, haz clic en + para añadir un servidor miembro.

  14. Selecciona mailbox-1-a y mailbox-1-b y haz clic en Añadir.

  15. Haz clic en Aceptar.

  16. Haz clic en Guardar.

Si quieres, realiza alguna de las tareas posteriores a la instalación de Exchange Server.

Configurar el balanceo de carga

Para permitir que los clientes se conecten a los servidores de buzones, ahora debes crear un recurso de balanceador de carga interno:

  1. Vuelve a tu sesión de Cloud Shell.
  2. Crea un grupo de instancias sin gestionar por zona:

    gcloud compute instance-groups unmanaged create mailbox-a --zone=$SUBNET_ZONE_1
    gcloud compute instance-groups unmanaged create mailbox-b --zone=$SUBNET_ZONE_2
    
  3. Añade las instancias de VM que ejecutan los servidores de buzones a los grupos de instancias:

    gcloud compute instance-groups unmanaged add-instances mailbox-a \
      --zone=$SUBNET_ZONE_1 \
      --instances=mailbox-1-a
    gcloud compute instance-groups unmanaged add-instances mailbox-b \
      --zone=$SUBNET_ZONE_2 \
      --instances=mailbox-1-b
    
  4. Crea una comprobación del estado que sondee la ruta HTTP /owa/healthcheck.htm:

    gcloud compute health-checks create http http-80\
      --port=80 \
      --request-path=/owa/healthcheck.htm
    
  5. Crea un backend de balanceador de carga y añade los dos grupos de instancias:

    gcloud compute backend-services create mailbox-backend \
      --load-balancing-scheme=internal \
      --protocol=tcp \
      --region=$SUBNET_REGION \
      --health-checks=http-80 \
      --session-affinity=CLIENT_IP_PORT_PROTO
    
    gcloud compute backend-services add-backend mailbox-backend \
      --region=$SUBNET_REGION \
      --instance-group=mailbox-a \
      --instance-group-zone=$SUBNET_ZONE_1
    
    gcloud compute backend-services add-backend mailbox-backend \
      --region=$SUBNET_REGION \
      --instance-group=mailbox-b \
      --instance-group-zone=$SUBNET_ZONE_2
    
  6. Reserva una dirección IP estática para el balanceador de carga:

    gcloud compute addresses create mailbox-frontend \
      --region=$SUBNET_REGION \
      --subnet=$SUBNET_NAME
    
  7. Crea una regla de reenvío para el balanceador de carga:

    gcloud compute forwarding-rules create mailbox-frontend \
      --region=$SUBNET_REGION \
      --address=mailbox-frontend  \
      --load-balancing-scheme=internal \
      --network=$VPC_NAME \
      --subnet=$SUBNET_NAME \
      --ip-protocol=TCP \
      --ports=ALL \
      --backend-service=mailbox-backend  \
      --backend-service-region=$SUBNET_REGION
    
  8. Busca la dirección IP del balanceador de carga:

    gcloud compute addresses describe mailbox-frontend  \
      --region=$SUBNET_REGION \
      --format=value\(address\)
    

Probar los servidores de buzones

Para verificar que los servidores de buzones se han implementado correctamente, sigue estos pasos:

  1. En la VM de gestión, abre Chrome y ve a https://<var>IP</var>/owa/, donde IP es la dirección IP del balanceador de carga que has buscado antes.
  2. Inicia sesión con un usuario del dominio.

    Ahora deberías ver la interfaz de usuario de Outlook Web Access.

Desplegar el rol de transporte perimetral

Ahora, implementa los servidores de transporte perimetrales. Los servidores de transporte perimetral gestionan todo el flujo de correo entrante y saliente.

A diferencia de los servidores de buzones, los servidores de transporte perimetral están expuestos a Internet. En un despliegue local, puedes desplegar servidores de transporte perimetrales en una red perimetral aislada de la red interna mediante cortafuegos.

Si está Google Cloudactivado, no es necesario implementar servidores de transporte perimetral en una VPC o subred independiente. En su lugar, puedes usar reglas de cortafuegos para microsegmentar tu red y restringir la comunicación de red desde y hacia los servidores de transporte perimetrales.

A diferencia de los servidores de buzones, los servidores de transporte perimetral no son miembros de tu dominio de Active Directory.

Las instancias de VM usarán el tipo de máquina n1-standard-8. En función de cómo vayas a usar la implementación de Exchange, es posible que tengas que usar tipos de máquina más grandes. Consulta el artículo Buscar los permisos necesarios para ejecutar cualquier cmdlet de Exchange para obtener un análisis más detallado de tus necesidades y sus requisitos del sistema.

Implementar los servidores de transporte perimetral

Para implementar los servidores de transporte perimetrales, sigue estos pasos:

  1. Vuelve a tu sesión de Cloud Shell.
  2. Crea un script de especialización para la instancia de VM. La secuencia de comandos se ejecuta durante la inicialización de la VM e instala los requisitos previos para instalar servidores de transporte perimetral:

    cat << "EOF" > specialize-transport.ps1
    
    # Install required Windows features
    Install-WindowsFeature ADLDS
    
    # Install Visual C++ Redistributable Package for Visual Studio 2012
    (New-Object System.Net.WebClient).DownloadFile(
        'http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU3/vcredist_x64.exe',
        "$env:Temp\vcredist_2012_x64.exe")
    & $env:Temp\vcredist_2012_x64.exe /passive /norestart | Out-Default
    
    EOF
    
  3. Crea una instancia de VM en la primera zona y pasa specialize-transport.ps1 como secuencia de comandos de especialización. Adjunta el disco de instalación de Exchange en modo de solo lectura para que puedas instalar más adelante el rol de servidor de transporte de Exchange Server:

    gcloud compute instances create transport-1-a \
      --image-family=windows-2016 \
      --image-project=windows-cloud \
      --machine-type=n1-standard-8 \
      --subnet=$SUBNET_NAME \
      --tags exchange,exchange-transport \
      --zone=$SUBNET_ZONE_1 \
      --boot-disk-type pd-ssd \
      --disk=name=exchange-media-1,auto-delete=no,mode=ro \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-transport.ps1
    
  4. Crea otra instancia de VM en la segunda zona:

    gcloud compute instances create transport-1-b \
      --image-family=windows-2016 \
      --image-project=windows-cloud \
      --machine-type=n1-standard-8 \
      --subnet=$SUBNET_NAME \
      --tags exchange,exchange-transport \
      --zone=$SUBNET_ZONE_2 \
      --boot-disk-type pd-ssd \
      --disk=name=exchange-media-2,auto-delete=no,mode=ro \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-transport.ps1
    
  5. Monitoriza el proceso de inicialización de la VM consultando la salida de su puerto serie:

    gcloud compute instances tail-serial-port-output transport-1-b --zone=$SUBNET_ZONE_2
    

    Espera unos 5 minutos hasta que veas el resultado Instance setup finished y, a continuación, pulsa Ctrl+C. En este punto, la instancia de VM ya se puede usar.

  6. En cada una de las dos instancias de VM del servidor de transporte perimetral, sigue estos pasos:

    1. Crea un nombre de usuario y una contraseña para la instancia de VM.
    2. Conéctate a la VM mediante Escritorio remoto e inicia sesión con el nombre de usuario y la contraseña que has creado en el paso anterior.
    3. Configura el sufijo DNS principal para que coincida con el nombre de dominio DNS que usa tu dominio de Active Directory.
    4. Instala el rol de servidor de transporte perimetral de Exchange Server con el asistente de configuración o el modo desatendido. Puedes encontrar el medio de instalación de Exchange en la unidad D:.

Registrar los servidores de transporte perimetral en DNS

Para poder configurar una suscripción perimetral para los servidores de transporte perimetrales, debe asignar nombres DNS al servidor. Como los servidores de transporte perimetral no son miembros de tu dominio de Active Directory, debes asignar estos nombres manualmente:

  1. En el servidor de administración, abre una consola de PowerShell.
  2. Crea un registro CNAME para transport-1-a y transport-1-b:

    Add-DnsServerResourceRecordCName `
      -ComputerName (Get-ADDomainController).Hostname `
      -HostNameAlias "transport-1-a.REGION-a.c.PROJECT-ID.internal." `
      -Name "transport-1-a" `
      -ZoneName "DOMAIN"
    
    Add-DnsServerResourceRecordCName `
      -ComputerName (Get-ADDomainController).Hostname `
      -HostNameAlias "transport-1-b.REGION-b.c.PROJECT-ID.internal." `
      -Name "transport-1-b" `
      -ZoneName "DOMAIN"
    

    Donde:

    • PROJECT-ID es el ID del proyecto en el que se han desplegado tus instancias de VM de Exchange.
    • REGION es la región en la que se despliegan tus instancias de VM de Exchange.
    • DOMAIN es el dominio DNS de tu dominio de Active Directory.

Configurar suscripciones de edge

Para rellenar las instancias de Active Directory Lightweight Directory Services (AD LDS) en el servidor de transporte perimetral con datos de Active Directory, ahora debe configurar suscripciones perimetrales.

  1. Abre un shell de administración de Exchange elevado haciendo clic con el botón derecho en Inicio > Exchange Management Shell y seleccionando Más > Ejecutar como administrador.
  2. Crea una suscripción de edge:

    New-EdgeSubscription -FileName "$env:UserProfile\Desktop\EdgeSubscriptionInfo-$env:computername.xml"
    

    Ahora deberías ver el archivo de suscripción en el escritorio.

  3. Exporta el certificado del servidor AD LDS de Exchange:

    1. Abre Microsoft Management Console haciendo clic en Inicio > Ejecutar, introduce mmc y selecciona Aceptar.
    2. Selecciona Archivo > Añadir o quitar complemento.
    3. En la lista de complementos, selecciona Certificados y haz clic en Añadir.
    4. Selecciona Cuenta de servicio y, a continuación, haz clic en Siguiente.
    5. Selecciona Equipo local y, a continuación, haz clic en Siguiente.
    6. Selecciona Microsoft Exchange ADAM y, a continuación, haz clic en Finalizar.
    7. Haz clic en Aceptar.
    8. En el panel de la izquierda, vaya a Certificates > ADAM_MSExchange\Personal > Certificates.
    9. Haz clic con el botón derecho en el certificado del panel de la derecha y selecciona Todas las tareas > Exportar.
    10. Haz clic en Siguiente.
    11. Selecciona No, no exportar la clave privada y haz clic en Siguiente.
    12. Seleccione X.509 codificado con Base64 (.cer) y haga clic en Siguiente.
    13. Selecciona una ubicación para guardar el certificado y haz clic en Siguiente.
  4. En cada una de las dos instancias de VM del servidor de buzón de correo, sigue estos pasos:

    1. Copia el certificado del servidor AD LDS de Exchange de ambos servidores de transporte perimetral en una ubicación temporal.
    2. Copia los archivos de suscripción de ambos servidores de transporte perimetral en una ubicación temporal.
    3. Abre un shell de administración de Exchange elevado haciendo clic con el botón derecho en Inicio > Exchange Management Shell y seleccionando Más > Ejecutar como administrador.
    4. Importa el certificado del servidor AD LDS de Exchange de transport-1-a:

      Import-Certificate -FilePath "PATH" -CertStoreLocation cert:\LocalMachine\Root
      

      Sustituye PATH por la ruta al certificado del servidor AD LDS de Exchange de transport-1-a.

    5. Importa el certificado del servidor AD LDS de Exchange de transport-1-b:

      Import-Certificate -FilePath "PATH" -CertStoreLocation cert:\LocalMachine\Root
      

      Sustituye PATH por la ruta al certificado del servidor AD LDS de Exchange de transport-1-b.

    6. Importa los archivos de suscripción a Edge de transport-1-a y transport-1-b.

    7. Inicia manualmente el proceso de EdgeSync en un servidor de buzones y verifica que la sincronización se haya realizado correctamente.

Configurar el balanceo de carga para el flujo de correo entrante

Para habilitar el flujo de correo entrante a los servidores de transporte perimetrales, ahora debe crear un recurso de balanceador de carga de red:

  1. Vuelve a tu sesión de Cloud Shell.
  2. Crea un grupo de destino:

    gcloud compute target-pools create transport-pool --region $SUBNET_REGION
    
  3. Añade las instancias de VM del servidor de transporte perimetral al grupo de destino:

    gcloud compute target-pools add-instances transport-pool \
      --instances-zone $SUBNET_ZONE_1 \
      --instances transport-1-a
    
    gcloud compute target-pools add-instances transport-pool \
      --instances-zone $SUBNET_ZONE_2 \
      --instances transport-1-b
    
  4. Reserva una dirección IP externa para el balanceador de carga:

    gcloud compute addresses create transport-frontend --region=$SUBNET_REGION
    
  5. Crea una regla de reenvío:

    gcloud compute forwarding-rules create www-rule \
      --region $SUBNET_REGION \
      --ports 25 \
      --address transport-frontend \
      --target-pool transport-pool
    
  6. Busca la dirección IP del balanceador de carga:

    gcloud compute addresses describe transport-frontend  \
      --region=$SUBNET_REGION \
      --format=value\(address\)
    

    Los servidores de transporte ya pueden recibir correo en el puerto 25 de esta dirección IP y enviarán el correo entrante a los servidores de buzones.

  7. Para comprobar que el envío de correos funciona, sigue las instrucciones que se indican en el artículo Usar Telnet para probar la comunicación SMTP en servidores Exchange.

  8. Para completar la configuración de los servidores de transporte perimetral, sigue los pasos que se indican en el artículo Configurar el flujo de correo y el acceso de cliente en servidores Exchange.

Configurar el flujo de correo saliente con SendGrid

Como Google Cloud no permite conexiones salientes en el puerto 25, ahora debes configurar un conector de envío personalizado para gestionar el correo saliente.

  1. Usa Google Cloud Marketplace para registrarte en el servicio de correo SendGrid.
  2. En el sitio web de SendGrid, crea una clave de API.
  3. Añade las direcciones IP públicas de las instancias de VM transport-1-a y transport-1-b a la lista de direcciones IP permitidas.

Crear un conector de envío

Ahora, crea un conector de envío saliente que use SendGrid como host inteligente:

  1. Vuelve al Centro de administración de Exchange (EAC).
  2. En el menú del EAC, seleccione Flujo de correo > Conectores de envío.
  3. Haz clic en +.
  4. En el cuadro de diálogo Nuevo conector de envío, introduce los siguientes ajustes:
    • Nombre: SendGrid
    • Tipo: Internet (por ejemplo, para enviar correo de Internet)
  5. Haz clic en Siguiente.
  6. En Configuración de red, selecciona Enrutar el correo a través de hosts inteligentes y haz clic en +.
  7. En la página Añadir host inteligente, introduce smtp.sendgrid.net.
  8. Haz clic en Guardar.
  9. Haz clic en Siguiente.
  10. En Autenticación de host inteligente, selecciona Autenticación básica.
  11. Introduzca la siguiente información:
    • Nombre de usuario: apikey
    • Contraseña: pega la clave de API creada en el sitio web de SendGrid.
  12. Haz clic en Siguiente.
  13. En Espacio de direcciones, haga clic en +.
  14. Introduzca la siguiente información:
    • Tipo: SMTP
    • Nombre de dominio completo (FQDN): *
    • Coste: 1
  15. Haz clic en Siguiente.
  16. En Servidor de origen, haz clic en +.
  17. Selecciona transport-1-a y transport-1-b y haz clic en Aceptar.
  18. Haz clic en Finalizar.

Cambiar el puerto SMTP

Ahora, configura el conector de envío para que use un puerto personalizado:

  1. En uno de los servidores de buzón de correo, abre el Shell de administración de Exchange haciendo clic con el botón derecho en Inicio > Shell de administración de Exchange.
  2. Modifica el conector de envío para que use el puerto 2525:

    Set-SendConnector -Identity "SendGrid" -port 2525
    
  3. Activa una sincronización perimetral para asegurarte de que el cambio de configuración se propaga a todos los servidores de transporte perimetrales:

    Start-EdgeSynchronization -ForceFullSync
    

Limpieza

Para evitar incurrir en más costes después de completar este tutorial, elimina las entidades que hayas creado.

Eliminar el Google Cloud proyecto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

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

Siguientes pasos