情境
我們公司的 VPN 連線出現問題,目前確認 Gateway 配置沒有問題,請問有什麼可能的原因造成此問題?
操作
通常有兩種可能
- Host 與 gateway 之間的客戶端網絡存在問題
- 客戶端 gateway 與 Cloud VPN gateway 之間的網絡存在問題
在 Google Cloud (舊稱:GCP) 可以先檢查日誌,請按照下列步驟操作
- 確認 Cloud VPN gateway 的配置客戶端 IP 地址是否正確
- 確認從地端的流量有成功到達 peer gateway [1]
- 確認流量在兩個 VPN 網關之間雙向流動,也就是檢查 Cloud Logging 有無地端 VPN gateway 的傳入紀錄。
- 檢查 tunnel 兩邊配置的 IKE 版本一致
- 檢查 tunnel 的共享金鑰 (shared secret) 是否一致
- 確保配置 peer 和 Google Cloud 路由和防火牆規則,以便流量可以穿過 tunnel
互通性測試注意
Ping 用於確認本地與 GCP VMs 之間的連接,但需要考慮以下:
- 要確保 Google Cloud 網路的防火牆允許傳入 ICMP 流量。同樣,確保您的本地防火牆規則也配置為允許傳入和傳出 ICMP 流量。
- 使用內部 IP 地址來 ping 您 GCP VMs。Ping VPN gateway 的外部 IP 並不測試您 VPN 是否有通。
- 測試從本地到 Google Cloud 的連線時,最好從您網絡上的機器去 ping,而不是從您的 VPN gateway 去 ping。如果您有設置正確的接口,則可以從 gateway 進行 ping,但是從您網路上的機器進行 ping 也可以有測試防火牆的額外好處。
- Ping 不會確認 TCP 或 UDP port 是否打開。
- Traceroute 也是走 ICMP [2] 所以無法確認 TCP 有沒有通。
如果 ping、traceroute 或其他發送流量的方法僅從某些 GCP 虛擬機到您的本地有效,或者僅從某些本地發送到某些 GCP 虛擬機有效,並且您確認了 Google Cloud 和本地防火牆規則均沒有阻止您發送的流量,您可能有排除某些來源或目的地的 traffic selectors。