Здравствуйте!
Хочу спросить гуру в IPTABLES, как осуществить переброс трафика с одного сервера на 2-й так, чтобы 2-й сервер нормально определял удаленный IP. Сейчас по конкретнее опишу проблему: есть 2 сервера
сервер1: смотрим в инет eth0 86.57.xxx.1, внутренняя между серверами eth1 192.168.1.1 на 86.57.xxx.1:80 и 192.168.1.1:80 слушает nginx (ну и само собой на бэкенд 127.0.0.1 apache, но не суть). т.е. сервер извне на 86.57.xxx.1:80 принимает-отдает, т.е. работает)
сервер2: смотрим в инет eth0 86.57.xxx.2, внутренняя между серверами eth1 192.168.1.2 тут чисто mysql и больше ничего.
Захотелось использовать 2й канал 2го сервера, так сказать для увеличения скорости (в датацентре окраничение на сервер 100мбит).
Прописываю в iptables 2-го сервера
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 86.57.xxx.2 --dport 80 -j DNAT --to-destination 192.168.1.1:80
iptables -t nat -A POSTROUTING -o eth1 -p tcp -d 192.168.1.1 --dport 80 -j MASQUERADE
Все как бы бегает, а проблема в том, что все клиенты, пришедшие через 2-й сервер имеют IP этого же 2-го сервера (192.168.1.2), в результате фильтры по ip установленные в nginx приходят в негодность, да и в логах запросов сплошной ip 2-го сервера...
Я догадываюсь что дело в MASQUERADE, но вот ничего больше на ум не приходит. Кто подскажет как заставить 2-й сервер принимать пакеты так, чтобы не искажался начальный адрес клиента, подключившегося к серверу?
Заранее благодарю.