Deployment di Microsoft Exchange Server 2016 su Compute Engine


Questo tutorial descrive come eseguire il deployment di Microsoft Exchange Server 2016 su Compute Engine e configurarlo per l'alta disponibilità e la resilienza del sito.

Il deployment di Exchange coprirà due zone all'interno di un'unica regione. In ogni zona, implementerai un server delle cassette postali e un server di trasporto perimetrale. I server delle caselle di posta faranno parte di un gruppo di disponibilità del database in modo che i dati delle caselle di posta vengano replicati tra le zone.

Il seguente diagramma illustra il deployment:

Deployment di Microsoft Exchange

L'articolo presuppone che tu abbia già eseguito il deployment di Active Directory su Google Cloud e che tu abbia conoscenze di base su Exchange Server 2016, Active Directory e Compute Engine.

Obiettivi

  • Configura un progetto e una rete VPC e preparali per il deployment di Exchange Server 2016.
  • Esegui il deployment dei server delle caselle di posta di Exchange in due zone e crea un gruppo di disponibilità del database.
  • Esegui il deployment di server di trasporto perimetrali Exchange in due zone.
  • Configura le regole di bilanciamento del carico e del firewall.

Costi

Questo tutorial utilizza i componenti fatturabili di Google Cloud, tra cui:

Utilizza il Calcolatore prezzi per generare una stima dei costi in base all'utilizzo previsto.

Prima di iniziare

Per completare questa guida, devi disporre di quanto segue:

  • Un dominio Active Directory esistente con almeno un domain controller. Il dominio Active Directory deve utilizzare un nome di dominio DNS valido e routable pubblicamente. Non è possibile utilizzare nomi di dominio locali come corp.local o nomi di dominio riservati come example.com.

    Per ulteriori dettagli su come eseguire il deployment di un ambiente Active Directory su Compute Engine, consulta la sezione Eseguire il deployment di un ambiente Microsoft Active Directory ridondante.

  • Una zona di inoltro DNS privata per il nome di dominio DNS di Active Directory che inoltra le query DNS ai controller di dominio.

  • Accesso amministrativo al dominio Active Directory.

  • Un progetto e un VPC Google Cloud con connettività ai controller di dominio Active Directory.

  • Una subnet da utilizzare per le istanze VM di Exchange. La subnet deve comprendere almeno due zone.

Prima di iniziare il deployment, esamina i requisiti di alta disponibilità e resilienza del sito per Exchange Server.

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

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

Al termine delle attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la sezione Pulizia.

Preparazione del progetto e della rete

Per preparare il progetto e il VPC Google Cloud per il deployment di Exchange Server, segui questi passaggi:

  1. Passa al tuo progetto nella console Google Cloud e apri Cloud Shell.

    Apri Cloud Shell

  2. Inizializza le seguenti variabili:

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

    Dove:

    • VPC_NAME è il nome della tua VPC.
    • SUBNET_NAME è il nome della subnet.
    • SUBNET_REGION è la regione della subnet.
  3. Imposta l'ID progetto predefinito:

    gcloud config set project PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.

Creazione di un disco di installazione

Ora crea un disco contenente i file multimediali per l'installazione di Exchange Server. Creando un disco che puoi collegare a più istanze VM, eviti di dover scaricare i dati di installazione su ogni istanza VM singolarmente.

  1. Segui le istruzioni riportate in Creare un'immagine da un file ISO. Utilizza il seguente URL come URL di download:

    https://download.microsoft.com/download/6/6/F/66F70200-E2E8-4E73-88F9-A1F6E3E04650/ExchangeServer2016-x64-cu11.iso
    
  2. Utilizza la nuova immagine per creare un disco nella prima zona:

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

    Sostituisci IMAGE con il nome dell'immagine che hai creato nel passaggio precedente.

  3. Crea un disco nella seconda zona:

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

    Sostituisci IMAGE con il nome dell'immagine che hai creato nel primo passaggio.

Creazione di regole firewall

Per consentire ai client di connettersi a Exchange e attivare la comunicazione tra i server Exchange, devi creare diverse regole del firewall. Per semplificare la creazione di queste regole del firewall, utilizza i tag di rete:

  • I server di trasporto di Edge sono annotati con il tag exchange-transport.
  • I server delle cassette postali sono annotati con il tag exchange-mailbox.
  • Il server di riferimento è annotato con il tag exchange-witness.
  • Tutti i server sono annotati con il tag exchange.

