Есть ipsec-тунель, через который есть связь с определенным сервером, ip и порт строго заданы
Этот сервер принимает пакеты только от одного ИП
Устройств, которые нужно подключить к серверу - 3 штуки, поэтому нужно реализовать эдакий шлюз с подменой ИП адреса отправляющего
В качестве шлюза - suse
На нем 2 сетевых интерфейса, один смотрит во внутреннюю сеть (eth0), второй тот самый, с которого принимает пакеты удаленный сервер (eth1).
Собсно, вся загвоздка в настройках iptables на suse. Нужно, чтобы все компьютеры, которые подключаются на внутренний ИП SUSE пробрасывались на удаленный сервер.
ИП сервера и ИП шлюза смотрящих друг на друга - в разных подсетях.
iptables щупаю в первый раз в жизни
Сначала разрешаю ходить пакетам, предназначенные для удаленного сервера, приходящие на интерфейс SUSE
iptables -A FORWARD -i eth1 -d 10.255.0.13 -p tcp --dport 3171 -m state --state NEW -j ACCEPT
10.255.0.13 - Это ИП удаленного сервера, 3171 - его порт
После этого нужно сделать само перенаправление
iptables -t nat -A PREROUTING -i eth1 -p tcp -j DNAT --to-destination 10.255.0.13:3171
И тут косяк=) Вроде сначала нам нужно сделать подмену ИП, а потом уже отправить пакет, а SNAT работает только в POSTROUTING
Как быть-то, мать его?
С компьютера, с которого подключаемся, ИП eth1 SUSE пингуется, это через роутинги сделал.Все не так=)
Допедриваем по-тихоньку)))))
iptables -t nat -A PREROUTING -s 192.168.5.0/24 -i eth0 -j DNAT --to-destination 10.255.0.13 ===меняем адрес назначения с eth0 на 10.255.0.13 - адрес сервера
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -i eth0 -j SNAT --to-source 10.255.128.3 ===меняем адрес источника
Должно работать?