Перекидываем трафик при переездах

Понадобилось тут срочно переезжать с одной vds'ки на другую. На сервере крутится приложение с базой данных и всяким таким динамическим...
А днсы обновляются не быстро (хотя на самом деле и озадачился заранее тем, чтобы ttl у записей уменьшить - но как всегда, все пошло не по плану :) )

Понадобилось тут срочно переезжать с одной vds'ки на другую. На сервере крутится приложение с базой данных и всяким таким динамическим...
А днсы обновляются не быстро (хотя на самом деле и озадачился заранее тем, чтобы ttl у записей уменьшить - но как всегда, все пошло не по плану :) )
Срочный выход был найден - перекинуть трафик со старого сервера на новый, вот и все... :)
Download file forward_traf.bash

#!/bin/sh
 
OLD_SERVER_IP=310.320.330.340   # ip cтарого сервера
NEW_SERVER_IP=250.260.270.280   # ip сервера куда переехали
 
 
sysctl net.ipv4.ip_forward=1    # если вдруг до этого не включили режим форварда трафика (а на обычном сервере вообще-то он чаще всего не включен)
 
iptables -t nat -F              # сначала чистим всю таблицу nat
 
# для всех портов из списка говорим натить трафик в обе стороны
for port in 80 443 1333 8080 65777; do  
  iptables -t nat -A PREROUTING -d $OLD_SERVER_IP -p tcp --dport $port -j DNAT --to-destination $NEW_SERVER_IP:$port
  iptables -t nat -A POSTROUTING -d $NEW_SERVER_IP -p tcp --dport $port -j SNAT --to-source $OLD_SERVER_IP
done
 
Соответственно - этот скрипт надо запускать на старом сервере. Из особенностей - на новом сервере все запросы клиентов будут видны как запросы с ip-адреса старого сервера - если в службах/приложениях есть какие-то ограничения по ip-адресам - надо этот момент учесть... Ну а после того как новые днс-записи все-таки расползутся по интернету - старый сервер можно и погасить...