Crea regole firewall che utilizzano questi tag di rete:

  1. Torna alla sessione Cloud Shell esistente.
  2. Crea regole firewall per i server delle caselle di posta:

    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 regola firewall per il server di trasporto perimetrale:

    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
    

Il progetto e il VPC sono ora pronti per il deployment di Exchange Server.

Eseguire il deployment del ruolo della cassetta postale

Ora esegui il deployment dei server delle caselle di posta e di un server di gestione che utilizzi per amministrare Exchange.

Le istanze VM utilizzeranno il tipo di macchina n1-standard-8. Per un'analisi più dettagliata delle tue esigenze e dei relativi requisiti di sistema, consulta la sezione Trovare le autorizzazioni necessarie per eseguire qualsiasi cmdlet di Exchange.

Eseguire il deployment del server di gestione

Per creare un'istanza VM che funge da server di gestione, segui questi passaggi:

  1. Torna alla sessione Cloud Shell esistente.
  2. Crea uno script di specializzazione per l'istanza VM. Lo script viene eseguito durante l'inizializzazione della VM e installa i prerequisiti del client per gli strumenti di gestione di 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 un'istanza VM che utilizzi specialize-admin.ps1 come script di specializzazione e collega il disco di installazione di Exchange come disco secondario. Utilizza il disco secondario in un secondo momento per installare gli strumenti di gestione di 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. Monitora il processo di inizializzazione della VM visualizzando l'output della porta seriale:

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

    Attendi circa 5 minuti finché non viene visualizzato l'output Instance setup finished, quindi premi Ctrl+C. A questo punto, l'istanza VM è pronta per essere utilizzata.

  5. Crea un nome utente e una password per l'istanza VM

  6. Connettiti alla VM utilizzando Remote Desktop e accedi utilizzando il nome utente e la password creati nel passaggio precedente.

  7. Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Prompt dei comandi (amministratore).

  8. Conferma la richiesta di elevazione facendo clic su .

  9. Nel prompt dei comandi con privilegi elevati, avvia una sessione PowerShell:

    powershell
    
  10. Unisci il computer al dominio Active Directory:

    Add-Computer -Domain DOMAIN
    

    Sostituisci DOMAIN con il nome DNS del tuo dominio Active Directory.

  11. Riavvia il computer:

    Restart-Computer
    

    Attendi circa 1 minuto per il completamento del riavvio.

  12. Connettiti alla VM utilizzando Remote Desktop e accedi utilizzando un utente di dominio che sia membro del gruppo Amministratori Enterprise.

  13. Segui le istruzioni per preparare lo schema e i domini Active Directory per Exchange Server. Puoi trovare i dati di installazione di Exchange sul disco D:.

  14. Segui le istruzioni per installare gli strumenti di gestione di Exchange.

Eseguire il deployment dei server delle cassette postali

Ora puoi eseguire il deployment delle istanze VM che fungono da server delle cassette postali:

  1. Torna alla sessione Cloud Shell esistente.
  2. Crea uno script di specializzazione per l'istanza VM. Lo script viene eseguito durante l'inizializzazione della VM e installa i prerequisiti per l'installazione dei server delle cassette postali:

    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 un'istanza VM nella prima zona e passa specialize-mailbox.ps1 come script di specializzazione. Collega il disco di installazione di Exchange come disco secondario. Utilizza il disco secondario in un secondo momento per installare il ruolo della cassetta di posta di 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 un'altra istanza VM nella seconda 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. Monitora il processo di inizializzazione della VM visualizzando l'output della porta seriale:

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

    Attendi circa 5 minuti finché non viene visualizzato l'output Instance setup finished, quindi premi Ctrl+C. A questo punto, l'istanza VM è pronta per l'uso.

  6. Per ciascuna delle due istanze VM, svolgi i seguenti passaggi:

    1. Crea un nome utente e una password per l'istanza VM
    2. Connettiti alla VM utilizzando Remote Desktop e accedi utilizzando il nome utente e la password creati nel passaggio precedente.
    3. Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Prompt dei comandi (amministratore).
    4. Conferma la richiesta di elevazione facendo clic su .
    5. Nel prompt dei comandi con privilegi elevati, avvia una sessione PowerShell:

      powershell
      
    6. Unisci il computer al dominio Active Directory:

      Add-Computer -Domain DOMAIN
      

      Sostituisci DOMAIN con il nome DNS del tuo dominio Active Directory.

    7. Riavvia il computer:

      Restart-Computer
      

      Attendi circa 1 minuto per il completamento del riavvio.

    8. Connettiti alla VM utilizzando Remote Desktop e accedi utilizzando un utente di dominio che sia membro del gruppo Amministratori Enterprise.

    9. Installa il ruolo della cassetta di posta di Exchange Server utilizzando la configurazione guidata o la modalità unattended. Puoi trovare i dati di installazione di Exchange sul disco D:.

