通过 VPN 连接

通过 VPN 连接

我是一名 Java 开发人员,接下来的几周内,我还将负责网络。我们的一个客户想要一个 VPN 连接到他的网络,我已经安装了该 VPN(使用 TP-link 路由器建立 LAN-to-LAN 的 IPSEC 隧道)。

我们的网络:110.110.1.0/24 我们的服务器 110.110.1.100/24 客户端的网络:192.168.100.0/24

但令我惊讶的是,连接的目的是能够连接到客户端位于不同子网中的特定服务器。

客户端服务器:192.168.1.68/32

所以它在不同的子网中(当然不同的网络掩码)...我该如何实现连接?我知道网络掩码在 LAN 到 LAN 连接中没有任何意义,但由于目标位于具有不同网络掩码的不同子网中。

在我看来(我不是专家),我们应该只将 VPN 连接到服务器所在的子网,或者将该子网添加到客户端的 VPN 配置中。

答案1

在我看来(我不是专家),我们应该只将 VPN 连接到服务器所在的子网,或者将该子网添加到客户端的 VPN 配置中。

是的。你说得对。你有 3 个选择:

  • A) 直接与服务器的 LAN 创建 VPN 连接(如果那里有支持 VPN 的防火墙,并且直接连接到互联网)。

  • B) 如果服务器的 LAN 未直接连接到防火墙或防火墙不是服务器网络的主网关,则将服务器的子网添加到隧道两侧的 VPN 配置中,并执行一些路由配置(在客户端的网络上)。

  • C) 如果选项 A 和 B 不可用,请执行一些 NAT 向导(详情如下)。

假设下图(您当前的配置):

# Duke's Network #                                      # Client's Network #
[ 110.110.1.0/24 ] <----------- VPN Tunnel -----------> [ 192.168.100.0/24 ]

NAT魔法#1:火球

在客户端的网络上,从 192.168.100.0/24 网络 (例如 192.168.100.254) 中选择一个可用的 IP 地址,并在客户端防火墙上创建指向服务器 IP 地址的 1 对 1 DNAT 和 SNAT 规则。

# Connection from Duke's Network to server on client's network
  110.110.1.0/24 ------> 192.168.100.254 [DNAT] ------> 192.168.1.68
# Response from the server
  192.168.1.68 --------> [SNAT] 192.168.100.254 ------> 110.110.1.0/24

如果防火墙是服务器的网关,或者可以在服务器上或路径上配置一些路由,那么这种方法是可行的。连接也将双向进行,这意味着您的网络或服务器可以发起彼此之间的连接。

如果您的客户端无法更改路由配置,并且防火墙不是服务器的网关,但服务器仍然可以访问客户端内部网络上的防火墙,请执行以下操作:

NAT魔法,法术#2:神秘之门

在这里,您将创建一个双重 NAT、一对一和多对一(在 iptables 术语中也称为伪装):

### REQUEST ###
# Duke's network perspective (notice the 1-to-1 DNAT from Spell #1)
[Duke FW OUT ] 110.110.1.0/24 ---- VPN ----> 192.168.100.254 [ Client FW IN ]

# The packet is inside de Client's FW, here we do another NAT (many-to-1)
# and change de source addr of your network to the internal IP addr of the FW
[ Firewall OUT ] 192.168.100.1 (FW LAN IP) -----> 192.168.1.68

这样,连接看起来就像是从防火墙到服务器的。当服务器响应防火墙时,我们将反转 NAT。

请注意,通过使用此配置,连接只能发起来自您的网络。客户端的服务器将能够响应您的数据包,但无法发起与您的网络的任何连接。

NAT-巫术,法术#3:“怪异”(又名糟糕的管理噩梦)

在这里,管理和维护的成本将成倍增加,具体取决于您的网络有多少台主机服务器需要发起连接

本质上,有两种方法可以进行这种配置并让你在余生中后悔(实际上是让客户后悔,因为它将在他的防火墙上执行)。

  • 3a) 将一个新的、未使用的 IP 地址绑定到客户端防火墙的 LAN 接口,并创建指向网络上需要由客户端服务器访问的 IP 地址的 1 对 1 NAT。您需要对网络上每个需要由客户端服务器访问的新 IP 执行此操作。

  • 3b) 创建 PAT(端口地址转换)。在此配置中,您可以将特定 TCP|UPD 端口从一个 IP 地址(防火墙)映射到另一个 IP 地址(网络上)上您选择的任何端口。这需要针对网络上客户端服务器必须访问的每个服务/端口执行。

总结:选择选项 B 并修复所有路由问题。

相关内容