同時使用多個 cloud computing services 時,常會遇到需要將兩邊的 virtual private cloud 接在一起的使用情境。底下紀錄一下使用 VPN 將 AWS 與 GCP 的 private cloud 接在一起的設定方法。
主要動作包括
- 先在 GCP 上取得一個 static IP,需要填到 AWS 的 custom gateway 上
- 在 AWS 上建立 customer gateway,填入在 GCP 上取得的 static IP
- 在 AWS 上建立 virtual private gateway,並 attach 到想連接的 AWS VPC 上,設定 route propagation
- 在 AWS 上建立 VPN connection,並下載設定檔
- 在 GCP 上建立 VPN 並設定 tunnel (需要前一步下載的設定檔資料)
- 測試連線
Step by Step
1. 在 GCP 上取得一個 static IP
在 GCP 的 control panel 裡選擇 “VPC網路” -> “外部IP位址” -> “預約靜態位址”
名稱取一個好記的如 gateway-to-aws 即可,類型選區域,並在底下區域選項裡選定要連接的 VPC 所在的區域。
按下建立後可以在以下畫面記下所配發的 IP 位址
2.在 AWS 上建立 customer gateway
到 AWS console 裡選擇 “VPC” -> “Customer Gateways” -> “Create Customer Gateway”,將在第一步取得的 static IP 填進來,一樣 name 填一個可以識別的即可,如”Gateway into GCP”。
3.在 AWS 上建立 virtual private gateway
繼續到 “VPC” -> “Virtual Private Gateways” -> “Create Virtual Private Gateway”,建立一個 virtual private gateway,名字可以使用 “Gateway to GCP”,ASN 的部分用 default 的 Amazon default ASN 即可。
建立好後回到 virtual private gateways 列表可以看到剛剛建起來的 virtual private gateway 是 detached 的,此時點選剛剛建立起來的 item,並在上方選單選擇 “Actions” -> “Attach to VPC”。回到列表等一下,可以看到狀態是 “attaching”,隔一下去點 refresh 後就可以看到已經 “attached” 了。
接下來我們還要處理一下 route propagate,在 AWS VPC dashboard 裡點左邊的 “Route Tables”,選取要使用的 routing 並切到 Route Propagation 的 tab。
點一下 edit,並將 Propagate 給 enable 起來。
4.在 AWS 上建立 VPN connection
一樣在 VPC 的 dashboard 點左邊的 VPN Connection,並選擇 create。
在 Virtual Private Gateway 及 Customer Gateway 的部分都選擇剛剛建起來的 items,然後在 Routing Options 選擇 Static 並在底下的 Static IP Prefixes 裡面填上在 GCP 裡的 VPC 內網 IP range。至於底下的 Tunnel Options 就留空讓 AWS 自己產生吧。
接下來在上圖列表選建好的 VPN,並點選 “Download Configuration”,在 Vendor 部分選擇 Generic,Platform也選 Generic,Software 選 Vendor Agnostic,點下 Download 會下載到一個 txt 檔。
5.在 GCP 上建立 VPN 並設定 tunnel
接下來我們要回到 GCP 上,在 Interconnect 裡選 VPN,並建立一個新的 VPN 連線。主要是區域要對應到想連接的 region,以及 IP 位址選擇在第一步建起來的 static IP。
接著是底下的通道部分,要參考剛剛下載回來的 txt 檔,裡面有兩個通道的參數,照著這些參數分別建立兩個通道。
其中遠端 Peer IP 位址可以在下載回來的檔案裡的 Outside IP Addresses -> Virtual Private Gateway 裡找到。IKE版本如同在 txt 檔裡面指定的,共用密鑰也一樣。底下的導向選項則選擇靜態,並在遠端網路 IP 範圍填上在 AWS VPC 裡的內網 IP。
6.測試連線
這時候在 GCP dashboard 裡等一下,應該可以看到 VPN connection 裡兩個遠端位址前的 ICON 都是綠色了。
在兩邊的機器裡,互相用彼此的 IP 做 ping 或是 ssh,應該都可以通囉。
其他:
- 在參考文件裡還有做開 firewall 的動作,但實測上並不需要。
- 歡迎在 comment 給予建議。
最近正好在找一些可以穩定使用於Singapore的vpn軟體
路過此地看到筆者的文章
雖然目前運用不到XD 不過還是留個腳印 感謝分享!!