Eseguire il deployment del server di attendibilità

Per configurare un gruppo di disponibilità del database (DAG) per i due server delle caselle di posta, hai bisogno di un'istanza VM aggiuntiva da utilizzare come server di attendibilità. Per eseguire il deployment del server di attendibilità:

  1. Torna alla sessione Cloud Shell esistente.
  2. Crea un server di attendibilità nella prima 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. Monitora il processo di inizializzazione della VM visualizzando l'output della porta seriale:

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

    Attendi circa 3 minuti finché non viene visualizzato l'output Instance setup finished, quindi premi Ctrl+C. A questo punto, l'istanza VM è pronta per essere utilizzata.

  4. Crea un nome utente e una password per l'istanza VM

  5. Connettiti alla VM utilizzando Remote Desktop e accedi utilizzando il nome utente e la password creati nel passaggio precedente.

  6. Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Prompt dei comandi (amministratore).

  7. Conferma la richiesta di elevazione facendo clic su .

  8. Nel prompt dei comandi con privilegi elevati, avvia una sessione PowerShell:

    powershell
    
  9. Unisci il computer al dominio Active Directory:

    Add-Computer -Domain DOMAIN
    

    Sostituisci DOMAIN con il nome DNS del tuo dominio Active Directory.

  10. Riavvia il computer:

    Restart-Computer
    

    Attendi circa 1 minuto per il completamento del riavvio.

  11. Connettiti alla VM utilizzando Remote Desktop e accedi utilizzando un utente di dominio che sia membro del gruppo Amministratori Enterprise.

  12. Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Prompt dei comandi (amministratore).

  13. Conferma la richiesta di elevazione facendo clic su .

  14. Nel prompt dei comandi con privilegi elevati, avvia una sessione PowerShell:

    powershell
    
  15. Aggiungi il gruppo di sicurezza universale Exchange Trusted Subsystem al gruppo Amministratori locale:

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

    Sostituisci DOMAIN con il nome NetBIOS del tuo dominio Active Directory.

I due server delle cassette postali e il server di attendibilità sono stati completamente dipartiti, ma devi ancora aggiungerli a un gruppo di disponibilità del database.

Creazione di un gruppo di disponibilità del database

Per creare un DAG:

  1. Connettiti alla VM di gestione utilizzando Remote Desktop e accedi utilizzando un utente di dominio che sia membro del gruppo Amministratori Enterprise.
  2. Fai clic con il tasto destro del mouse sul pulsante Start (o premi Win+X) e poi su Prompt dei comandi (amministratore).
  3. Conferma la richiesta di elevazione facendo clic su .
  4. Nel prompt dei comandi con privilegi elevati, avvia una sessione PowerShell:

    powershell
    
  5. Scarica e installa il browser 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. Per aprire il Centro amministrativo Exchange (EAC), avvia Chrome e vai al seguente URL:

    https://mailbox-1-a/ecp/?ExchClientVer=15
    
  7. Accedi utilizzando un utente di dominio che sia membro del gruppo Amministratori Enterprise.

  8. Nel menu EAC, seleziona server > gruppi di disponibilità del database.

  9. Fai clic su +.

  10. Nella finestra di dialogo, inserisci le seguenti impostazioni per creare un gruppo di disponibilità del database:

    1. Nome del gruppo di disponibilità del database: mailbox
    2. Server di attendibilità: witness
  11. Fai clic su Salva.

  12. Fai clic sull'icona Abbonamento DAG gestito.

  13. Nella finestra di dialogo, fai clic su + per aggiungere un server membro.

  14. Seleziona mailbox-1-a e mailbox-1-b e fai clic su Aggiungi.

  15. Fai clic su OK.

  16. Fai clic su Salva.

