Implementar Microsoft Exchange Server 2016 en Compute Engine


En este instructivo, se describe cómo implementar Microsoft Exchange Server 2016 en Compute Engine y configurarlo para lograr alta disponibilidad y resiliencia del sitio.

La implementación de Exchange abarcará dos zonas dentro de una misma región. En cada zona, implementarás un servidor de buzones y un servidor de transporte perimetral. Los servidores de buzones formarán parte de un grupo de disponibilidad de base de datos para que los datos de buzón se repliquen en todas las zonas.

En el siguiente diagrama, se muestra la implementación:

Implementación de Microsoft Exchange

En el artículo, se supone que ya implementaste Active Directory en Google Cloud y que tienes conocimientos básicos de Exchange Server 2016, Active Directory y Compute Engine.

Objetivos

  • Configurar un proyecto y una red de VPC, y prepáralos para la implementación de Exchange Server 2016
  • Implementar servidores de buzones de Exchange en dos zonas y crear un grupo de disponibilidad de base de datos
  • Implementar servidores de transporte perimetral de Exchange en dos zonas
  • Configura el balanceo de cargas y las reglas de firewall.

Costos

En este instructivo, se usan componentes facturables de Google Cloud, que incluyen los siguientes:

Usa la calculadora de precios para generar una estimación de los costos según el uso previsto.

Antes de comenzar

Para completar esta guía, necesitas lo siguiente:

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

    Para obtener más información sobre cómo implementar un entorno de Active Directory en Compute Engine, consulta Implementa un entorno de Microsoft Active Directory tolerante a errores.

  • Una zona privada de reenvío de DNS para el nombre de dominio DNS de Active Directory que reenvía consultas de DNS a los controladores de tu dominio.

  • Acceso de administrador a tu dominio de Active Directory.

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

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

Antes de comenzar la implementación, revisa los requisitos de alta disponibilidad y resiliencia del sitio para Exchange Server.

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.

Prepara el proyecto y la red

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

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

    Abra 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
    

    Aquí:

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

    gcloud config set project PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

Crea un disco de instalación

Ahora crearás un disco que contiene el medio de instalación de Exchange Server. Cuando creas un disco que puedes conectar a varias instancias de VM, evitas tener que descargar el medio de instalación en cada instancia de VM de forma individual.

  1. Sigue las instrucciones en Crea 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 imagen nueva 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
    

    Reemplaza IMAGE por el nombre de la imagen que creaste 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
    

    Reemplaza IMAGE por el nombre de la imagen que creaste en el primer paso.

Crea reglas de firewall

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

  • Los servidores de transporte perimetral tienen anotaciones con la etiqueta exchange-transport.
  • Los servidores de buzones tienen anotaciones con la etiqueta exchange-mailbox.
  • El servidor testigo tiene anotaciones con la etiqueta exchange-witness.
  • Todos los servidores tienen anotaciones con la etiqueta exchange.

Crea reglas de firewall que usen estas etiquetas de red:

  1. Regresa a tu sesión actual de Cloud Shell.
  2. Crea reglas de firewall 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 firewall 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 VPC están listos para la implementación de Exchange Server.

Implementa la función de buzón

Ahora implementa los servidores de buzones y un servidor de administración que usas 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 la Calculadora de requisitos de función de Exchange Server.

Implementa el servidor de administración

Sigue estos pasos para crear una instancia de VM que funcione como servidor de administración:

  1. Regresa a tu sesión actual de Cloud Shell.
  2. Crea una secuencia de comandos de specialize para la instancia de VM. La secuencia de comandos se ejecuta durante la inicialización de la VM y se instalan los requisitos previos del cliente para las Herramientas de administració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 una secuencia de comandos de specialize y conecta el disco de instalación de Exchange como un disco secundario. Más adelante, usarás el disco secundario para instalar las Herramientas de administració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. Supervisa el proceso de inicialización de la VM mediante la visualización de su resultado de puerto en 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 y presiona Ctrl+C. En este punto, la instancia de VM está lista para usarse.

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

  6. Conéctate a la VM mediante un escritorio remoto y accede con el nombre de usuario y la contraseña que creaste en el paso anterior.

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

  8. Para confirmar el símbolo de elevación, haz clic en .

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

    powershell
    
  10. Une la computadora a tu dominio de Active Directory:

    Add-Computer -Domain DOMAIN
    

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

  11. Reinicia la computadora:

    Restart-Computer
    

    Espera aproximadamente 1 minuto para que se complete el reinicio.

  12. Conéctate a la VM mediante un escritorio remoto y accede con un usuario del dominio que sea miembro del grupo Administradores de empresas.

  13. Sigue las instrucciones a fin de 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 administración de Exchange.

