Procedura per il trasferimento di sito e posta tra server
Può capitare di dover spostare un sito web o la propria posta elettronica su un nuovo server, per diversi motivi. Potremmo aver deciso di cambiare provider; oppure – come è successo recentemente a GiBiLogic – potrebbe essere pianificato uno spostamento dei propri server in una nuova sala server, nell’ambito di un processo di miglioramento.
Tuttavia, lo spostamento su un nuovo server con un nuovo indirizzo ip presenta un punto critico: la modifica del DNS. Se infatti l’attivazione e lo spegnimento di un virtual host e di un server sono nelle nostre mani, e possono quindi essere effettuati quando vogliamo, non c’è invece modo di avere una modifica istantanea della risoluzione DNS.
Vediamo come si può cercare di affrontare questo problema senza perdere dati e visibilità.
Senza volerci troppo addentrare nella spiegazione di come funziona il sistema di risoluzione dei nomi, possiamo dire che la modifica si propaga gradualmente nelle ore successive. In questa fase di trasferimento, può accadere che da qualche parte del mondo si acceda già al nuovo server mentre contemporaneamente altrove si accede ancora a quello vecchio. Tale tempo di propagazione è variabile, di solito si considera un tempo prudente di 48 ore, anche se la maggior parte dell’operazione si conclude entro le prime ore.
Spostare un sito web
Lo spostamento del sito è la parte meno complessa. Ovviamente, è necessario cooperare con chi si occupa dei contenuti: dovremo infatti avvertirli di non effettuare modifiche durante la fase di passaggio. Dopodichè possiamo bloccare provvisoriamente l’interazione da parte degli utenti (acquisti, commenti) sul vecchio sito ed effettuare una copia del sito sul nuovo server, per poi procedere alla modifica DNS.
In questo modo la propagazione non ci preoccupa più: chi accede al nuovo sito può procedere con acquisti e commenti, mentre chi accede al vecchio dovrà pazientare ancora qualche momento. Noi siamo certi che il sito rimanga sempre visibile, e che i dati di interazione non vadano persi.
Spostare la posta elettronica
Per la posta elettronica, la situazione si complica un pochetto. Vediamo le varie opzioni.
- Se accettiamo posta su entrambi i server, finiamo per avere un periodo di “confusione” in cui gli utenti non sanno dove trovare i propri messaggi. Nel migliore dei casi, dovremo fornire due webmail o due indirizzi pop, dicendo controllare entrambi. Alla fine del trasferimento dovremo inoltre procedere, per completezza, a riunire l’eventuale posta lasciata sul server.
- Se smettiamo semplicemente di accettare la posta sul vecchio server e poi “giriamo” il DNS sul nuovo server, grazie al funzionamento del protocollo SMTP, la posta rimarrà in coda e dopo un certo ritardo arriverà alla fine a destinazione, senza che il mittente originale debba fare nulla.
Per l’esperienza nostra e dei nostri clienti, tuttavia, è più accettabile avere un fermo di qualche ora sul sito che sulla posta elettronica. Pertanto, abbiamo studiato un sistema più efficace, che fa uso del concetto di “MX secondario“.
Tecnicamente, un MX secondario è semplicemente un secondo server pronto a ricevere la nostra posta nel caso in cui il primario non sia raggiungibile. E’ possibile infatti definire a livello di DNS diversi MX server (ovvero server di posta) per il mio dominio, ciascuno con una priorità diversa. Chiunque mi voglia mandare posta controllerà questa lista di MX server e cercherà di mandarla al primo della lista; se il primo non risponde cercherà di mandarla al secondo, e così via.
Per evitare però di “disperdere” la posta tra diversi server, solitamente un MX secondario non deposita la posta localmente: non appena la riceve, la rimette in coda verso l’MX primario, consegnandola quando tale MX primario torna disponibile.
L’impostazione che rende un server MX primario o secondario per un dominio è una configurazione del software di posta utilizzato, nel nostro caso Postfix. In più, con il sistema di gestione PostfixAdmin, l’opzione è facilmente configurabile come un flag da attivare o disattivare nell’apposita interfaccia web.
Sfruttando questa opzione, possiamo rendere istantaneo il passaggio tra un server e un altro.
La procedura
Qualche giorno prima dell’operazione, creiamo il record DNS corrispondente al nuovo server MX, e impostiamo tale nuovo server com MX secondario, con l’inoltro automatico all’MX primario come spiegato sopra.
Questo non comporta nessun cambiamento: la posta continuerà ad arrivare al vecchio server. Però, intanto il nuovo server “esiste” ed è raggiungibile dai DNS.
Quando voglio procedere al cambio:
- imposto il nuovo server come MX primario
- imposto il vecchio server come MX secondario, con l’inoltro automatico
- sposto dal vecchio al nuovo l’eventuale posta già presente nelle caselle locali.
A questo punto la posta indirizzata al mio dominio verrà rimbalzata dal vecchio al nuovo server.
L’operazione è conclusa nel giro di pochi minuti. Posso poi procedere a modificare nel DNS la priorità dei due server, ma la propagazione è innocua: la posta arriva comunque sul server definitivo. Infatti:
- chi ha già ricevuto la modifica DNS invia direttamente al nuovo server;
- chi non ha ancora ricevuto la modifica invia la posta al vecchio server, che però – essendo MX secondario – la gira al nuovo;
Luca
Nella sezione “procedura” scrivete: “…e sposto dal vecchio al nuovo l’eventuale posta già presente nelle caselle locali”
Come faccio se non ho accesso alla casella di posta dell’utente?
Francesco
@Luca:
la procedura esemplificata illustra il caso in cui tui hai accesso – sistemisticamente parlando – a entrambi i server. Se hai accesso al server puoi senz’altro spostare i file relativi alla posta dell’utente.
Se non hai accesso, la situazione si complica e puoi solo chiedere all’utente finale di continuare a scaricare i messaggi dal vecchio server, cosi che non vadano persi.
Di solito in questi casi noi configuriamo sul PC dell’utente due account, in modo che durante il periodo di propagazione DNS scarichi sia dal vecchio che dal nuovo, cosi da non perdere comunque alcun messaggio.
Luca
Grazie Francesco…
La mia situazione però è più complessa: dovrò trasferire un dominio (+ sito web e casella di posta) dal provider A al provider B. Nel provider B (quello nuovo) ho accesso alla macchina (anche come root che conterrà il sito web) mentre nel provider A è solo uno spazio web con una casella di posta. Per complicare il tutto la casella sarà su un server di posta del provider anzichè sul server (vps) sul quale ho accesso….
Help!
Francesco
@Luca:
ovviamente la situazione andrebbe analizzata nel dettaglio e questo non è il luogo adatto. Posso tuttavia dirti che in questi casi la nostra soluzione è sempre stata quella di creare due account sul PC (o altro dispositivo client) dell’utente. In questo modo lui può scaricare da entrambi intanto che la propagazione DNS si completa.