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 Google Cloud e che hai una conoscenza di base di Exchange Server 2016, Active Directory e Compute Engine.

Obiettivi

  • Configura un progetto e una rete VPC e preparali al deployment 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 dei server di trasporto perimetrale di 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 la 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 controller di dominio. La Il dominio Active Directory deve utilizzare un nome di dominio DNS valido e instradabile pubblicamente. Nomi di dominio locali come corp.local o nomi di dominio prenotati come example.com.

    Consulta l'articolo Deployment di un ambiente Microsoft Active Directory a tolleranza di errore. per ulteriori dettagli su come eseguire il deployment di un ambiente Active Directory in Compute Engine.

  • Una zona di forwarding 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 Google Cloud e un VPC con connettività ai controller di dominio Active Directory.

  • Una subnet da utilizzare per le istanze VM di Exchange. La subnet deve coprire 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.

Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.

Preparazione del progetto e della rete

Per preparare il progetto Google Cloud e il VPC 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 del tuo 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 devi creare un disco contenente l'installazione di Exchange Server multimediale di installazione. Se crei 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 Creazione di 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 delle regole firewall in corso...

Per consentire ai client di connettersi a Exchange e attivare la comunicazione tra i server Exchange, devi creare varie regole firewall. Per semplificare la creazione di questi regole firewall, devi utilizzare i tag di rete:

  • I server di trasporto periferico sono annotati con il tag exchange-transport.
  • I server delle cassette postali sono annotati con il tag exchange-mailbox.
  • Il server di verifica è 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, vedi le Trova le autorizzazioni necessarie per eseguire qualsiasi cmdlet di Exchange.

Deployment del server di gestione

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

  1. Torna alla sessione di Cloud Shell esistente.
  2. Crea uno script specializzato 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 in un secondo momento il disco secondario 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 con il nome utente e la password creati nel passaggio precedente.

  7. Fai clic con il pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic 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 tuo 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 con un utente del dominio che faccia parte del gruppo Enterprise Admins (Amministratori aziendali).

  13. Segui le istruzioni per preparare lo schema e i domini di Active Directory per Exchange Server. Puoi trovare il supporto di installazione di Exchange sull'unità 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 caselle di posta:

  1. Torna alla sessione Cloud Shell esistente.
  2. Crea uno script specializzato per l'istanza VM. Lo script viene eseguito durante l'inizializzazione e le installazioni della VM i prerequisiti per l'installazione dei server delle caselle di posta:

    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 cassetta postale 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, segui questi passaggi:

    1. Crea un nome utente e una password per l'istanza VM
    2. Connettiti alla VM utilizzando Remote Desktop e accedi con il nome utente e la password creati nel passaggio precedente.
    3. Fai clic con il pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic 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 tuo 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 file witness procedi nel seguente modo:

  1. Torna alla sessione Cloud Shell esistente.
  2. Crea un server di controllo 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 tuo 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 pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic 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 di 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 con un utente del dominio che sia membro di nel gruppo Amministratori aziendali.
  2. Fai clic con il pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic 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 di amministrazione di Exchange, avvia Chrome e vai alla seguente URL:

    https://mailbox-1-a/ecp/?ExchClientVer=15
    
  7. Accedi utilizzando un utente del dominio che faccia parte del gruppo degli amministratori aziendali.

  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 crea un gruppo di disponibilità del database:

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

  12. Fai clic sull'icona Abbonamento a 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 add.

  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 cassette postali, ora devi creare un risorsa del 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 inoltro 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\)
    

Test dei 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 a https://<var>IP</var>/owa/, dove IP è l'indirizzo IP del bilanciatore del carico che hai cercato in precedenza.
  2. Accedi utilizzando un utente del dominio.

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

Deployment del ruolo di trasporto perimetrale

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

A differenza dei server delle cassette postali, i server di trasporto perimetrale 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, deployment di server di trasporto perimetrali in un VPC o una subnet separata non è necessaria. 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 usare tipi di macchine più grandi. Consulta Trovare le autorizzazioni necessarie 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 specializzato 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 supera specialize-transport.ps1 come script speciale. 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 con 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 perimetrale in DNS

Prima di poter configurare un abbonamento 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 di 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 del progetto in cui viene eseguito il deployment delle 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 di abbonamenti a livello perimetrale

Completare le istanze di Active Directory Lightweight Directory Services (AD LDS) sul server di trasporto perimetrale con i dati di Active Directory, abbonamenti Edge.

  1. Apri una shell di gestione di Exchange con privilegi elevati facendo clic con il tasto destro del mouse Inizio > Exchange Management Shell e selezionando Altro > Esegui come amministratore.
  2. Crea un abbonamento a un bordo:

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

    Ora dovresti vedere il file dell'abbonamento sul desktop.

  3. Esporta il certificato del server Exchange AD LDS:

    1. Apri Microsoft Management Console facendo clic su Avvio > Esegui, inserendo mmc e selezionando Ok.
    2. Seleziona File > Aggiungi/rimuovi snapshot.
    3. Nell'elenco degli snapshot, seleziona Certificati e fai clic su Aggiungi.
    4. Seleziona Account di servizio, quindi fai clic su Avanti.
    5. Seleziona Computer locale, 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 pulsante 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 Base-64 (.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 Exchange AD LDS di entrambi i server di trasporto perimetrale in una posizione temporanea.
    2. Copia i file di abbonamento di entrambi i server di trasporto perimetrale in una posizione temporanea.
    3. Apri una shell di gestione di Exchange con privilegi elevati facendo clic con il tasto destro del mouse Inizio > 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 server Exchange AD LDS certificato di transport-1-a.

    5. Importa il certificato del server Exchange AD LDS 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. Avviare manualmente il processo EdgeSync su un server di caselle di posta e verifica che la sincronizzazione sia riuscita.

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

Per attivare il flusso della posta in entrata verso i server di trasporto periferico, ora devi creare una risorsa di 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 inoltro:

    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 posta 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. Utilizzare Google Cloud Marketplace la registrazione al servizio email SendGrid.
  2. Crea una nuova chiave API nel sito web di SendGrid.
  3. Aggiungi gli indirizzi IP pubblici delle istanze VM transport-1-a e transport-1-b all'elenco degli indirizzi IP consentiti.

Creazione di un connettore di invio

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

  1. Torna al Centro di amministrazione di Exchange.
  2. Nel menu EAC, seleziona Mail flow > (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 Smart Host e fai clic su +.
  7. Nella pagina Aggiungi smart host, 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 qualificato 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 perimetrale per garantire che la configurazione venga modificata viene propagata a tutti i server di trasporto perimetrale:

    Start-EdgeSynchronization -ForceFullSync
    

Esegui la pulizia

Per evitare 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. Dai un'occhiata al nostro Centro architetture cloud.