Я в настоящее время выполняю игровой сервер на VPS и буду вскоре перемещать поставщика VPS. Для создания миграции легче на плеерах, я хотел бы, чтобы плееры смогли использовать исходный IP в течение короткого времени путем передачи всех пакетов от старого сервера до нового.
Я знаю, что это добавит дополнительную задержку, но я буду отображать сообщение, показывающее новый IP, и буду предупреждать их о добавленной задержке, если они будут использовать исходный IP.
Эти два сервера не находятся на той же внутренней сети.
Я хотел бы, чтобы все они были допустимы;
Client --> Server A --> Server B
Server B --> Client
Client --> Server B
Например, клиент может соединиться непосредственно с B, но если они соединятся с этим, то перенаправит к B. Сервер B отправляет свои данные непосредственно клиенту во всех случаях.
Сервер A ничего не сделает кроме передач пакетов (например, игровой сервер не работает туда),
Я знаю, что это не могло бы быть возможно, но будет замечательно, если кто-то мог бы выручить меня с этим.
О, поскольку это - игровой сервер, большей частью трафика является UDP, и оба сервера запускают Ubuntu 12.0.4
Спасибо
Клиент --> Сервер A --> Сервер B
Для этого необходимо использовать двойной NAT на Сервере A
:
DNAT
входящие пакеты на Сервере A
на Сервере B
SNAT
, чтобы обратный трафик отправлялся обратно через Сервер A
Что-то вроде этого:
iptables -t nat -A PREROUTING -d $Server_A_ip_address -j DNAT --to-destination $Server_B_ip_address
iptables -t nat -A POSTROUTING -d $Server_B_ip_address -j SNAT --to-source $Server_A_ip_address
Другие случаи проще обрабатывать :
Сервер B --> Клиент
На Сервере B
: iptables -A OUTPUT -s $Server_B_ip_address -j ACCEPT
Клиент --> Сервер B
На Сервере B
: iptables -A INPUT -d $Server_B_ip_address -j ACCEPT
Конечно, для всех этих случаев рекомендуется указывать протоколы и порты. Мои примеры слишком разрешительны, потому что я не знаю ваши порты/протоколы.
.