透過 VPN 連接 AWS 與 GCP

同時使用多個 cloud computing services 時,常會遇到需要將兩邊的 virtual private cloud 接在一起的使用情境。底下紀錄一下使用 VPN 將 AWS 與 GCP 的 private cloud 接在一起的設定方法。

主要動作包括

  1. 先在 GCP 上取得一個 static IP,需要填到 AWS 的 custom gateway 上
  2. 在 AWS 上建立 customer gateway,填入在 GCP 上取得的 static IP
  3. 在 AWS 上建立 virtual private gateway,並 attach 到想連接的 AWS VPC 上,設定 route propagation
  4. 在 AWS 上建立 VPN connection,並下載設定檔
  5. 在 GCP 上建立 VPN 並設定 tunnel (需要前一步下載的設定檔資料)
  6. 測試連線

 

Step by Step

1. 在 GCP 上取得一個 static IP

在 GCP 的 control panel 裡選擇 “VPC網路” -> “外部IP位址” -> “預約靜態位址”

名稱取一個好記的如 gateway-to-aws 即可,類型選區域,並在底下區域選項裡選定要連接的 VPC 所在的區域。

Step 1

按下建立後可以在以下畫面記下所配發的 IP 位址

 

2.在 AWS 上建立 customer gateway

到 AWS console 裡選擇 “VPC” -> “Customer Gateways” -> “Create Customer Gateway”,將在第一步取得的 static IP 填進來,一樣 name 填一個可以識別的即可,如”Gateway into GCP”。

Step 2-1

 

3.在 AWS 上建立 virtual private gateway

繼續到 “VPC” -> “Virtual Private Gateways” -> “Create Virtual Private Gateway”,建立一個 virtual private gateway,名字可以使用 “Gateway to GCP”,ASN 的部分用 default 的 Amazon default ASN 即可。

Step 3-1

建立好後回到 virtual private gateways 列表可以看到剛剛建起來的 virtual private gateway 是 detached 的,此時點選剛剛建立起來的 item,並在上方選單選擇 “Actions” -> “Attach to VPC”。回到列表等一下,可以看到狀態是 “attaching”,隔一下去點 refresh 後就可以看到已經 “attached” 了。

Step 3-2

接下來我們還要處理一下 route propagate,在 AWS VPC dashboard 裡點左邊的 “Route Tables”,選取要使用的 routing 並切到 Route Propagation 的 tab。

Step 3-3

點一下 edit,並將 Propagate 給 enable 起來。

 

4.在 AWS 上建立 VPN connection

一樣在 VPC 的 dashboard 點左邊的 VPN Connection,並選擇 create。

Step 4-1

在 Virtual Private Gateway 及 Customer Gateway 的部分都選擇剛剛建起來的 items,然後在 Routing Options 選擇 Static 並在底下的 Static IP Prefixes 裡面填上在 GCP 裡的 VPC 內網 IP range。至於底下的 Tunnel Options 就留空讓 AWS 自己產生吧。

Step 4-2

接下來在上圖列表選建好的 VPN,並點選 “Download Configuration”,在  Vendor 部分選擇 Generic,Platform也選 Generic,Software 選 Vendor Agnostic,點下 Download 會下載到一個 txt 檔。

 

5.在 GCP 上建立 VPN 並設定 tunnel

接下來我們要回到 GCP 上,在 Interconnect 裡選 VPN,並建立一個新的 VPN 連線。主要是區域要對應到想連接的 region,以及 IP 位址選擇在第一步建起來的 static IP。

Step 5-1

接著是底下的通道部分,要參考剛剛下載回來的 txt 檔,裡面有兩個通道的參數,照著這些參數分別建立兩個通道。

Step 5-2

其中遠端 Peer IP 位址可以在下載回來的檔案裡的 Outside IP Addresses -> Virtual Private Gateway 裡找到。IKE版本如同在 txt 檔裡面指定的,共用密鑰也一樣。底下的導向選項則選擇靜態,並在遠端網路 IP 範圍填上在 AWS VPC 裡的內網 IP。

 

6.測試連線

這時候在 GCP dashboard 裡等一下,應該可以看到 VPN connection 裡兩個遠端位址前的 ICON 都是綠色了。

Step 6-1

在兩邊的機器裡,互相用彼此的 IP 做 ping 或是 ssh,應該都可以通囉。

 

其他:

  1. 在參考文件裡還有做開 firewall 的動作,但實測上並不需要。
  2. 歡迎在 comment 給予建議。

 

參考資料:

  1. Connect GCE and AWS via VPN in 10 steps
  2. [IPSec-VPN] クラウド間(GCP⇔AWS)通信
分享這篇文章

1 則留言

  1. 最近正好在找一些可以穩定使用於Singapore的vpn軟體
    路過此地看到筆者的文章
    雖然目前運用不到XD 不過還是留個腳印 感謝分享!!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *