例如,我使用 Cisco Any Connect 进行连接,然后使用另一个 VPN 客户端(例如 HotSpot Shield 或 proXPN)通过另一个隧道进行连接。
我假设您在一台计算机上使用两个客户端,因此您有两个并行隧道,而不是一个在另一个内部(如果您从计算机连接到 Server1,然后启动VPN2 以连接 Server1 和 Server2 )。
在第一个(并行)场景中,每个 VPN 客户端将创建自己的虚拟接口,具有自己的地址、网络掩码、远程网关和相关路由。
通过隧道发送的任何数据都将通过该隧道而不是其他隧道加密,因此问题变成:您的计算机如何确定哪些数据通过哪个隧道发送?
这是通过客户端上的路由规则完成的。例如,您可能会在 VPN1 上收到地址 192.168.42.17/24,在 VPN2 上收到地址 192.168.77.13/24。如果您尝试与主机 .42.33 链接,您将通过 VPN1,而 VPN2 对此一无所知。
现在,192.168.42.0/24 可能只是您和服务器之间使用的专用网络,即由 Server1 分配给其所有 VPN 客户端的专用网络;Server1 服务的真实网络可能是 10.20.30.0/24,因此 Server1也会添加到 10.20.30.0/24 到 192.168.42.1 的路由;然后,当您尝试连接到 10.20.30.137 时,该连接将流经 VPN1,被加密,而 VPN2 甚至不知道这正在发生(为什么要这样做?)。
可能出现的问题:如果VPN1 和 VPN2都为同一子网广播了一条不对应相同物理主机的路由,会发生什么情况?例如,您有两个配置完全相同的办公室,ServerAtOffice1 的地址为 10.20.30.137,而 ServerAtOffice2 的地址为 10.20.30.195。由于这两个网络从不相互交谈,因此根本不会发生冲突。
直到你启动 VPN1,它告诉 10.20.30.0 通过 VPN1,然后也启动 VPN2,它告诉你,不,10.20.30.0 通过 VPN2 而没有其他人。
在这种情况下会发生什么取决于 VPN 客户端。一个聪明的客户端会告诉你“嘿,我正要路由 10.20.30.0 但是,你知道吗?这条路由已经到了其他地方,也许我可以通知我的系统管理员,以防万一一些活泼的东西”。
或者你可能有两个愚蠢的客户端,最后一个覆盖对方的配置请求是为了获利。
或者可能会发生更奇怪的事情,连接可能会开始工作,然后在几个数据包后混乱地死掉。
最后一种可能性可能是两个客户端都希望通过自己设置默认路由 - 一条用于您不知道的地址。
然后,当连接到 Server1 时,您的所有 Internet 导航都可以通过 Server1 加密。然后你也启动了 VPN2,“默认”导航通过 VPN2 路由。现在,您所有关于客户 #1 的 Google 查询都通过客户 #2 的网络、防火墙、数据包分析器等明确路由;这可能会带来无穷无尽的麻烦,这取决于您的角色和两个客户的友好条款。
调整
我怎么能做其他版本,而不是两个客户端并行?如果我在运行 PPTP VPN 服务器的路由器 ALPHA 上运行 DD-WRT,
您从客户端连接到的人CHARLIE
,
我可以让它连接到 VPN 服务器 BRAVO 吗?这是链接隧道吗?无论如何,最终服务器会看到我的流量来自中间的路由器,对吗?——拉斯洛
我们在这里可以有两种情况(我已经为你的机器添加了名称)。
在第一个场景中,ALPHA 本身也是服务器 BRAVO 的客户端 DELTA。在这种情况下,来自 CHARLIE 的数据包通常被服务器 ALPHA伪装,因此 BRAVO 服务的任何客户端都将数据包视为来自 DELTA。如果 BRAVO 的客户与 ALPHA 的客户有相同的方案,这可能很难或不可能做到,因为在这种情况下,您可能对谁拥有地址 192.168.112.17 有歧义;是 ALPHA 的第 17 位客户还是 BRAVO 的第 17 位客户?
在第二种情况下,ALPHA 只是路由,因此您现在可以通过 ALPHA 的 VPN 使用 BRAVO。因此,您在第一个 VPN 隧道中打开第二个 VPN 隧道,并由 BRAVO分配第二个 IP 地址。您现在同时是服务器 ALPHA 的客户端 CHARLIE和(ALPHA 不知道的)服务器 BRAVO 的客户端 DELTA。
BRAVO 的客户会将您视为 DELTA,而 BRAVO 当然会知道您是 ALPHA 的客户 CHARLIE。
如果地址和它们的路由冲突(例如,与 BRAVO 的连接依赖于默认路由,但 BRAVO 本身在 connect 上安装自己的默认路由,用 ALPHA 替换),您可能会再次遇到麻烦。
此外(即使现在这已变得无关紧要),在第二种情况下,ALPHA 上的负载较低,而您的 CPU 上的负载相应地较高(所有发送到 BRAVO 网络的数据包都由 BRAVO-Driver 加密,然后传递给 ALPHA-Driver并重新加密,最后被传递给 ADSL-Driver 并在途中发送)。