Implementa los servidores de buzones

Ahora estás listo para implementar las instancias de VM que funcionan como servidores de buzones:

  1. Regresa a tu sesión actual de Cloud Shell.
  2. Crea una secuencia de comandos de specialize para la instancia de VM. La secuencia de comandos se ejecuta durante la inicialización de la VM y se instalan los requisitos previos para instalar los servidores de buzones:

    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 la secuencia de comandos de specialize. Conecta el disco de instalación de Exchange como disco secundario. Más adelante, usarás el disco secundario para instalar la función de buzón de Exchange Server, como se muestra a continuación:

    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, de esta manera:

    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. Supervisa el proceso de inicialización de la VM mediante la visualización de su resultado de puerto en 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, luego, presiona Ctrl+C. En este punto, la instancia de VM está lista para usarse.

  6. Para cada una de las dos instancias de VM, realiza los siguientes pasos:

    1. Crea un nombre de usuario y una contraseña para la instancia de VM
    2. Conéctate a la VM mediante un escritorio remoto y accede con el nombre de usuario y la contraseña que creaste en el paso anterior.
    3. Haz clic con el botón derecho en el botón Inicio (o presiona Win + X) y haz clic en Símbolo del sistema (administrador).
    4. Para confirmar el símbolo de elevación, haz clic en .
    5. En el símbolo del sistema con privilegios elevados, inicia una sesión de PowerShell:

      powershell
      
    6. Une la computadora a tu dominio de Active Directory:

      Add-Computer -Domain DOMAIN
      

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

    7. Reinicia la computadora:

      Restart-Computer
      

      Espera aproximadamente 1 minuto para que se complete el reinicio.

    8. Conéctate a la VM mediante un escritorio remoto y accede con un usuario del dominio que sea miembro del grupo Administradores de empresas.

    9. Instala la función de buzón de Exchange Server con el asistente de configuración o el modo sin supervisión. Puedes encontrar el medio de instalación de Exchange en la unidad D:.

Implementa el servidor testigo

A fin de configurar un grupo de disponibilidad de base de datos (DAG) para los dos servidores de buzones, necesitas una instancia de VM adicional como servidor testigo. Para implementar el servidor testigo, sigue estos pasos:

  1. Regresa a tu sesión actual 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. Supervisa el proceso de inicialización de la VM mediante la visualización de su resultado de puerto en 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 y presiona Ctrl+C. En este punto, la instancia de VM está lista para usarse.

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

  5. Conéctate a la VM mediante un escritorio remoto y accede con el nombre de usuario y la contraseña que creaste en el paso anterior.

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

  7. Para confirmar el símbolo de elevación, haz clic en .

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

    powershell
    
  9. Une la computadora a tu dominio de Active Directory:

    Add-Computer -Domain DOMAIN
    

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

  10. Reinicia la computadora:

    Restart-Computer
    

    Espera aproximadamente 1 minuto para que se complete el reinicio.

  11. Conéctate a la VM mediante un escritorio remoto y accede con un usuario del dominio que sea miembro del grupo Administradores de empresas.

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

  13. Para confirmar el símbolo de elevación, haz clic en .

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

    powershell
    
  15. Agrega el grupo de seguridad universal Exchange Trusted Subsystem al grupo local Administrators:

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

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

Los dos servidores de buzones y el servidor testigo ahora están completamente implementados, pero aún debes agregarlos a un grupo de disponibilidad de base de datos.

Crea un grupo de disponibilidad de base de datos

