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