Server-Migration

Es hat sich so ergeben, dass ich circa alle zwei Jahre meine Server auf neue Hardware verlege. Bei den gemieteten root-servern kommen dabei immer neue IP-Adressen ins Spiel. Da das Update der DNS-Einträge ein wenig zeitversetzt geschieht und das den Zeitpunkt der Umstellung nicht ganz genau planen lässt, ist es günstig alle Anfragen von der alten IP-Adresse auf die neue umzuleiten. Mit iptables ist das sehr einfach, hier das Skript, das nicht nur Webanfragen, sondern auch Mailserver (SMTP und IMAP/POP) umleitet. Das Skript muss am alten Server ausgeführt werden, wobei 10.0.0.1 hier die IP-Adresse des neuen Servers ist.

echo 1 > /proc/sys/net/ipv4/ip_forward
# http/https
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.1
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.0.0.1
# imap/imaps
iptables -t nat -A PREROUTING -p tcp --dport 143 -j DNAT --to-destination 10.0.0.1
iptables -t nat -A PREROUTING -p tcp --dport 995 -j DNAT --to-destination 10.0.0.1
# SMTP
iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination 10.0.0.1
# POP3/POP3s
iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to-destination 10.0.0.1
iptables -t nat -A PREROUTING -p tcp --dport 995 -j DNAT --to-destination 10.0.0.1
iptables -t nat -A POSTROUTING -j MASQUERADE

Zum Anzeigen der NAT-Tabellen eignet sich dieses Kommando (credits):

iptables -nvL -t nat

Damit kann man die Servermigration mit einem Schalter umlegen.

Update:

Da dieser tolle Trick so gut funktioniert, besteht die Gefahr, dass man nicht alle DNS-Einträge auf die neue IP korrigiert hat. Nachdem der Server vom Provider Netz genommen wurde kamen die ersten Beschwerden … Deshalb das nächste mal vorher die Server-Abschaltung selbst testen.

See also