Para crear un DAG, sigue estos pasos:

  1. Conéctate a la VM de administración mediante un escritorio remoto y accede con un usuario de dominio que sea miembro del grupo Enterprise Admins.
  2. Haz clic con el botón derecho en el botón Iniciar (o presiona Win+X) y, luego, en Símbolo del sistema (administrador).
  3. Para confirmar el símbolo de elevación, haz clic en .
  4. En el símbolo del sistema con privilegios elevados, inicia una sesión de PowerShell:

    powershell
    
  5. Descarga y, luego, 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 navega a la siguiente URL:

    https://mailbox-1-a/ecp/?ExchClientVer=15
    
  7. Accede con un usuario del dominio que sea miembro del grupo Enterprise Admins.

  8. En el menú del EAC, selecciona servidores > grupos de disponibilidad de base de datos.

  9. Haz clic en +.

  10. En el diálogo, ingresa la siguiente configuración para crear un grupo de disponibilidad de base de datos:

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

  12. Haz clic en el ícono Suscripción al DAG administrado.

  13. En el cuadro de diálogo, haga clic en + para agregar un servidor miembro.

  14. Selecciona mailbox-1-a y mailbox-1-b y haz clic en agregar.

  15. Haz clic en Aceptar.

  16. Haz clic en Guardar.

Si lo deseas, puedes realizar cualquier tarea posterior a la instalación de Exchange Server.

Configura el balanceo de cargas

Para permitir que los clientes se conecten a los servidores de buzones, ahora crearás un recurso de balanceador de cargas interno:

  1. Regresa a tu sesión actual de Cloud Shell.
  2. Crea un grupo de instancias no administrado 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. Agrega 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 verificación de estado que explore 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 cargas y agrega 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 cargas:

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

    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 cargas:

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

Prueba los servidores de buzones

Para verificar que los servidores de buzones se implementaron de manera correcta, sigue estos pasos:

  1. En la VM de administración, abre Chrome y navega a https://<var>IP</var>/owa/; IP es la dirección IP del balanceador de cargas que buscaste antes.
  2. Accede con un usuario de dominio.

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

Implementa la función de transporte perimetral

Ahora implementa los servidores de transporte perimetral. Los servidores de transporte perimetral manejan 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. Por lo tanto, en una implementación local, podrías implementar servidores de transporte perimetral en una red perimetral aislada de la red interna por firewalls.

En Google Cloud, no es necesario implementar servidores de transporte perimetral en una subred o VPC independiente. En cambio, utiliza reglas de firewall para microsegmentar tu red y restringir la comunicación de red desde y hacia los servidores de transporte perimetral.

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. Según cómo planeas usar la implementación de Exchange, es posible que debas usar tipos de máquinas más grandes. Consulta la Calculadora de requisitos de funciones de Exchange Server para obtener un análisis más detallado de tus necesidades y los requisitos del sistema.

Implementa los servidores de transporte perimetral

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

  1. Regresa a tu sesión actual de Cloud Shell.
  2. Crea una secuencia de comandos de specialize para la instancia de VM. La secuencia de comandos se ejecuta durante la inicialización de la VM y se instalan 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 la secuencia de comandos de specialize. Conecta el disco de instalación de Exchange en modo de solo lectura para que luego puedas instalar la función 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, de esta manera:

    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. Supervisa el proceso de inicialización de la VM mediante la visualización de su resultado de puerto en 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 presiona Ctrl+C. En este punto, la instancia de VM está lista para usarse.

  6. Para cada una de las 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 un escritorio remoto y accede con el nombre de usuario y la contraseña que creaste 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 la función de servidor de transporte perimetral de Exchange Server con el asistente de configuración o el modo sin supervisión. Puedes encontrar el medio de instalación de Exchange en la unidad D:.

Registra los servidores de transporte perimetral en DNS

Antes de configurar una suscripción perimetral para los servidores de transporte perimetral, debes asignar nombres de DNS al servidor. Debido a que los servidores de transporte perimetral no son miembros de tu dominio de Active Directory, debes asignar estos nombres de forma manual:

  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"
    

    En el ejemplo anterior, se ilustra lo siguiente:

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

Configuración de suscripciones perimetrales

