Networking

通過 VPN 連接

  • May 26, 2017

我是一名 Java 開發人員,我將在幾週內負責網路。我們的一個客戶想要一個 VPN 連接到我已經安裝的他的網路(使用 TP-link 路由器來建立 IPSEC 隧道 LAN 到 LAN)。

我們的網路:110.110.1.0/24 我們的伺服器 110.110.1.100/24 客戶的網路:192.168.100.0/24

但令我驚訝的是,連接目的是能夠連接到位於客戶端不同子網中的特定伺服器。

客戶伺服器:192.168.1.68/32

所以它在不同的子網中(不同的網路遮罩)……我怎樣才能實現連接?我知道網路遮罩在 LAN 到 LAN 連接中沒有任何意義,但因為目標位於具有不同網路遮罩的不同子網中。

在我看來(我不是專家),我們應該只對伺服器所在的子網進行 VPN,或者將此子網添加到客戶端的 VPN 配置中。

在我看來(我不是專家),我們應該只對伺服器所在的子網進行 VPN,或者將此子網添加到客戶端的 VPN 配置中。

是的。你是對的。您有 3 個選項:

  • A) 直接與伺服器的 LAN 建立 VPN 連接(如果那裡有直接連接到 Internet 的支持 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-wizardry Spell #1:火球

在您客戶端的網路上,從 192.168.100.0/24 網路中選擇一個可用的 IP 地址(例如,192.168.100.254),並在您的客戶端防火牆上創建指向伺服器 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

如果防火牆是伺服器的網關,或者可以在伺服器上或沿路徑配置一些路由,這將正常工作。連接也可以雙向工作,這意味著您的網路或伺服器可以啟動彼此的連接。

如果您的客戶端無法更改路由配置,並且防火牆不是伺服器的網關,但伺服器仍然可以訪問客戶端內部網路上的防火牆,請執行以下操作:

NAT-wizardry, Spell #2: The Arcane Gate

在這裡,您將創建一個雙 NAT,一個 1 對 1 和一個多對 1(又名 masquerade,在 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。

請注意,通過使用此配置,只能從您的網路啟動連接。客戶端的伺服器將能夠響應您的數據包,但無法啟動與您的網路的任何連接。

NAT-Wizardry, Spell #3: The “Weird” (aka The Abismal Administration Nightmare)

在這裡,管理和維護的成本將成倍增加,具體取決於伺服器需要多少個網路主機來發起連接

本質上,有兩種方法可以進行此配置並在您餘下的日子里後悔(實際上,讓客戶後悔,因為它將在他的防火牆上執行)。

  • 3a) 將一個新的、未使用的 IP 地址綁定到客戶端防火牆的 LAN 介面,並創建一個 1 對 1 NAT 指向您的網路上需要客戶端伺服器訪問的 IP 地址。您需要對網路上必須由客戶端伺服器訪問的每個新 IP 執行此操作。
  • 3b) 創建 PAT(埠地址轉換)。在此配置中,您可以將特定 TCP|UPD 埠從一個 IP 地址(防火牆)映射到另一個 IP 地址(在您的網路上)上您選擇的任何埠。這將需要為您網路上的客戶端伺服器必須訪問的每個服務/埠執行。

**TL;DR:**選擇選項 B 並修復任何路由問題。

引用自:https://serverfault.com/questions/852436