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 un'unica regione. In ogni zona eseguirai il deployment di un server di cassette postali e di un server di trasporto perimetrale. I server delle cassette postali faranno parte di un gruppo di disponibilità del database, in modo che i dati delle cassette postali 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 disponga di una conoscenza di base di Exchange Server 2016, Active Directory e Compute Engine.

Obiettivi

  • Configurare un progetto e una rete VPC e prepararli per il deployment di Exchange Server 2016.
  • Esegui il deployment dei server di cassette postali di Exchange su due zone e crea un gruppo di disponibilità del database.
  • Esegui il deployment di server di trasporto perimetrale di Exchange su due zone.
  • Configura il bilanciamento del carico e le regole 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, hai bisogno di quanto segue:

  • 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. I nomi di dominio locali come corp.local o nomi di dominio riservati come example.com non possono essere utilizzati.

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

  • 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 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 comprendere almeno due zone.

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

  1. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  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 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 in corso...

Ora creerai un disco contenente il supporto di installazione di Exchange Server. Creando un disco che puoi collegare a più istanze VM, eviterai di dover scaricare il supporto di installazione in 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 creata 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 creata nel primo passaggio.

Creazione delle regole firewall in corso...

Per consentire ai client di connettersi a Exchange e per abilitare 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 controllo è 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 le 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 casella di posta

Ora devi implementare i server della casella di posta e 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 il Calcolatore dei requisiti dei ruoli di Exchange Server.

Deployment del server di gestione

Per creare un'istanza VM che funga da server di gestione:

  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 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 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 pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic su Prompt dei comandi (amministratore).

  8. Conferma la richiesta di altitudine facendo clic su .

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

    powershell
    
  10. Aggiungi 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 faccia parte del gruppo 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 di caselle di posta

Ora è tutto pronto per eseguire il deployment delle istanze VM che fungono da server delle caselle di posta:

  1. Torna alla sessione Cloud Shell esistente.
  2. Creare 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. 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. Potrai utilizzare il disco secondario in un secondo momento per installare il ruolo casella 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 vedi 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 utilizzando 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 altitudine facendo clic su .
    5. Nel prompt dei comandi con privilegi elevati, avvia una sessione di PowerShell:

      powershell
      
    6. Aggiungi 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 faccia parte del gruppo Amministratori aziendali.

    9. Installa il ruolo casella di posta 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 testimone

Per configurare un gruppo di disponibilità del database (DAG) per i due server delle cassette postali, è necessaria un'istanza VM aggiuntiva da utilizzare come server di controllo. Per eseguire il deployment del server testimone, segui questi passaggi:

  1. Torna alla sessione Cloud Shell esistente.
  2. Crea un server testimone 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 pulsante destro del mouse sul pulsante Start (o premi Win+X) e fai clic su Prompt dei comandi (amministratore).

  7. Conferma la richiesta di altitudine facendo clic su .

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

    powershell
    
  9. Aggiungi 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 faccia parte del gruppo 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 altitudine 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 locale Admins:

    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 del server di test è 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:

  1. Connettiti alla VM di gestione utilizzando Remote Desktop e accedi con un utente di dominio che faccia parte del 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 altitudine 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 (EAC), avvia Chrome e vai al seguente URL:

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

  8. Nel menu EAC, seleziona server > gruppi di disponibilità 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 testimone: witness
  11. Fai clic su Salva.

  12. Fai clic sull'icona Iscrizione ai DAG gestiti.

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

  14. Seleziona mailbox-1-a e mailbox-1-a, quindi fai clic su mailbox-1-a.

  15. Fai clic su OK.

  16. Fai clic su Salva.

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

Configurazione del bilanciamento del carico

Per consentire ai client di connettersi ai server delle caselle di posta, ora puoi creare una 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 ai gruppi di istanze le istanze VM che eseguono i server delle caselle di posta:

    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 effettui il probe del 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 Edge. I server di trasporto perimetrale gestiscono tutto il flusso di posta in entrata e in uscita.

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

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

A differenza dei server delle caselle di posta, 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 utilizzare tipi di macchina più grandi. Consulta il Calcolatore requisiti dei ruoli di Exchange Server 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 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 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. 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 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 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 perimetrale, segui questi 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. 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 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 una sottoscrizione Edge per i server di trasporto perimetrale, devi assegnare nomi DNS al server. Poiché i server di trasporto perimetrale non sono membri del tuo dominio Active Directory, devi assegnare manualmente i seguenti 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 delle sottoscrizioni Edge

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

  1. Apri una shell di gestione di Exchange elevata 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"
    

    A questo punto 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, quindi 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. Tocca Avanti.
    11. Seleziona No, non esportare la chiave privata e fai clic su Avanti.
    12. Seleziona X.509 (.cer) con codifica Base-64 e fai clic su Avanti.
    13. Seleziona un percorso 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 elevata 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 LDS di Exchange AD 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 LDS di Exchange AD 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 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 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 la ricezione delle email sulla porta 25 di questo indirizzo IP e passano la posta in arrivo ai server delle caselle di posta.

  7. Verifica che il recapito 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 perimetrale, segui i passaggi descritti in Configurare il flusso di posta e l'accesso client sui server Exchange.

Configurazione del flusso di posta in uscita mediante 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. 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 degli indirizzi IP consentiti.

Creazione di un connettore di invio

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

  1. Torna al Centro di amministrazione di Exchange (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 posta su internet)
  5. Tocca 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. Tocca 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. Tocca Avanti.
  13. In Spazio degli indirizzi, fai clic su +.
  14. Inserisci le seguenti informazioni:
    • Tipo: SMTP
    • Nome di dominio completo (FQDN): *
    • Costo: 1
  15. Tocca 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 configuri il connettore di invio in modo che utilizzi una porta personalizzata:

  1. In uno dei server delle caselle di posta, 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 di incorrere in 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. Dai un'occhiata al nostro Cloud Architecture Center.