Se vuoi, esegui le attività di post-installazione di Exchange Server.

Configurazione del bilanciamento del carico

Per consentire ai client di connettersi ai server delle caselle di posta, ora devi creare una risorsa di bilanciatore del carico interno:

  1. Torna alla sessione Cloud Shell esistente.
  2. Crea un gruppo di istanze non gestite per 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. Aggiungi le istanze VM che eseguono i server delle cassette postali ai gruppi di istanze:

    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 un controllo di integrità che esamini il percorso HTTP /owa/healthcheck.htm:

    gcloud compute health-checks create http http-80\
      --port=80 \
      --request-path=/owa/healthcheck.htm
    
  5. Crea un backend del bilanciatore del carico e aggiungi i due gruppi di istanze:

    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. Prenota un indirizzo IP statico per il bilanciatore del carico:

    gcloud compute addresses create mailbox-frontend \
      --region=$SUBNET_REGION \
      --subnet=$SUBNET_NAME
    
  7. Crea una regola di forwarding per il bilanciatore del carico:

    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. Cerca l'indirizzo IP del bilanciatore del carico:

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

Testare i server delle caselle di posta

Per verificare che i server delle cassette postali siano stati dipartiti correttamente, svolgi i seguenti passaggi:

  1. Nella VM di gestione, apri Chrome e vai all'indirizzo https://<var>IP</var>/owa/, dove IP è l'indirizzo IP del bilanciatore del carico che hai cercato in precedenza.
  2. Accedi utilizzando un utente di dominio.

    A questo punto dovresti vedere l'interfaccia utente di Outlook Web Access.

Eseguire il deployment del ruolo di trasporto perimetrale

Ora esegui il deployment dei server di trasporto di confine. I server di trasporto di confine gestiscono tutti i flussi di posta in entrata e in uscita.

A differenza dei server delle caselle di posta, i server di trasporto di confine sono esposti a internet. In un deployment on-premise, potresti quindi implementare i server di trasporto perimetrali in una rete perimetrale isolata dalla rete interna tramite firewall.

Su Google Cloud, non è necessario eseguire il deployment dei server di trasporto di confine in una VPC o una subnet distinta. Utilizza invece le regole firewall per microsegmentare la rete e limitare la comunicazione di rete da e verso i server di trasporto di confine.

A differenza dei server delle cassette postali, i server di trasporto di confine non sono membri del tuo dominio Active Directory.

Le istanze VM utilizzeranno il tipo di macchina n1-standard-8. A seconda di come prevedi di utilizzare il deployment di Exchange, potresti dover utilizzare tipi di macchine più grandi. Consulta l'articolo Trovare le autorizzazioni richieste per eseguire qualsiasi cmdlet di Exchange per un'analisi più dettagliata delle tue esigenze e dei relativi requisiti di sistema.

Eseguire il deployment dei server di trasporto di confine

Per eseguire il deployment dei server di trasporto di confine:

  1. Torna alla sessione Cloud Shell esistente.
  2. Crea uno script di specializzazione per l'istanza VM. Lo script viene eseguito durante l'inizializzazione della VM e installa i prerequisiti per l'installazione dei server di trasporto di confine:

    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 un'istanza VM nella prima zona e passa specialize-transport.ps1 come script di specializzazione. Collega il disco di installazione di Exchange in modalità di sola lettura per poter installare in un secondo momento il ruolo del server di trasporto di 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 un'altra istanza VM nella seconda 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. Monitora il processo di inizializzazione della VM visualizzando l'output della porta seriale:

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

    Attendi circa 5 minuti finché non viene visualizzato l'output Instance setup finished, quindi premi Ctrl+C. A questo punto, l'istanza VM è pronta per essere utilizzata.

  6. Per ciascuna delle due istanze VM del server di trasporto Edge:

    1. Crea un nome utente e una password per l'istanza VM.
    2. Connettiti alla VM utilizzando Remote Desktop e accedi utilizzando il nome utente e la password creati nel passaggio precedente.
    3. Configura il suffisso DNS principale in modo che corrisponda al nome di dominio DNS utilizzato dal tuo dominio Active Directory.
    4. Installa il ruolo del server di trasporto perimetrale di Exchange Server utilizzando la procedura guidata di configurazione o la modalità unattended. Puoi trovare i dati di installazione di Exchange sul disco D:.

