Как сделать редирект запроса на другой IP и порт средствами iptables?

Доброго времени суток.
Можно ли сделать так, чтобы запросы к серверу по определенному порту редиректились на другой внешний сервер, не находящийся в одной сети с первым, при этом сохраняя оригинальный IP отправителя?
То есть, предположим, что пользователь с адресом 1.2.3.4 обращается к серверу с адресом 4.3.2.1 по порту 100. Сервер должен как бы сказать пользователю, что он "ошибся адресом" и отправить его на другой сервер. После этой процедуры второй сервер должен получить запрос от 1.2.3.4, т.е от оригинального отправителя.
Возможно ли это вообще?
  • Вопрос задан
  • 3090 просмотров
Решения вопроса 1
cjey
@cjey
Мне кажется только средствами iptables это сделать невозможно.

Можно делать -j REJECT --reject-with tcp-reset, но дальше уже клиент должен решать, к какому следующему адресу нужно подключаться.

Можно подменять отправителя и получателя пакета, но тогда второй сервер будет общаться с первым, а не с клиентом.

Самое просто - настроить DNS адрес, на какой сервер указывает, на такой и подключаемся. Или выдавать список ip адресов на DNS запрос, перебирать их все и какой сервер первым ответит, с тем и общаться.

UPD: А вообще вопрос чересчур общий, не понятно какую конечную цель вы хотите решить, поэтому сложно посоветовать что-то конкретное.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы