У меня есть правило iptables, которое переводит запросы на один и тот же IP-адрес с разных внутренних хостов путем изменения исходного порта.
iptables -t NAT -A POSTROUTING -p TCP -d 173.32.1.2 --dport 873 \
-m state --state NEW,ESTABLISHED -j SNAT --to-source 173.32.1.1:44000-44300
Как мне обрабатывать ответы от этого хоста? Как я могу сопоставить порт назначения ответного пакета с IP-адресом внутреннего хоста, который его ожидает? Вот что у меня есть:
iptables -t NAT -A PREROUTING -p TCP -s 173.32.1.1 --sport 873 \
-m state --state ESTABLISHED -j DNAT --to-destination # what do I put here?
Пример того, чего я пытаюсь достичь:
Два хозяина, 192.168.1.3
и 192.168.1.4
, оба пытаются установить соединение с 173.32.1.2
. NAT изменяет адрес источника исходящих пакетов и порт источника соответственно на 173.32.1.1 : 44000
и 173.32.1.1 : 44001
.
Цель 173.32.1.2
ответы на оба из них с адресом и портом назначения 173.32.1.1 : 44000
и 173.32.1.1 : 44001
. Теперь я хочу переслать эти пакеты исходным отправителям, первым из которых 192.168.1.3
а второй 192.168.1.4
.