使用远程网络上的网关到达另一个子网

使用远程网络上的网关到达另一个子网

我的设置如下:

VPN Clients     VPN Server
10.1.1.2        10.1.1.1   ---> Internet
10.1.1.3
10.1.1.4
10.1.1.5
   |
   \ 10.0.0.0/24 LAN

VPN 客户端使用 VPN 服务器作为互联网的默认网关,并且它们可以互相看到(例如,我可以从 10.1.1.2 到 10.1.1.5 进行 ssh 连接,没有任何问题)。

现在我想要完成的是从 10.1.1.2 机器到达 10.1.1.5 客户端所连接的子网。

你可能会认为:

   route add -net 10.0.0.0/24 gw 10.1.1.5 

可以解决问题,但我收到“SCIOADDR 网络无法访问”错误消息。这是为什么?如果我尝试将这台机器用作默认网关,这是可以理解的,但我只想将其用作子网的网关,顺便说一下,该子网不与其他子网重叠。

我使用 openvpn,但我怀疑它从路由角度来看很重要。

如何在没有任何代理等的情况下实现这一点?

在 10.1.1.5 上我有:

 echo 1 > /proc/sys/net/ipv4/ip_forward
 iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE

谢谢

答案1

关于错误“SCIOADDR 网络无法连接“由 提出route add -net 10.0.0.0/24 gw 10.1.1.5,发生这种情况的原因是,您声明为网关的 IP 地址(10.1.1.5)是不是可由您的本地主机 (10.1.1.2) 直接访问。请注意,两个 IP 地址 (10.1.1.5 和 10.1.1.2) 均已分配给“tun”接口,并且... 它们的处理方式与以太网接口截然不同。

要解决您的问题,第一步是指向正确的网关。对于 OpenVPN 客户端和相关的“tun”接口,要使用的网关是 tun 接口中报告的 P2P 地址。例如,使用以下情况定义的“tun”接口:

    user@client_1:~$ ifconfig tun0
    tun0      Link encap:UNSPEC  [...]
              indirizzo inet:10.11.0.14  P-t-P:10.11.0.1  Maschera:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

网关应该是10.11.0.1。

因此你route add应该(使用这样的 P2P):

route add -net 10.0.0.0/24 gw 10.11.0.1

不幸的是,这将不是解决路由问题,因为您要访问的网络(10.0.0.0/24)对于 OpenVPN 来说是完全未知的。要解决这个其他问题,您需要定义/关联到客户端 10.1.1.5 的“iroute”参数。我不会详细讨论这个问题,因为可以找到有关此问题的详细讨论另一个 SF 答案:请参考一下。

相关内容