Доброй ночи!
На сервере с адресом 5.5.5.5 порт 6789 (UDP) висит демон. Нужно все пакеты, идущие на 4.4.4.4:1234 перенаправлять на 5.5.5.5:6789. Это UDP, потому никаких балансировщиков нагрузки, и nginx не предлагайте.
Что пробовал:
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1234 -j REDIRECT --to-port 5678
идеально работает локально, сервер отвечает по обоим портам, IP адрес клиента в обоих случаях правильный. Пытаюсь вместо --to-port поставить параметром --to IP:PORT, получаю ошибку:
REDIRECT: Bad value for "--to-ports" option
Вот такая конфигурация работает,
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1234 -j DNAT --to 5.5.5.5:6789
iptables -t nat -A POSTROUTING -p udp -d 5.5.5.5 --dport 6789 -j MASQUERADE
но на сервере вместо IP адреса клиента регистрируется IP адрес промежуточного сервера, а так нельзя. При этом если повторить локально (1234 перекидываю на 127.0.0.1:6789) - работает и без второй строчки, и IP адрес сохраняется верный.
Подскажите пожалуйста, как заставить -j REDIRECT работать с удаленным IP адресом либо -j DNAT не портить IP адрес с которого поступает запрос.