我是一名Java开发人员,几个星期之后,我也将负责networking。 我们的一个客户端需要一个VPN连接到我已经挂载的networking(使用TP-link路由器来build立IPSEC隧道LAN到LAN)。
我们的networking:110.110.1.0/24我们的服务器110.110.1.100/24客户networking:192.168.100.0/24
但令我惊讶的连接目的是能够连接到一个特定的服务器,这是在客户端在不同的子网。
客户端服务器:192.168.1.68/32
所以它在不同的子网(不同的networking掩码ofc)…我如何实现连接? 我知道networking掩码并不代表LAN-LAN连接中的任何内容,但是由于目标位于具有不同networking掩码的不同子网中。
在我看来(我不是专家),我们应该只对服务器所在的子网进行VPN,或者把这个子网join到clinet端的VPNconfiguration中。
在我看来(我不是专家),我们应该只对服务器所在的子网进行VPN,或者把这个子网join到clinet端的VPNconfiguration中。
是。 你是对的。 你有3个选项:
A)直接与服务器的LANbuild立VPN连接(如果有直接连接到Internet的支持VPNfunction的防火墙)。
B)如果服务器的LAN没有直接连接到防火墙,或者防火墙不是服务器networking的主要网关,则将服务器的子网添加到隧道两侧的VPNconfiguration中,并在客户端的networking上执行一些路由configuration。
C)如果选项A和B不可用,请执行一些NAT-wizardry(详情如下)。
假设下面的图(你当前的configuration):
# Duke's Network # # Client's Network # [ 110.110.1.0/24 ] <----------- VPN Tunnel -----------> [ 192.168.100.0/24 ]
NAT魔法技能#1: 火球
在您的客户端networking上,从192.168.100.0/24networking(例如,192.168.100.254)中select一个可用的IP地址,并在您的客户端防火墙上创build指向服务器IP地址的一对一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
如果防火墙是服务器的网关,或者可以在服务器上或沿pathconfiguration一些路由,这将工作正常。 连接也将同时工作,这意味着您的networking或服务器可以启动彼此的连接。
如果您的客户端无法更改路由configuration,并且防火墙不是服务器的网关,但服务器仍然可以到达客户端内部networking上的防火墙,请执行以下操作:
NAT魔法,法术2: 奥术之门
在这里,您将创build一个双重NAT,一个1对1和一个多对1(又名伪装,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
这样,连接看起来会从防火墙到服务器。 当服务器响应FW时,我们将反转NAT。
请注意,通过使用此configuration,连接只能从您的networking发起 。 客户端的服务器将能够响应您的数据包,但不能启动任何连接到您的networking。
NAT-Wizardry,法术3: “奇怪的” (又名Abismal Administration Administration Nightmare)
在这里,pipe理和维护的成本将呈指数增长,具体取决于服务器需要发起连接的networking数量。
从本质上讲,有两种方法可以使这种configuration和后悔(实际上,让客户感到遗憾,因为它将在他的防火墙上执行)。
3a)将新的未使用的IP地址绑定到客户端的防火墙的LAN接口上,并创build一个1对1的NAT,指向您的networking上需要被客户端的服务器访问的IP地址。 您需要对networking上必须由客户端服务器访问的每个新IP执行此操作。
3b)创build一个PAT(端口地址转换)。 在此configuration中,可以将特定的TCP | UPD端口从一个IP地址(防火墙)映射到另一个IP地址(在您的networking上)上select的任何端口。 这将需要为您的networking上的客户端服务器必须访问的每个服务/端口执行。
TL; DR:select选项B并修复任何路由问题。