iptables 链在两个相同网络之间转发

iptables 链在两个相同网络之间转发

我有两个相同的网络,我希望在分别配置为 TCP 服务器和 TCP 客户端的两台计算机之间转发流量。使用连接到两个网络的计算机,我希望使用 iptables 转发此数据。我希望启动从客户端到转发器的 TCP 连接,然后让它与服务器建立连接。

例如,TCP 客户端(1.1.1.155) 与转发器(1.1.1.55) 建立连接,并且它内部将请求转发到服务器(1.1.1.155) 以完成连接。参见下图。

基本网络图

我已启用 ipv4 转发:

echo 1 > /proc/sys/net/ipv4/ip_forward

我已经清除了 iptables 配置

iptables -F

我一直在尝试的 iptables 配置是:

iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth2 -j DNAT --to-destination 1.1.1.155
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

答案1

当前的设计可能不适合您。您当前的问题让我想起了 VPN,其中本地子网与远程子网相同。回到你的设计,转发器将是一个 VPN 服务器。为了使这项工作有效:

LAN-A subnet will remain unchanged
LAN-B subnet will remain unchanged
eth1 and eth2 on forwarder must belong to two unique subnets, without conflicting with each other or with LAN-A and LAN-B.

一旦满足这些条件,您就必须在防火墙规则中使用 NAT。请记住,转发器将充当网关。如前所述,为了使网关正常工作,它必须在不同子网上至少有两个网络接口。

相关内容