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 abbraccia due zone all'interno di una singola regione. In ogni zona, eseguirai il deployment di un server delle caselle di posta e di 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 nelle varie 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 una conoscenza di base di Exchange Server 2016, Active Directory e Compute Engine.

Obiettivi

  • Imposta un progetto e una rete VPC e preparali al deployment di Exchange Server 2016.
  • Esegui il deployment dei server delle cassette postali 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 il bilanciamento del carico e le regole 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, ti occorrono:

  • Un dominio Active Directory esistente con almeno un controller di dominio. Il dominio Active Directory deve utilizzare un nome di dominio DNS valido e instradabile 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 Deployment di un ambiente Microsoft Active Directory a tolleranza di errore.

  • 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. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

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 tua 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 crei un disco contenente il supporto di installazione di Exchange Server. Creando un disco da collegare a più istanze VM, eviterai di dover scaricare il supporto di installazione su ogni istanza VM singolarmente.

  1. Segui le istruzioni 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 diverse regole firewall. Per semplificare la creazione di queste regole firewall, utilizza i tag di rete:

  • I server di trasporto perimetrale sono annotati con il tag exchange-transport.
  • I server delle caselle di posta 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 utilizzino questi tag di rete:

  1. Torna alla sessione di 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.

Deployment del ruolo "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 Trovare le autorizzazioni necessarie per eseguire qualsiasi cmdlet di Exchange.

Deployment del server di gestione

Segui questi passaggi per creare un'istanza VM che funga da server di gestione:

  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 utilizza specialize-admin.ps1 come script specializzato e collega il disco di installazione di Exchange come disco secondario. Potrai utilizzare 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 fino a quando 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 di 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.

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 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 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. Creare un'istanza VM nella prima zona e passare 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 fino a quando 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, 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 di 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 con un utente del dominio che faccia parte del gruppo Enterprise Admins (Amministratori aziendali).

    9. Installa il ruolo cassetta postale di Exchange Server utilizzando la configurazione guidata o la modalità automatica. Puoi trovare il supporto di installazione di Exchange sull'unità D:.

Deployment del server di testimonianza

Per configurare un gruppo di disponibilità del database (DAG) per i due server delle caselle di posta, è necessaria un'istanza VM aggiuntiva che funga da server di controllo. Per eseguire il deployment del server di testimonianza, segui questi passaggi:

  1. Torna alla sessione di 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 con il nome utente e la password creati nel passaggio precedente.

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

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

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

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

Il deployment dei due server delle caselle di posta e di quello di verifica è stato completato, ma devi comunque aggiungerli a un gruppo di disponibilità del database.

Creazione di un gruppo di disponibilità del database

Per creare un DAG, segui questi passaggi:

  1. Connettiti alla VM di gestione utilizzando Remote Desktop e accedi con un utente di dominio che faccia parte del gruppo Enterprise Admins (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 di 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 al 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à di database.

  9. Fai clic su +.

  10. Nella finestra di dialogo, inserisci le seguenti impostazioni per creare 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.

Facoltativamente, esegui tutte le attività post-installazione di Exchange Server.

Configurazione del bilanciamento del carico

Per consentire ai client di connettersi ai server delle cassette postali, ora puoi creare una risorsa di bilanciatore del carico interno:

  1. Torna alla sessione di 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 ai gruppi di istanze le istanze VM che eseguono i server delle cassette postali:

    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 il backend di un 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\)
    

Test dei server delle caselle di posta

Per verificare che il deployment dei server delle caselle di posta sia stato eseguito correttamente, segui questi 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 eseguire il deployment di server di trasporto perimetrali in una rete perimetrale isolata dalla rete interna da firewall.

Su Google Cloud non è necessario eseguire il deployment di server di trasporto perimetrali in un VPC o una subnet separata. Puoi invece utilizzare le regole firewall per micro-segmentare la rete e limitare la comunicazione di rete da e con i server di trasporto perimetrale.

A differenza dei server delle cassette postali, i server di trasporto perimetrale non sono membri del 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.

Deployment dei server di trasporto perimetrale

Per eseguire il deployment dei server di trasporto perimetrale, 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 per l'installazione di server di trasporto perimetrale:

    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. Creare un'istanza VM nella prima zona e passare specialize-transport.ps1 come script di specializzazione. Collega il disco di installazione di Exchange in modalità di sola lettura in modo da 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 fino a quando 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 perimetrale, esegui 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. Configura il suffisso DNS principale in modo che corrisponda al nome di dominio DNS utilizzato dal dominio Active Directory.
    4. Installa il ruolo del server di trasporto perimetrale di Exchange Server utilizzando la configurazione guidata o la modalità automatica. Puoi trovare il supporto di installazione di Exchange sull'unità D:.

Registrazione dei server di trasporto perimetrale in DNS

Prima di poter configurare un abbonamento perimetrale per i server di trasporto perimetrale, devi assegnare i nomi DNS al server. Poiché i server di trasporto perimetrale non sono membri del tuo dominio Active Directory, devi assegnare manualmente questi nomi:

  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 viene eseguito il deployment delle istanze VM di Exchange.
    • DOMAIN è il dominio DNS del tuo dominio Active Directory.

Configurazione di abbonamenti a livello perimetrale

Per completare le istanze di Active Directory Lightweight Directory Services (AD LDS) sul server di trasporto perimetrale con i dati di Active Directory, devi ora configurare le sottoscrizioni a livello perimetrale.

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

    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 Start > 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, quindi 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 caselle di posta, segui questi passaggi:

    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 pulsante destro del mouse su Start > Exchange Management Shell e selezionando Altro > Esegui come amministratore.
    4. Importa il certificato del server Exchange AD LDS 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 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 delle sottoscrizioni Edge di transport-1-a e transport-1-b.

    7. Avvia manualmente il processo EdgeSync su un server delle caselle di posta e verifica che la sincronizzazione sia riuscita.

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

Per abilitare il flusso della posta in entrata verso i server di trasporto perimetrale, ora devi creare una risorsa del bilanciatore del carico di rete:

  1. Torna alla sessione di 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 perimetrale 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 sono ora disponibili per ricevere le email sulla porta 25 di questo indirizzo IP e passeranno le email in arrivo ai server delle caselle di posta.

  7. Verifica che il recapito delle email funzioni seguendo le istruzioni 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 le connessioni in uscita sulla porta 25, ora puoi configurare un connettore di invio personalizzato per gestire le email in uscita.

  1. Utilizza Google Cloud Marketplace per registrarti 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 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 posta 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 smart host, 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 devi configurare il connettore di invio in modo che utilizzi una porta personalizzata:

  1. In uno dei server delle cassette postali, apri la shell di gestione di Exchange facendo clic con il pulsante 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 modifica della configurazione venga 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. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Passaggi successivi

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