Networking

當客戶端已保留所有可能的內部 IP 地址時,如何使用 Google Cloud VPN 連接到客戶端的網路?

  • September 26, 2018

目標

我想由第 3 方使用 API。這個第 3 方要求我與他們的網路建立 VPN 連接。因此,他們需要一個遠端對等 IP 地址來建立 VPN,然後是他們可以列入白名單的內部 IP 地址。

我的應用程序託管在 Google Cloud Platform 上,因此我想使用 Google Cloud VPN 設置 VPN 隧道和網關。我打算使用 GCE VM 通過 VPN 查詢第 3 方 API。

嘗試解決

我使用 Cloud VPN 為第三方設置了一個 VPN 網關和基於路由的隧道(只有一條路由)。GCP 控制台確認連接已成功建立。

我還設置了一個 GCE VM,並為其分配了一個靜態內部 IP 地址和一個靜態外部 IP 地址。

第 3 方將分配給我的 VM 的靜態外部 IP 地址列入白名單。

問題

我的解決方案不起作用。雖然 VPN 連接成功,但我無法從我的 GCE 虛擬機 ping 第三方提供的內部 IP 地址。

問題是第 3 方聲稱它在自己的網路中保留了所有可能的內部 IP 地址:172.、192.、10.*,這看起來很奇怪……所以,他們不可能將我的 VM 的內部 IP 列入白名單,這與其內部地址範圍發生衝突。相反,他們將分配給我的虛擬機的外部 IP 地址列入白名單。

這種方法不起作用,因為我無法從我的 VM ping 他們的內部 IP。

問題

我們如何解決這個問題?我認為問題在於,當我使用我的虛擬機通過 VPN 查詢他們的 API 時,流量來自內部 IP(但他們只將我的外部 IP 列入白名單)。那麼在使用 Cloud VPN 時,有沒有辦法強制流量來自我的虛擬機的外部 IP?

我研究了在 VM 實例上設置自己的 VPN,使用以下說明:將實例設置為 VPN 網關。但是,似乎即使在這裡我也遇到了內部 IP 地址範圍衝突的相同問題。

任何幫助將不勝感激!

根據 GCP 文件,Cloud VPN 可用於VPC 網路舊網路。對於 VPC,建議使用自定義模式,這樣您就可以完全控製網路中子網使用的 IP 地址範圍。據我了解,Cloud VPN 無法使用外部 IP。

正如您所提到的,無法使用 172.、192.、10.X IP 範圍,您能否嘗試使用其他 IP 範圍,這是一個有效的RFC 1918 CIDR 塊。

10.0.0.0 - 10.255.255.255(10/8 前綴)

172.16.0.0 - 172.31.255.255(172.16/12 前綴)

192.168.0.0 - 192.168.255.255(192.168/16 前綴)

希望並非所有這些 CIDR 塊都已保留。在 GCP 中使用 VM 實例作為 VPN 網關將產生與從同一 IP 塊獲取 IP 相同的問題。您可以做的是請求第 3 方釋放一小部分 IP 塊並使用該 IP 塊創建自定義模式網路,並在此 VPN 場景中使用它。

但是,如果您想使用 Cloud VPN,則必須使用這些 CIDR 塊之一。

為此,如果您願意,您可以創建一個使用 Cloud VPN 的外部 IP 的功能請求,請按照此功能請求連結進行操作。

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