Registrazione dei server di trasporto di confine nel DNS

Prima di poter configurare un abbonamento a Edge per i server di trasporto Edge, devi assegnare i nomi DNS al server. Poiché i server di trasporto di confine non fanno parte del tuo dominio Active Directory, devi assegnare questi nomi manualmente:

  1. Sul server di gestione, apri una console PowerShell.
  2. Crea un record CNAME per transport-1-a e 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"
    

    Dove:

    • PROJECT-ID è l'ID progetto in cui sono dipiattate le istanze VM di Exchange.
    • REGION è la regione in cui sono implementate le istanze VM di Exchange.
    • DOMAIN è il dominio DNS del tuo dominio Active Directory.

Configurazione degli abbonamenti Edge

Per compilare le istanze AD LDS (Active Directory Lightweight Directory Services) sul server di trasporto perimetrale con i dati di Active Directory, ora devi configurare le iscrizioni perimetrali.

  1. Apri una shell di gestione di Exchange con privilegi elevati facendo clic con il tasto destro del mouse su Start > Exchange Management Shell e selezionando Altro > Esegui come amministratore.
  2. Crea una sottoscrizione per i dispositivi edge:

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

    Ora dovresti vedere il file di abbonamento sul computer.

  3. Esporta il certificato del server AD LDS di Exchange:

    1. Apri Microsoft Management Console facendo clic su Avvio > Esegui, inserendo mmc e selezionando Ok.
    2. Seleziona File > Aggiungi/rimuovi snap-in.
    3. Nell'elenco degli snap-in, seleziona Certificati e fai clic su Aggiungi.
    4. Seleziona Account di servizio e poi fai clic su Avanti.
    5. Seleziona Computer locale e poi fai clic su Avanti.
    6. Seleziona Microsoft Exchange ADAM e poi fai clic su Fine.
    7. Fai clic su OK.
    8. Nel riquadro a sinistra, vai a Certificati > ADAM_MSExchange\Personal > Certificati.
    9. Fai clic con il tasto destro del mouse sul certificato nel riquadro a destra e seleziona Tutte le attività > Esporta.
    10. Fai clic su Avanti.
    11. Seleziona No, non esportare la chiave privata e fai clic su Avanti.
    12. Seleziona X.509 con codifica Base64 (.cer) e fai clic su Avanti.
    13. Seleziona una posizione in cui salvare il certificato e fai clic su Avanti.
  4. Per ciascuna delle due istanze VM del server delle cassette postali:

    1. Copia il certificato del server AD LDS di Exchange di entrambi i server di trasporto perimetrali in una posizione temporanea.
    2. Copia i file di sottoscrizione di entrambi i server di trasporto di confine in una posizione temporanea.
    3. Apri una shell di gestione di Exchange con privilegi elevati facendo clic con il tasto destro del mouse su Start > Exchange Management Shell e selezionando Altro > Esegui come amministratore.
    4. Importa il certificato del server AD LDS di Exchange di transport-1-a:

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

      Sostituisci PATH con il percorso del certificato del server AD LDS di Exchange di transport-1-a.

    5. Importa il certificato del server AD LDS di Exchange di transport-1-b:

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

      Sostituisci PATH con il percorso del certificato del server AD LDS di Exchange di transport-1-b.

    6. Importa i file di abbonamento Edge di transport-1-a e transport-1-b.

    7. Avvia manualmente il processo EdgeSync su un server delle cassette postali e verifica che la sincronizzazione sia riuscita.

Configurazione del bilanciamento del carico per il flusso di posta in entrata

