﻿# 當網段中有多個閘道時，建立 LAN-to-LAN VPN 的注意事項

在單純的網路環境下，設定 LAN-to-LAN VPN 並不是什麼難事，當你的兩個網段都各只有一個預設閘道時真的是很容易設定，照著設備的說明手冊應該就能設定成功，但我前幾天在設定 LAN-to-LAN VPN 時卻遇到一個棘手的問題，在一個網段內有些電腦能夠與另一個網段內的電腦互通，有些電腦卻不能連線，還有些只有單向的連線，研究了好一段時間後才釐清在細節中潛藏的魔鬼。

以下是我的網路環境，狀況有點複雜，要認真看才能釐清真相：

\-----------------------------------------------------------

LAN1 – VPN Server ( WAN Interface )

-   網路位址：203.64.18.221
-   網路閘道：**203.64.18.222**
-   網路遮罩：255.255.255.224

LAN1 – VPN Server ( LAN Interface )

-   網路位址：172.16.124.42
-   網路閘道：n/a
-   網路遮罩：255.255.255.0

LAN1 – PC ( WAN Interface )

-   網路位址：203.64.18.199
-   網路閘道：**203.64.18.222**    ← 這就是本次的魔鬼！這是 LAN1 – PC 的預設閘道。
-   網路遮罩：255.255.255.224

LAN1 – PC ( LAN Interface )

-   網路位址：172.16.124.51
-   網路閘道：n/a
-   網路遮罩：255.255.255.0

\-----------------------------------------------------------

LAN2 – VPN Client ( WAN Interface )

-   網路位址：59.12.34.110
-   網路閘道：59.12.34.254
-   網路遮罩 : 255.255.255.0

LAN2 – VPN Client ( LAN Interface )

-   網路位址：192.168.100.1
-   網路閘道：n/a
-   網路遮罩 : 255.255.255.0

LAN2 – PC ( 只有一個 LAN Interface )

-   網路位址：192.168.100.83
-   網路閘道：192.168.100.1
-   網路遮罩 : 255.255.255.0

\-----------------------------------------------------------

**設定 LAN1 的 VPN 撥入連線**

-   基本設定

-   允許的撥入模式: IPSec通道 ( 註: LAN-to-LAN VPN 可以用 IPSec Tunnel 的方式建立 )

-   撥入設定

-   指定 遠端 VPN 閘道
-   對方 VPN 伺服器 IP : 59.12.34.110
-   IKE 驗證方式 :  預先共用金鑰 (Preshared Key)
-   輸入預先共用金鑰!
-   IPSec 安全防護方式

-   中級 (AH)  -- 這個可以不用勾選
-   高級 (ESP) -- 請勾選這個比較安全

-   通常內建三種加密方式 : DES , 3DES , AES

-   TCP/IP 網路設定

-   遠端網路 IP : 192.168.100.0 ( 遠端的 LAN 網段 )
-   遠端網路遮罩 : 255.255.255.0

**設定 LAN2 的 VPN 撥出連線**

-   撥出設定

-   IKE 驗證方式 :  預先共用金鑰 (Preshared Key)
-   輸入預先共用金鑰!
-   IPSec 安全防護方式: 選 ESP ( 高級 ) -- **註**: 有些 VPN 設備無法讓你選取加密方式
-   NAT Traversal : Disabled

-   本地閘道

-   Network IP / Subnet Mask :  192.168.100.0/24 ( 本地端的 LAN 網段 )

-   遠端閘道

-   Security Gateway : 203.64.18.221 ( 遠端的 WAN IP , LAN2 VPN 會連到此 IP 位址 )
-   遠端網路 IP : 172.16.124.0 ( 遠端的 LAN 網段 )
-   遠端網路遮罩 : 255.255.255.0

\-----------------------------------------------------------

註：以上設定會隨不同的 VPN 設備，專有名詞的命名也會有所不同，不過觀念都是一樣的。

設定完成後你會發現 LAN1 – PC 要連到 LAN2 – PC 沒問題，但是 LAN2 – PC 卻無法連到 LAN1 – PC，所有封包都只能連接到 VPN Gateway 而已，封包都無法抵達遠端的 LAN1 – PC 電腦，這是因為 LAN2 – PC 發送 TCP/IP 封包到 LAN1 – PC 時出了網路問題。

LAN2 – PC 連到 LAN1 – PC 的封包傳送步驟描述如下：

-   LAN2 – PC ( 192.168.100.83 ) 封包先傳到預設閘道 ( 192.168.100.1 )
-   由於預設閘道知道 172.16.124.0/24 這個目標 (因為已經建立VPN通道)，所以能把封包傳過去
-   封包傳達至 VPN 的遠端閘道 ( 172.16.124.42 )
-   遠端閘道將封包轉送給 LAN1 – PC ( 172.16.124.51 )
-   由於 TCP 封包需要 handshaking，所以 LAN1 – PC 必須回應要求給 192.168.100.83
-   但因為本機路由並沒有定義 192.168.100.83 這個網路目標，因此封包會走本機的預設閘道出去 ( 203.64.18.222 )
-   由於 203.64.18.222 並無法將封包傳達 192.168.100.0/24 網段，因而發生 TCP handshaking 失敗，自然 TCP 連線就無法被建立！

所以為了能讓 LAN2 – PC ( 192.168.100.0/24 ) 正常的與 LAN1 – PC ( 172.16.124.51 ) 互通網路，只要在 LAN1 – PC 新增以下路由就能夠讓從 LAN1 – PC 回到 192.168.100.0/24 的封包走向 172.16.124.42 這個閘道，網路也就能通了：

```
route add 192.168.100.0 mask 255.255.255.0 172.16.124.42
```

魔鬼總在細節裡，狂賀又再次驅魔成功！哈哈~ XD

**相關連結**

-   [技術問答 - 虛擬私有網路 (VPN) 設定](https://www.draytek.com.tw/support/knowledge-base/vpn/)
