我是 OpenVPN 的新手 - 我只知道如何在两台计算机之间建立基本的隧道,但现在我被分配了一项更艰巨的任务。
我需要设置一个特殊的VPN:
我有主机 A、B、C 和 D,它们都是 Windows XP SP 1/2/3,并且安装了 OpenVPN。我需要创建这样的隧道:
A==B==C==D
例如,A 和 B 之间的隧道、B 和 C 之间的隧道等。此设置的主要目的是让访问 A 的用户通过所有隧道从 D “出去”:
用户 -> A=->=B=->=C=->=D -> 互联网
问题:
如何设置这样的隧道以便允许这种类型的流量路由?
VPN服务器不得泄露内部网络结构。
我将非常感谢您的帮助。提前谢谢您。
答案1
有关如何设置更复杂路由的 VPN 的示例,请访问OpenVPN 路由。您所要求的在概念上并不困难,您只需要将路由层堆叠在一起并正确获取所有细节。
答案2
好的,让我们尝试进一步分解一下。
您说过您已经知道如何在一台计算机和另一台计算机之间创建 VPN 连接。那么我们就从这里开始吧。
- 在 A <==> B 之间建立 VPN 连接
- 在 B <==> C 之间建立 VPN 连接
- 在 C <==> D 之间建立 VPN 连接
一旦完成,剩下要做的就是设置正确的路线。
我假设您不希望所有流量都通过 VPN 隧道。换句话说,您希望每台机器有两种出路,一种是常规“互联网”流量,另一种是“VPN”流量,对吗?好吧,我们需要在每个主机上创建一些路由。例如,如果 A 是 192.168.1.1/24,B 是 192.168.2.1/24,C 是 192.168.3.1/24,D 是 192.168.4.1/24,那么每个系统都必须知道他们需要将流量转发到哪个端点。
因此,如果您在 A 上尝试到达 D,则需要引导所有流量通过 B。因此,您在 Linux 系统上的路由命令可能如下所示:
路由添加 -net 192.168.3.1 掩码 255.255.255.0 网关 192.168.2.1 (C 的流量通过 B)
路由添加 -net 192.168.4.1 掩码 255.255.255.0 网关 192.168.2.1 (D 的流量经过 B)
这只是一个粗略的细分,但每个系统都会有路由告诉它每个子网的流量需要转发到链中的下一个主机。
这只是其中的一个要点,如果我尝试进一步分解,这篇文章将永远无法结束。