级联vpn路由(openvpn + shrewsoft)

我的移动设备和通过我的debian服务器上的openVPN服务器创build的局域网之间有个人VPN。

假设我的LAN类192.168.1.0/24eth0接口上,我的VPN在tun0接口上是一个标准的10.0.8.0/24

然后在我的服务器上,我有另一个VPN,我的服务器是一个build立在Shrewsoft VPN上的客户端。

假设这个VPN允许我通过tap0接口访问10.50.0.0/24子网

我想要做的就是从我的openvpn客户端到达主机10.50.0.15

我只能访问服务器+ openVPN服务器configuration,我现在有点困惑。

我试图达到的结果是:

  1. 1:1 NAT主机10.50.0.15192.168.1.15上

  2. 尝试将服务器上的stream量路由到10.50.0.0/24,并通过shrewsoft gw从10.0.8.0/24路由。

我的想法很短,我将不胜感激任何build议!

谢谢。 一个

**********************编辑**************************

尝试一切build议后,没有好消息,即使使用干净的iptablesconfiguration,我无法正确路由stream量。

我用tshark看到的是数据包被正确路由到10.50.0.15,但响应出现在TAP0 IP(192.168.11.150)上,并且没有被正确转发到openvpn LAN。

有什么build议么?

  • 确保你的iptables (表格filter ,链FORWARD )为你的tun0接口启用了IP转发。
  • 确保在内核中启用了IP转发( /sbin/sysctl -a | grep forward – 请从那里开始工作)。
  • 确保你的OpenVPN服务器configuration中有push指令,告诉它的客户10.50.0.0/24networking可以通过10.0.8.1访问 – 也就是OpenVPN服务器的IP; 看“路由的局域网” 。
  • 您可能还需要在OpenVPN的configuration中使用适当的iroute指令; 请参阅上面的指南。

推理:

  • 一个IP客户端 – 让我们考虑你的移动客户端 – 使用它的本地路由表来决定在哪里发送一个特定的目标IP地址的数据包。 任何客户端都有一个或多个直接连接的networking和零个或多个间接连接的networking。

    间接连接的networking可以通过所谓的“网关”到达,网关的任务是转发数据包。 显然,所有的网关必须通过直接或间接连接的networking才能到达。

    要考虑最简单的情况,局域网上的一台客户机提供一个到局域网的Internet连接的单个服务器,其路由表中通常有两个条目:

    • 其局域网的地址 – 与规范直接纠正。
    • 该LAN上的网关服务器的IP地址,标记为所谓的“默认”路由条目。

    这种设置使得客户端通过其连接到局域网的networking接口直接发送到该局域网中主机的所有数据包,并将所有其他stream量发送到该网关服务器。

  • 对于你的客户, 10.0.8/24是一个直接连接的networking – 一旦OpenVPN客户端成功连接到服务器。 现在,要通过OpenVPN的隧道达到10.50.0.0/24 ,客户端必须在路由表中有一个新的规则,以知道该networking可以通过某个网关(这是您的OpenVPN服务器)来使用。

  • 因此,您首先要在服务器上设置正确的路由和IP转发,然后确保客户端知道去往10.50.0.0/24上主机的数据包的发送10.50.0.0/24