我在Debian的站点上设置了站点到站点的VPN。 它工作正常,但是因为子网重叠NAT在VPN(1.1.1.1/32&2.2.2.2/32)的两端使用,
在这两个子网上,我都有要共享的服务,所以我已经将iptables转发给了我的内部服务器,这很好。
我也能够从VPN的两端接入这些服务 – 比如1.1.1.1/32和2.2.2.2/32。
现在我有几个连接到2.2.2.2/32框的其他子网:
10.0.3.0/24 10.0.4.0/24 ....
(完整路由表附)
对于这些networking中的计算机,我需要到达一个服务 – 在1.1.1.1端口1111上。所以我想,我将再次使用iptables,并将所有tcpstream量转发到1.1.1.1,并更换源代码。 所以我这样做了:
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -d 1.1.1.1 -j SNAT -to-source 2.2.2.2 iptables -t nat -A PREROUTING -p tcp -d 2.2.2.2 --dport 1111 -j DNAT - 到目的地1.1.1.1
但是现在,当我尝试连接到该服务时,出现“无路由到主机”错误:
telnet 10.0.0.1 1111 尝试10.0.0.1 ... telnet:无法连接到远程主机:没有路由到主机
所以我有点困惑。 我认为这个问题可能是在Debian框中的路由:
2.2.2.2通过1.1.1.1 dev eth0 src 1.1.1.1
但是,我不太清楚为什么它不起作用?
从Debian框路由:
10.0.0.0/27 dev eth1 proto内核作用域链接src 10.0.0.1 10.0.2.0/24通过10.0.0.2 dev eth1 10.0.3.0/24通过10.0.0.3 dev eth1 10.0.4.0/24通过10.0.0.4 dev eth1 10.0.5.0/24通过10.0.0.5 dev eth1 10.0.6.0/24通过10.0.0.6 dev eth1 10.0.7.0/24通过10.0.0.7 dev eth1 1.1.1.1通过2.2.2.2 dev eth0 src 2.2.2.2
任何想法可能是错的?
你提到一些子网重叠? 如果您位于VPN的另一端,尝试使用相同的子网访问VPN的另一端,则工作站甚至不会将stream量发送到路由器。 您需要在VPN的每一端有不同的子网,以确保您的工作站将stream量发送到路由器。