如何為 IPSec VPN 設定路由,其中​​ VPN 端點本身必須能夠聯繫遠端網路

如何為 IPSec VPN 設定路由,其中​​ VPN 端點本身必須能夠聯繫遠端網路

我的情況與問題相同IPSec VPN:流量未正確路由(但是我似乎無法直接聯繫該用戶,也無法對該問題發表評論 - 並且沒有人回答過)。

我也有一台 Windows 2008 R2 伺服器,IPSec VPN 直接終止於該伺服器。

伺服器有一個網路接口,該接口上有一個公共 IP 位址(例如,我們將其稱為 203.10.10.10)。

我希望遠端專用網路 (10.16.0.0/255.254.0.0) 上的電腦能夠連接到 IPSec 隧道末端的專用 IP 位址上的 Windows 伺服器該伺服器(不在伺服器前面的路由器處)。

同樣重要的是(這可能是癥結所在)我需要伺服器能夠啟動到遠端(10.16.0.0)網路上的裝置的 TCP 連線(例如透過 HTTP 下載映像)。

它看起來是這樣的:

網路圖

我為伺服器選擇的專用 IP 是 192.168.70.1/255.255.255.0,建立到遠端專用網路隧道的 IPSec 過濾器適用於來源/目標 192.168.70.0/24 和 10.16.0.0/15。

如果我從 Windows 伺服器 ping 遠端網路上的位址,並設定了來源參數,那麼我可以建立隧道並且 ping 將起作用(即ping -S 192.168.70.1 10.16.0.1)。

但是,發送到 10.16.xx 位址的任何「正常」流量(包括來源位址未強制為 192.168.70.1 的 ping)都會透過預設路由愉快地傳送到 Internet,並且不會啟動或進入隧道。

問題

這樣的設定可能嗎?或者是否不可能讓 VPN 端點本身透過隧道發送源自其私有位址之一的資料? (VPN 端點是否始終需要位於透過隧道發送資料的裝置的單獨路由器上?)

如何設定 Windows Server 以確保與 10.16.0.0 網路的所有通訊都源自於其私人 IP 位址。

私人地址沒有為192.168.70.1 - 如有必要,可以選擇另一個子網(我這樣說是因為我讀過,在所有其他條件相同的情況下,Windows vista 及更高版本將使用與目標最接近的源IP -因此也許使用10.XXX ip 作為伺服器的私有位址會有幫助嗎?

然而,我無法輕鬆進行測試,因為該 VPN 隧道的另一端不在我的控制之下 - 如果我選擇更改 192.168.70.1 位址,我需要讓另一端的網路工程師進行設定更改。

額外資訊:到目前為止我已經嘗試過的

我嘗試了兩種設定私有 IP 位址的方法(在 Windows 伺服器上),試圖讓封包正確路由滿足建立隧道的 IPSec 規則。

主介面私有位址

將 192.168.70.1 位址新增至主網路介面(除了公用 IP 之外)後,似乎不可能定義任何到 10.16.0.0 的路由,從而導致 Windows 使用 192.168.70.1 作為來源位址。任何發送到預設閘道的流量最終都會以公用 IP 作為來源。

如果 Windows 上有一些我不知道的神奇可用路由,我很想聽聽!然而,命令:

route add 10.16.0.0 mask 255.254.0.0 192.168.70.1

將導致如下新增路由(它在同一介面上選取公共 IP 用作來源/連結網關)。

10.16.0.0 255.254.0.0 On-link 203.10.10.10 11 10.17.255.255 255.255.255.255 On-link 203.10.10.10 266

第二個虛擬適配器上的私人位址

我嘗試為伺服器新增虛擬網路介面卡 - 首先使用 Microsoft Loopback Adapter 裝置。 Loopback 裝置在網路連線清單中顯示為「媒體已斷線」。看到虛擬 NIC 沒有連接,Windows 就會退回到透過預設路由(使用公共來源位址)發送流量。

然後我嘗試使用不同的虛擬設備驅動程式 - OpenVPN 附帶的 TAP 虛擬適配器驅動程式。此驅動程式允許您強制其進入“始終連接”狀態。然而,似乎在第一次 ping 之後,Windows 再次發現該適配器上沒有連接,並返回透過主(公共)介面上的預設閘道發送流量。

所以,就是這樣......有什麼想法嗎?

答案1

當嘗試執行此操作時,您有點與來源 IP 位址選擇的自然趨勢作鬥爭。那為什麼不稍微改變一下你的設計,讓它變得更自然呢?

問題在於,來源 IP 位址選擇是在決定將流量推入隧道之前完成的。這意味著它將選擇使用「公共」IP 位址作為透過隧道發起的任何流量的來源 IP。

在某些作業系統上,您可以透過路由做一些有趣的事情,在路由上為主機發起的流量指定來源位址。但我在 Windows 上找不到類似的東西。

但是,考慮到您的網路設計,我認為解決此問題的最簡單方法是停止與伺服器端的 RFC1918 位址進行鬥爭,直接在您的公用 IP 203.10.10.10 和私有 IP 之間建立一條帶有 SA 的隧道位址10.16.0.0/15。

然後,客戶端會將伺服器位址設定為 203.10.10.10 而不是 192.168.70.1,其他所有內容有望神奇地就位。這樣,來源 IP 選擇就已經選擇了一個合適的可用位址。

您可以在過渡期間保留舊的 ipsec 策略,以便您的用戶端可以使用舊的 RFC1918 位址或新的公用位址來定址伺服器,同時您的 DNS 快取過期(假設您為此使用 DNS -如果沒有,這是一個好主意)。過渡期過後,地址 192.168.70.1 不再具有任何功能。

另一種選擇是在從伺服器啟動連接時明確選擇來源 IP 位址 - 如果是您自己編寫的自訂軟體,這可能是可能的,但這有點麻煩。

最後,環回適配器的想法很有希望,但奇怪的是它顯示為「媒體斷開連接」。這聽起來像是環回適配器本身的問題,而不是這個想法的問題。

相關內容