Добрый день.
У меня есть два хоста и клиент.
Я хочу сделать так, чтобы при подключении на хост1, он (хост1) перенаправлял соединение на хост2. Ответ от хост2 должен отправляться на хост1, а хост1 уже отправлял ответ клиенту.
Схематично это выглядит так:
клиент->хост1->хост2
хост2->хост1->клиент
У меня получилось этого добиться такими правилами на хост1:
iptables -t nat -A PREROUTING -p tcp --dport 3000 -j DNAT --to-destination хост2:3000
iptables -t nat -A POSTROUTING -p tcp -d хост2 --dport 3000 -j SNAT --to-source хост1
Но есть одна проблема: Когда соединение устанавливается, приложение на хост2 думает, что айпи клиента - это хост1. А я хочу, чтобы айпи клиента сохранялось на хост2. Но при этом, чтобы хост2 отвечал не напрямую клиенту, а через хост1.
Совет поднять прокси сервер вместо использования DNAT мне не подходит, потому что я все это делаю для защиты от DDOS уровня L4-L7. Я хочу все сомнительные соединения напрявлять на хост2, который мне не так важен. Но если использовать прокси сервер, то это не имеет смысла, т.к. пакеты попадут на сокет прокси на хост1. А я как раз хочу избежать попадание пакетов на сокет на хост1.
Буду рад любым ответам. Я понимаю, что я могу вообще сейчас делать фигню, по этому прошу не оскорблять, а указать на ошибку.