The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

當網段中有多個閘道時,建立 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

相關連結