Per attivare il flusso di email in entrata verso i server di trasporto perimetrali, ora crea una risorsa Bilanciatore del carico di rete:

  1. Torna alla sessione Cloud Shell esistente.
  2. Crea un pool di destinazione:

    gcloud compute target-pools create transport-pool --region $SUBNET_REGION
    
  3. Aggiungi le istanze VM del server di trasporto di confine al pool di destinazione:

    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. Prenota un indirizzo IP esterno per il bilanciatore del carico:

    gcloud compute addresses create transport-frontend --region=$SUBNET_REGION
    
  5. Crea una regola di forwarding:

    gcloud compute forwarding-rules create www-rule \
      --region $SUBNET_REGION \
      --ports 25 \
      --address transport-frontend \
      --target-pool transport-pool
    
  6. Cerca l'indirizzo IP del bilanciatore del carico:

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

    I server di trasporto ora sono disponibili per ricevere le email sulla porta 25 di questo indirizzo IP e inoltreranno le email in arrivo ai server delle caselle di posta.

  7. Verifica che l'invio delle email funzioni seguendo le istruzioni riportate in Utilizzare Telnet per testare la comunicazione SMTP sui server Exchange.

  8. Per completare la configurazione dei server di trasporto perimetrali, segui i passaggi descritti in Configurare il flusso di posta e l'accesso client sui server Exchange.

Configurazione del flusso di email in uscita utilizzando SendGrid

Poiché Google Cloud non consente connessioni in uscita sulla porta 25, ora devi configurare un connettore di invio personalizzato per gestire le email in uscita.

  1. Utilizza Google Cloud Marketplace per registrarti al servizio email SendGrid.
  2. Sul sito web di SendGrid, crea una nuova chiave API.
  3. Aggiungi gli indirizzi IP pubblici delle istanze VM transport-1-a e transport-1-b all'elenco di indirizzi IP consentiti.

Creazione di un connettore di invio

Ora crea un connettore di invio in uscita che utilizza SendGrid come smart host:

  1. Torna all'Exchange Admin Center (EAC).
  2. Nel menu EAC, seleziona Flusso di posta > Connettori di invio.
  3. Fai clic su +.
  4. Nella finestra di dialogo Nuovo connettore di invio, inserisci le seguenti impostazioni:
    • Nome: SendGrid
    • Tipo: Internet (ad esempio per inviare email via internet)
  5. Fai clic su Avanti.
  6. In Impostazioni di rete, seleziona Instrada la posta tramite SmartHost e fai clic su +.
  7. Nella pagina Aggiungi SmartHost, inserisci smtp.sendgrid.net.
  8. Fai clic su Salva.
  9. Fai clic su Avanti.
  10. In Autenticazione SmartHost, seleziona Autenticazione di base.
  11. Inserisci le seguenti informazioni:
    • Nome utente: apikey
    • Password: incolla la chiave API creata sul sito web di SendGrid
  12. Fai clic su Avanti.
  13. In Spazio degli indirizzi, fai clic su +.
  14. Inserisci le seguenti informazioni:
    • Tipo: SMTP
    • Nome di dominio completo (FQDN): *
    • Costo: 1
  15. Fai clic su Avanti.
  16. In Server di origine, fai clic su +.
  17. Seleziona transport-1-a e transport-1-b e fai clic su OK.
  18. Fai clic su Fine.

Modifica della porta SMTP

Ora configura il connettore di invio in modo che utilizzi una porta personalizzata:

  1. Su uno dei server delle caselle di posta, apri Exchange Management Shell facendo clic con il tasto destro del mouse su Start > Exchange Management Shell.
  2. Modifica il connettore di invio in modo che utilizzi la porta 2525:

    Set-SendConnector -Identity "SendGrid" -port 2525
    
  3. Attiva una sincronizzazione dell'edge per assicurarti che la modifica della configurazione sia propagata a tutti i server di trasporto dell'edge:

    Start-EdgeSynchronization -ForceFullSync
    

Esegui la pulizia

Per evitare di incorrere in ulteriori costi dopo aver completato questo tutorial, elimina le entità che hai creato.

Elimina il progetto Google Cloud

  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.

Passaggi successivi

  • Esplora architetture di riferimento, diagrammi e best practice su Google Cloud. Consulta il nostro Cloud Architecture Center.