我有一个 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
。