Laboratorio Exchange 2019 ibrido da zero: il piano completo
Nove fasi, l'ordine che le lega, cosa serve prima di iniziare e le sei trappole che fanno perdere una serata. Con il manuale di costruzione passo per passo.
Costruire un laboratorio Exchange 2019 ibrido — due server cassette in DAG, trasporto perimetrale in DMZ, bilanciatore, sincronizzazione verso Microsoft 365 — richiede una settimana di sere e nove fasi che vanno fatte in ordine.
Questa guida è il piano: cosa serve prima di cominciare, perché l’ordine è quello, e le sei trappole che si pagano care. I comandi, tutti, stanno nel manuale di costruzione.
Cosa serve prima del primo comando
| Voce | Requisito |
|---|---|
| Hypervisor | Proxmox VE 9, 32 GB di RAM, disco SSD |
| Memoria | 38 GB a pieno regime — si lavora a gruppi di accensione |
| Licenze | Nessuna: Exchange in Standard Evaluation, Windows in valutazione |
| Tenant | Microsoft 365 con un dominio pubblico verificato, per ricavarne un sottodominio |
| Tempo | Una settimana di sere. La parte lunga è l’ibrido |
Le nove fasi, e perché quell’ordine
Ogni fase esiste perché la successiva la richiede. Saltare avanti fa fallire cose che sembrano non c’entrare niente.
- Host e macchine. Bridge isolati, dimensionamento, limiti di CPU. E il fuso orario, che va messo subito.
- Firewall. Prima di tutto il resto: senza instradamento fra i segmenti, nessuna macchina vede le altre.
- Dominio. Foresta, DNS, cestino di Active Directory, suffisso UPN, gerarchia oraria.
- Identità. Le unità organizzative e gli attributi vanno decisi prima di creare utenti.
- Exchange. Schema, primo server, secondo server, database, DAG, connettori.
- Perimetro. Richiede Exchange installato e l’ora allineata.
- Bilanciatore. Richiede i due Exchange in ascolto.
- Ibrido. Richiede tutto il resto, più un dominio verificato.
- Verifica. L’ordine di accensione e la lista di controllo.
Due punti dell’ordine non sono negoziabili.
Le identità prima degli utenti. Spostare oggetti fra unità organizzative dopo che la sincronizzazione è attiva genera eliminazioni nel cloud: per Entra Connect un oggetto che esce dall’ambito è indistinguibile da un oggetto sparito.
Il fuso orario prima di tutto. È il passo più economico del piano e il più costoso da recuperare.
Le sei trappole
Ognuna è costata tempo vero durante la costruzione, e nessuna si annuncia con un errore che la nomini.
1. Il fuso orario delle macchine virtuali
L’hypervisor presenta alle macchine Windows un orologio espresso in ora locale dell’host. Una macchina configurata su un fuso diverso ne deduce un UTC sbagliato, e lo rifà a ogni riavvio.
Rompe certificati, Kerberos e il DAG, e l’errore che vedi parla di autenticazione. La storia per esteso: Nove ore di scarto.
2. I driver del disco durante l’installazione di Windows
Il programma di installazione non vede il disco se non gli si dà il secondo CD-ROM con i driver VirtIO. È il punto in cui ci si blocca al primo tentativo, prima ancora di aver installato niente.
3. Il limite dei cinque database conta anche le copie
L’edizione Standard consente cinque database di cassette postali per server, e il limite conta i database presenti, copie comprese.
Peggio: l’installazione del secondo server crea da sé un database predefinito che consuma un posto. Va rimosso prima di creare i propri, altrimenti il quarto non entra e l’errore arriva a metà lavoro.
4. Il CN diverso dal samAccountName
Add-MailboxPermission risolve per samAccountName, Add-ADPermission per nome oggetto. Se i due divergono, il primo funziona e il secondo fallisce con wasn't found: si ottiene uno script che assegna metà dei permessi senza fermarsi.
Va deciso alla creazione del primo utente, perché correggerlo dopo significa rinominare oggetti già sincronizzati. Le altre due sorprese degli script stanno in Tre presupposti che uno script Exchange non dichiara.
5. Le tre caselle di pfSense
Block private networks e Block bogon networks sulla WAN scartano il traffico amministrativo prima di qualsiasi regola, quando la «WAN» è in realtà una LAN privata. Il campo DNS Hostname va lasciato vuoto: metterci un indirizzo IP impedisce la risoluzione pur essendo l’instradamento corretto. E Filter rule association su None fa il NAT e blocca il traffico.
Tre impostazioni, tre guasti che sembrano avere altre cause.
6. Lo scheduler che si spegne da solo
Nella procedura guidata di Entra Connect, lasciare deselezionata la casella Start the synchronization process when configuration completes fa sì che il programma disattivi lo scheduler. Succede a ogni riesecuzione della procedura, ed è successo tre volte durante la costruzione.
Da fuori sembra che la sincronizzazione sia rotta. Si riattiva a mano:
Set-ADSyncScheduler -SyncCycleEnabled $true
Le due scelte di progetto che cambiano tutto
Il resto è esecuzione; queste due decidono se il laboratorio serve a qualcosa.
Segmenti /29 instradati, non una rete piatta. In produzione il bilanciatore e i server Exchange stanno su reti diverse, ed è questa la condizione che rende obbligatorio il SNAT — con la conseguenza che Exchange non vede l’indirizzo del vero mittente. Su rete piatta il fenomeno non esiste, e un laboratorio che non lo riproduce non permette di studiarlo.
Bilanciatore a livello 4, non 7. In modalità TCP l’handshake TLS attraversa il bilanciatore intatto e arriva a Exchange. In modalità HTTP il bilanciatore terminerebbe la connessione, e i fenomeni TLS da studiare sparirebbero.
Cosa non riprodurre, e perché
Un laboratorio utile dichiara le proprie lacune. Tre cose sono state escluse di proposito:
L’Hybrid Configuration Wizard, se il tenant ospita posta reale: scrive connettori a livello di organizzazione. Rinunciarvi significa rinunciare a una parte del comportamento ibrido, ed è la scelta giusta.
Una PKI interna, se in produzione il certificato di servizio viene da una CA pubblica: riprodurrebbe qualcosa che non esiste.
Il certificato di servizio, non ottenibile per un dominio di laboratorio. I certificati restano auto-firmati, e va dichiarato quando si leggono i risultati: «il browser ha protestato» e «non ha funzionato» sono esiti diversi, e solo uno dei due è un guasto.
Laboratorio costruito con il supporto di Ilie.