Tecniche/E-Mail/Commutazione

From ortiche
Jump to navigation Jump to search
Migrazione di un dominio di posta dall'host a all'host b

Condizioni strutturali: astratti dal dominio di posta - non devono cambiare durante la procedura

m = mailblock (dominio di posta)
a, b = hostname
x, y = ip di a, b

dns: rr=a type=A rdata=x
dns: rr=b type=A rdata=y
dns: rr=mail.a type=A rdata=x
dns: rr=mail.b type=A rdata=y
dns: rr=imap.a type=A rdata=x
dns: rr=imap.b type=A rdata=y

Condizioni iniziali: legati al dominio di posta

dns: rr=imap.m type=CNAME rdata=imap.a
dns: rr=pop.m type=CNAME rdata=imap.a
dns: rr=m type=MX rdata=mail.a pri=x
dns: rr=m type=MX rdata=mail.b pri=10*x
dns: rr=webmail.m type=CNAME rdata=imap.a

posta_domains: domain=m host=a mx=Y backup=N relay=N
posta_domains: domain=m host=b mx=N backup=Y relay=Y

Evento:

morte improvvisa o programmata di a, eccessivo carico di a, b molto scarico...

Procedura commutazione:

avviare i backup da b verso a e il relay da a su b
posta_domains: WHERE host=b AND domain=m SET backup=N relay=N
bloccare la ricezione su a
posta_domains: WHERE domain=m and host=a SET mx=N
avviare la ricezione su b
posta_domains: WHERE host=b AND domain=m SET mx=Y

impostare priorita' piu adatte alla nuova situazione - piuttosto opzionale
dns: mx m: WHERE rr=mail.m AND type=MX rdata=a SET pri = 10*x
dns: mx m: WHERE mail.m AND type=MX AND rdata=b SET pri = x

avviare i backup da b verso a e il relay da a su b (nel caso a tornasse su)
posta_domains: WHERE domain=m and host=a SET backup=Y AND relay=Y

commutazione accesso imap, webmail e pop per gli utenti
dns: WHERE rr=imap.m AND type=CNAME SET rdata=imap.b
dns: WHERE rr=webmail.m AND type=CNAME SET rdata=imap.b
dns: WHERE rr=pop.m and TYPE=CNAME SET rdata=imap.b

Condizioni finali:

dns: rr=imap.m type=CNAME rdata=imap.b
dns: rr=pop.m type=CNAME rdata=imap.b
dns: rr=m type=MX rdata=mail.a pri=10*x
dns: rr=m type=MX rdata=mail.b pri=x
dns: rr=webmail.m type=CNAME rdata=imap.b

posta_domains: domain=m host=b mx=Y backup=N relay=N
posta_domains: domain=m host=a mx=N backup=Y relay=Y