建立 VPN 通道

本頁面說明如何從一個 VPN 閘道新增 VPN 通道至另一個閘道。

VPN 通道是組織網路與遠端網路之間的加密 IPsec 通道。它會將 VPNGateway 介面連線至 PeerGateway 介面,並使用 VPNBGPPeer 資源透過通道交換轉送資訊。

事前準備

如要建立 VPN 通道,您必須具備下列條件:

  • 現有的 VPN 閘道和 VPN 對等互連閘道資源。詳情請參閱「建立 VPN 閘道和對等互連閘道」。
  • 現有的 VPN BGP 對等互連物件。詳情請參閱「建立 VPN BGP 工作階段」。
  • 現有密鑰。詳情請參閱使用 PSK 建立密鑰
  • 必要的身分與存取權角色:

    • VPN 管理員:具備所有 VPN 相關資源的讀寫權限。請機構 IAM 管理員授予您 VPN 管理員 (vpn-admin) 角色。
    • VPN 檢視者:具備所有 VPN 相關資源的讀取權限。請要求機構 IAM 管理員授予您 VPN 檢視者 (vpn-viewer) 角色。
    • 詳情請參閱「角色定義」。

建立 VPN 通道

參照先前步驟中建立的 VPNGatewayPeerGatewayVPNBGPPeerSecret 資源,建立通道。

如要建立 VPN 通道,請按照下列步驟操作:

  1. 建立 VPNTunnel 物件:

    kubectl --kubeconfig MANAGEMENT_API_SERVER create -n platform -f - <<EOF
    apiVersion: networking.gdc.goog/v1
    kind: VPNTunnel
    metadata:
      name: VPN_TUNNEL_NAME
    spec:
      vpnInterface:
        name: VPN_GW_NAME
        namespace: platform
        interface: VPN_INTERFACE_NAME
      peerInterface:
        name: PEER_GW_NAME
        namespace: platform
        interface: PEER_INTERFACE_NAME
      vpnBGPPeer:
        name: VPN_BGP_PEER_NAME
        namespace: platform
      ikeKey:
        name: PSK_NAME
        namespace: platform
    EOF
    

    更改下列內容:

    • MANAGEMENT_API_SERVER:區域 API 伺服器的 kubeconfig 路徑。如果您尚未在目標區域中為 API 伺服器產生 kubeconfig 檔案,請參閱「登入」一文瞭解詳情。
    • :使用的 VPN 通道名稱。VPN_TUNNEL_NAME
    • VPN_GW_NAME:VPN 閘道的名稱。
    • VPN_INTERFACE_NAME:VPN 介面的名稱。
    • PEER_GW_NAME:對等互連 VPN 閘道的名稱。
    • PEER_INTERFACE_NAME:對等互連 VPN 閘道介面的名稱。
    • VPN_BGP_PEER_NAME:VPN BGP 對等互連的名稱。詳情請參閱「建立 VPN BGP 工作階段」。
    • PSK_NAME:您在「使用 PSK 建立密鑰」中建立的 PSK 名稱。
  2. 檢查 Status 欄位,確認 VPN_TUNNEL_NAME 物件已正確對帳。取得 VPN 通道的詳細資料:

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpntunnel VPN_TUNNEL_NAME
    

    檢查輸出內容,應與下列範例類似:

    Status:
      Conditions:
        Last Transition Time:  2024-05-10T00:33:31Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Reconciled
        Last Transition Time:  2024-05-10T00:33:31Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Ready
        Last Transition Time:  2024-05-10T00:33:31Z
        Message:               Tunnel is established.
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  TunnelEstablished
      State:                   Established
    
  3. VPNGatewayPeerGatewayVPNBGPPeer 物件在 VPNTunnel 參照後,必須更新狀態。舉例來說,如果您確認 VPNBGPPeer 已正確對帳,就會看到更新後的狀態值。取得 VPNBGPPeer 物件的詳細資料:

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpnbgppeer VPN_BGP_PEER_NAME
    

    檢查輸出內容,狀態值現在已更新:

    Status:
      Advertised:
        Prefix:  10.0.0.16/28
        Prefix:  10.0.1.32/27
        Prefix:  172.16.0.0/14
        Prefix:  172.20.0.0/17
        Prefix:  172.20.128.0/17
        Prefix:  2002:4860:100e:fa00::/58
      Conditions:
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  ValidIPs
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  TunnelsAttached
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Reconciled
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  AdvertisedRoutesReady
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  ReceivedRoutesValid
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  ReceivedRoutesReady
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Ready
      Received:
        Prefix:  192.168.100.0/24
        Prefix:  193.188.200.0/24
      State:     Established
    

後續步驟