Всем привет! Прошу помочь разобраться с iptables.
С iptables только познакомился по этому может чего не так делаю.
Задача такая на сервере несколько сетевых интерфесов и соответственно несколько ip адресов которые могут быть как в разных подсетях, так и в одной. Предположим есть 2 сетевых интерфейса и на них 2 ip адреса 10.10.10.1 и 10.10.10.2 Есть локальное приложение которое формирует трафик на определенный хост (10.10.10.3). Возможности указать приложению в явном виде с какого адреса формировать запросы и соответственно принимать нет.
Хотелось с помощью iptables перенаправлять трафик через нужный мне адрес.
Написал пару правил:
iptables -t nat -A POSTROUTING -s 10.10.10.2 -d 10.10.10.3 -j SNAT –to-source 10.10.10.1
и
iptables -t nat -A PREROUTING -s 10.10.10.3 -d 10.10.10.1 -j DNAT –to-destination 10.10.10.2
На сколько я понимаю эти правила должны делать:
POSTROUTING - если пакет исходящий с 10.10.10.2 на 10.10.10.3 , то подменить адрес отправки на 10.10.10.1
PREROUTING - если пакет входящий от 10.10.10.3 на 10.10.10.1 , то подменить адрес приема на 10.10.10.2
Пингую с 10.10.10.2 на 10.10.10.3
При этом мониторю трафик с помощью iftop , исходящий идет от 10.10.10.2 на 10.10.10.1 локально и дальше на 10.10.10.3 удаленно, обратно же идет с 10.10.10.3 на 10.10.10.1 удаленно, но на 10.10.10.2 локально не уходит. Т.е. пинг на 10.10.10.3 уходит, а обратно на 10.10.10.2 не возвращается, тормозит на 10.10.10.1. В чем может быть причина??