我有以下设置:
Box A eth0 - 192.168.1.101 eth1 - 10.10.2.1 Box B eth0 - 10.10.2.2
方框A通过eth0访问互联网。 我希望Box B可以在192.168.1.0/24networking上看到,所以我可以直接从另一个Box上SSH,但Box A也必须可用。
我想在Box A上创build一个到eth0的虚拟ip,然后把所有的stream量转发到Box B
ifconfig eth0:0 192.168.1.102 iptables -t nat -A PREROUTING -i eth0:0 -j DNAT --to-destination 10.10.2.2
但似乎并不奏效。
此外,IP转发启用和框B有互联网接入
iptables -t nat -A POSTROUTING -j MASQUERADE
我会通过在192.168.1.0/24networking中的默认网关上添加一条静态路由来解决这个问题,这就是说,所有到10.10.2.0/24networking的数据包都将通过192.168.1.101节点进行路由。
然后,您需要在192.168.1.101上启用IP转发。
然后,您还需要在Box B上通过10.10.2.1添加到192.168.1.0/24路由。
这样,您可以在两个networking中使用10.10.2.x和192.168.1.x地址,并且所有stream量都将在networking之间路由。
您不能使用虚拟接口作为-i的参数。 诀窍是使用目标地址 :
iptables -t nat -A PREROUTING -d 192.168.1.102 -j DNAT --to-destination 10.10.2.2