Para propagar las instancias de Servicios de directorio liviano de Active Directory (AD LDS) en el servidor de transporte perimetral con datos de Active Directory, ahora configurarás suscripciones perimetrales.

  1. Para abrir un shell de administración de Exchange elevado, haz clic con el botón derecho en Start > Exchange Management Shell y selecciona More > Run as Administrator.
  2. Crea una suscripción perimetral:

    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 de servidor de AD LDS de Exchange:

    1. Para abrir Microsoft Management Console, haz clic en Inicio > Ejecutar, ingresa mmc y selecciona Aceptar.
    2. Selecciona Archivo > Agregar o quitar complemento.
    3. En la lista de complementos, selecciona Certificados y haz clic en Agregar.
    4. Selecciona Cuenta de servicio y haz clic en Siguiente.
    5. Selecciona Computadora local y, luego, haz clic en Siguiente.
    6. Selecciona Microsoft Exchange ADAM y haz clic en Finalizar.
    7. Haz clic en Aceptar.
    8. En el panel izquierdo, navega hasta Certificados > ADAM_MSExchange\Personal > Certificados.
    9. Haz clic con el botón derecho en el panel derecho 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. Selecciona X.509 con codificación Base-64 (.cer) y haz clic en Siguiente.
    13. Selecciona una ubicación para guardar el certificado y haz clic en Siguiente.
  4. Para cada una de las dos instancias de VM del servidor de buzón, realiza los siguientes 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. Para abrir un shell de administración de Exchange elevado, haz clic con el botón derecho en Start > Exchange Management Shell y selecciona More > Run as Administrator.
    4. Importa el certificado de servidor AD LDS de Exchange de transport-1-a:

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

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

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

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

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

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

    7. Inicia el proceso de EdgeSync de forma manual en un servidor de buzones y verifica que la sincronización finalice correctamente.

Configura el balanceo de cargas para el flujo de correo electrónico entrante

Para habilitar el flujo de correo electrónico entrante en los servidores de transporte perimetral, crearás un recurso de balanceador de cargas de red:

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

    gcloud compute target-pools create transport-pool --region $SUBNET_REGION
    
  3. Agrega 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 cargas:

    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 cargas:

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

    Los servidores de transporte ahora están disponibles para recibir correo electrónico en el puerto 25 de esta dirección IP y pasarán el correo electrónico entrante a los servidores de buzones de correo.

  7. Sigue las instrucciones en cómo usar Telnet para probar la comunicación SMTP en servidores de Exchangepara verificar que la entrega del correo electrónico funcione.

  8. Para completar la configuración de tus servidores de transporte perimetral, sigue los pasos en cómo configurar el flujo de correo y el acceso de cliente en los servidores de Exchange.

Configura el flujo de correo electrónico saliente mediante SendGrid

Debido a que Google Cloud no permite conexiones salientes en el puerto 25, debes configurar un conector de envío personalizado para controlar los correos electrónicos salientes.

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

Crea un conector de envío

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

  1. Regresa al Centro de administración de Exchange (EAC).
  2. En el menú del EAC, selecciona Flujo de correo > Conectores de envío.
  3. Haz clic en +.
  4. En el cuadro de diálogo Nuevo conector de envío, ingresa la siguiente configuración:
    • Nombre: SendGrid
    • Tipo: Internet (por ejemplo, para enviar correo de Internet)
  5. Haz clic en Siguiente.
  6. En Configuración de red, selecciona Redirigir correo mediante hosts inteligentes y haz clic en +.
  7. En la página Agregar host inteligenteAdd smart host, ingresa 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. Ingresa 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, haz clic en +.
  14. Ingresa la siguiente información:
    • Tipo: SMTP
    • Nombre de dominio completo (FQDN): *
    • Costo: 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.

Cambia el puerto SMTP

Ahora configurarás el conector de envío para usar un puerto personalizado:

  1. En uno de los servidores de buzones, haz clic derecho en Iniciar > Shell de administración de Exchange para abrir el shell de administración de Exchange.
  2. Modifica el conector de envío para usar 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 propague a todos los servidores de transporte perimetral:

    Start-EdgeSynchronization -ForceFullSync
    

Limpia

A fin de evitar incurrir en costos adicionales una vez que hayas completado este instructivo, borra las entidades que has creado.

Borra el proyecto de Google Cloud

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

¿Qué sigue?

  • Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.