使用動態轉送建立傳統版 VPN 閘道

本頁面說明如何使用動態轉送建立傳統版 VPN 閘道,以及一個使用邊界閘道通訊協定 (BGP) 的通道。

有了動態轉送,您就不需要指定本機或遠端流量選取器,而是可以使用 Cloud Router。路徑資訊會動態交換。

如要進一步瞭解 Cloud VPN,請參閱下列資源:

  • 如要瞭解設定 Cloud VPN 前應考慮的最佳做法,請參閱「最佳做法」。

  • 如要進一步瞭解 Cloud VPN,請參閱 Cloud VPN 總覽

  • 如需本頁所用詞彙的定義,請參閱「重要術語」。

需求條件

一般指南

在 Compute Engine VM 上安裝第三方 VPN 軟體

建立含有動態轉送功能的傳統版 VPN 通道時,您為對等 VPN 閘道介面指定的 IP 位址必須指派給 Compute Engine VM。

因此,您必須先在 Compute Engine VM 上安裝第三方 VPN 軟體,才能建立任何 Classic VPN 通道。設定傳統 VPN 通道時,請將 Compute Engine VM 的外部 IP 位址指定為對等 VPN 閘道介面。

此外,對等互連 VPN 閘道介面的 IP 位址必須從 Google 擁有的區域外部 IPv4 位址集區中分配。IP 位址不得屬於 Bring your own IP address (BYOIP) 範圍。

建立 Cloud Router

如要建立使用動態轉送功能的傳統版 VPN 通道,您必須使用 Cloud Router。您可以建立新的 Cloud Router,也可以使用現有的 Cloud Router 搭配現有的 Cloud VPN 通道或 VLAN 連結。不過,由於 VLAN 連結有特定的 ASN 需求,因此您使用的 Cloud Router 不得已管理與合作夥伴互連網路連線相關聯的 VLAN 連結 BGP 工作階段。

事前準備

在 Google Cloud 中設定下列項目,以便設定 Cloud VPN:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.

  5. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Install the Google Cloud CLI.

  10. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  11. To initialize the gcloud CLI, run the following command:

    gcloud init
    1. 如果您使用的是 Google Cloud CLI,請使用下列指令設定專案 ID。這個頁面的 gcloud 操作說明假設您已在發出指令之前設定專案 ID。

          gcloud config set project PROJECT_ID
          
    1. 您也可以執行下列指令,查看已設定的專案 ID:

          gcloud config list --format='text(core.project)'
          

    建立自訂虛擬私有雲網路和子網路

    在建立 Classic VPN 閘道和通道之前,請在 Classic VPN 閘道所在的地區建立虛擬私人雲端 (VPC) 網路和至少一個子網路:

    建立閘道和通道

    主控台

    設定閘道

    1. 前往 Google Cloud 控制台的 VPN 頁面。
      前往 VPN 頁面
      1. 如果您是首次建立閘道,請選取「建立 VPN 連線」按鈕。
      2. 選取「VPN 設定精靈」
    2. 選取「傳統版 VPN」圓形按鈕。
    3. 按一下「繼續」
    4. 在「建立 VPN 連線」頁面中指定下列閘道設定:
      • 名稱 — VPN 閘道的名稱。名稱一經設定即無法變更。
      • 說明:視需要新增說明。
      • 網路:指定要建立 VPN 閘道和通道的現有 VPC 網路。
      • 地區 — Cloud VPN 閘道與通道是地區物件。選擇閘道所在的 Google Cloud區域。「不同地區」中的執行個體和其他資源可依照路徑順序,將通道用於輸出流量。如要獲得最佳效能,請將閘道和通道置於與相關 Google Cloud 資源相同的地區。
      • 「IP 位址」:建立或選擇現有地區外部 IP 位址

    設定隧道

    1. 針對新通道項目,在「通道」部分指定下列內容:

      • 名稱 — VPN 通道的名稱。名稱一經設定即無法變更。
      • 說明 — 視需要輸入說明。
      • 遠端對等互連 IP 位址:指定對等互連 VPN 閘道的外部 IP 位址。
      • IKE 版本:選擇對等互連 VPN 閘道支援的適當 IKE 版本。如果對等裝置支援 IKEv2,建議選擇這個版本。

      • 共用密鑰 — 提供用於驗證的預先共用金鑰。Cloud VPN 通道的共用密鑰必須與您在對等互連 VPN 閘道中設定對應通道時使用的密鑰相符。您可以遵循這些指示,產生高強度加密的共用密鑰。

      • 路由選項:選取「Dynamic (BGP)」。您只能使用動態路由連線至在 Google Cloud VM 執行個體中執行的第三方 VPN 閘道軟體。

      • Cloud Router:如果您尚未建立 Cloud Router,請按照下方所述的選項建立新的 Cloud Router。或者,如果 Cloud Router 尚未管理與合作夥伴互連網路相關聯的互連網路連結 BGP 工作階段,您可以使用現有的 Cloud Router。如果您選擇現有的 Cloud Router,您仍將建立新的 BGP 工作階段,但 Google ASN 仍然相同。如要建立新的 Cloud Router,請指定下列詳細資料:

        • 名稱 — Cloud Router 的名稱。名稱一經設定即無法變更。
        • 說明 — 視需要輸入說明。
        • Google ASN:選擇私人 ASN (645126553442000000004294967294)。這個 Google ASN 會用於 Cloud Router 管理的所有 BGP 工作階段。ASN 一經設定即無法變更。
        • 按一下 [儲存並繼續]
      • BGP 工作階段:按一下鉛筆圖示,然後指定下列詳細資料。完成後,按一下「儲存並繼續」

        • 名稱 — BGP 工作階段的名稱。一經設定即無法變更。
        • 對等 ASN:對等互連 VPN 閘道使用的公用或私人 (645126553442000000004294967294) ASN。
        • 公告路徑優先順序 - (選用) Cloud Router 在公告「至Google Cloud」路徑時使用的基本優先順序。詳情請參閱「公告的前置字串和優先順序」。對等互連 VPN 閘道會將這些項目匯入為 MED 值。
        • Cloud Router BGP IPBGP 對等 IP — 這兩個 BGP 介面 IP 位址必須是屬於 169.254.0.0/16 區塊的一般 /30 CIDR 的「連結-本機」IP 位址。每個 BGP IP 都會定義各自的連結本機 IP,可用來變更路徑資訊。例如,169.254.1.1169.254.1.2 屬於一般 /30 區塊。
    2. 如果您需要在同一個閘道中建立更多通道,請按一下 [新增通道],然後重複上一個步驟。您稍後可以新增更多通道

    3. 按一下 [建立]。

    gcloud

    在下列指令中:

    • PROJECT_ID 替換為專案的 ID。
    • NETWORK 替換為您的 Google Cloud 網路名稱。
    • REGION 替換為您需要建立閘道與通道所在的 Google Cloud地區
    • (選用) --target-vpn-gateway-region 是傳統版 VPN 閘道運作的地區。其值應與 --region 相同。如果未指定,系統會自動設定這個選項。這個選項會覆寫此指令叫用作業的預設 compute/region 屬性值。
    • GW_NAME 替換為閘道的名稱。
    • GW_IP_NAME 替換為閘道使用的外部 IP「名稱」

    完成下列指令序列,建立 Google Cloud閘道:

    1. 為 Cloud VPN 閘道建立資源:

      1. 建立「目標 VPN 閘道」物件。

        gcloud compute target-vpn-gateways create GW_NAME \
            --network NETWORK \
            --region REGION \
            --project PROJECT_ID
        
      2. 預約地區外部 (靜態) IP 位址:

        gcloud compute addresses create GW_IP_NAME \
            --region REGION \
            --project PROJECT_ID
        
      3. 記下 IP 位址 (以便您在設定對等互連 VPN 閘道時使用):

        gcloud compute addresses describe GW_IP_NAME \
            --region REGION \
            --project PROJECT_ID \
            --format='flattened(address)'
        
      4. 建立三個「轉送規則」。這些規則可指示 Google Cloud 將 ESP (IPsec)、UDP 500 與 UDP 4500 流量傳送至閘道。

         gcloud compute forwarding-rules create fr-GW_NAME-esp \
             --load-balancing-scheme=EXTERNAL \
             --ip-protocol ESP \
             --address GW_IP_NAME \
             --target-vpn-gateway GW_NAME \
             --region REGION \
             --project PROJECT_ID
        
        gcloud compute forwarding-rules create fr-GW_NAME-udp500 \
            --load-balancing-scheme=EXTERNAL \
            --ip-protocol UDP \
            --ports 500 \
            --address GW_IP_NAME \
            --target-vpn-gateway GW_NAME \
            --region REGION \
            --project PROJECT_ID
        
        gcloud compute forwarding-rules create fr-GW_NAME-udp4500 \
            --load-balancing-scheme=EXTERNAL \
            --ip-protocol UDP \
            --ports 4500 \
            --address GW_IP_NAME \
            --target-vpn-gateway GW_NAME \
            --region REGION \
            --project PROJECT_ID
        
    2. 如果您尚未建立 Cloud Router,請完成下列指令。請按照下方說明替換選項。或者,您也可以使用現有的 Cloud Router,前提是 Cloud Router 尚未管理與合作夥伴互連網路相關聯的互連網路連結。

      • ROUTER_NAME 替換為 Cloud Router 的名稱。
      • GOOGLE_ASN 替換為私人 ASN (645126553442000000004294967294)。Google ASN 會用於同一個 Cloud Router 的所有 BGP 工作階段,且設定後即無法再變更。
        gcloud compute routers create ROUTER_NAME \
        --asn GOOGLE_ASN \
        --network NETWORK \
        --region REGION \
        --project PROJECT_ID
      
    3. 使用下列詳細資料建立 Cloud VPN 通道:

      • TUNNEL_NAME 替換為通道的名稱。
      • ON_PREM_IP 替換為對等 VPN 閘道的外部 IP 位址。
      • 針對 IKEv1,將 IKE_VERS 替換為 1,針對 IKEv2 則替換為 2
      • SHARED_SECRET 替換為共用密鑰。Cloud VPN 通道的共用密鑰必須與您在對等 VPN 閘道中設定對應通道時使用的密鑰相符。您可以遵循這些指示,產生高強度加密的共用密鑰。
      • ROUTER_NAME 替換為您要用來管理 Cloud VPN 通道路徑的 Cloud Router 的名稱。在您建立通道「之前」,Cloud Router 就必須存在。

        gcloud compute vpn-tunnels create TUNNEL_NAME \
            --peer-address ON_PREM_IP \
            --ike-version IKE_VERS \
            --shared-secret SHARED_SECRET \
            --router ROUTER_NAME \
            --target-vpn-gateway GW_NAME \
            --region REGION \
            --project PROJECT_ID
        
    4. 建立介面與 BGP 對等點,為 Cloud Router 設定 BGP 工作階段:選擇下列其中一種做法:

      • 讓 Google Cloud 自動選擇連結本機 BGP IP 位址

        1. 將新介面新增至 Cloud Router。替換 INTERFACE_NAME 以提供介面的名稱。

          gcloud compute routers add-interface ROUTER_NAME \
              --interface-name INTERFACE_NAME \
              --vpn-tunnel TUNNEL_NAME \
              --region REGION \
              --project PROJECT_ID
          
        2. 將 BGP 對等點新增至該介面。將 PEER_NAME 替換為對等點的名稱,並將 PEER_ASN 替換為針對對等點 VPN 閘道設定的 ASN。

          gcloud compute routers add-bgp-peer ROUTER_NAME \
              --peer-name PEER_NAME \
              --peer-asn PEER_ASN \
              --interface INTERFACE_NAME \
              --region REGION \
              --project PROJECT_ID
          

          如要為對等端定義自訂已知路徑,請新增 --set-custom-learned-route-ranges 標記。您也可以視需要使用 --custom-learned-route-priority 標記,為路線設定介於 065535 (含) 之間的優先順序值。每個 BGP 工作階段可有一個優先順序值,套用至您為工作階段設定的所有自訂已知路徑。如要進一步瞭解這項功能,請參閱「自訂學習路線」。

          gcloud compute routers add-bgp-peer ROUTER_NAME \
              --peer-name=PEER_NAME_0 \
              --peer-asn=PEER_ASN \
              --interface=ROUTER_INTERFACE_NAME_0 \
              --region=REGION \
              --set-custom-learned-route-ranges=IP_ADDRESS_RANGES \
              --custom-learned-route-priority=PRIORITY
          
        3. 列出 Cloud Router 選擇的 BGP IP 位址。如果您將新介面新增至現有 Cloud Router,新介面的 BGP IP 位址應以最高的索引編號列出。「對等互連 IP 位址」是您用來設定對等互連 VPN 閘道的 BGP IP。

          gcloud compute routers get-status ROUTER_NAME \
               --region REGION \
               --project PROJECT_ID \
               --format='flattened(result.bgpPeerStatus[].ipAddress, \
               result.bgpPeerStatus[].peerIpAddress)'
          

          管理單一 Cloud VPN 通道 (索引 0) 的預期 Cloud Router 輸出看起來像以下這樣,其中 GOOGLE_BGP_IP 代表 Cloud Router 介面的 BGP IP,ON_PREM_BGP_IP 代表其對等點的 BGP IP。

          result.bgpPeerStatus[0].ipAddress:     GOOGLE_BGP_IP
          result.bgpPeerStatus[0].peerIpAddress: ON_PREM_BGP_IP
          
      • 如要指派與Google Cloud BGP 介面和對等點關聯的 BGP IP 位址

        1. 169.254.0.0/16 範圍的 /30 區塊中決定一對連結本機 BGP IP 位址。您會在下一個指令中替換 GOOGLE_BGP_IP,將其中一個 BGP IP 指派給 Cloud Router。另一個 BGP IP 位址可用於您的對等互連 VPN 閘道。您必須設定讓裝置使用該位址,並在以下的最後一個指令中替換 ON_PREM_BGP_IP

        2. 將新介面新增至 Cloud Router。替換 INTERFACE_NAME 以指定介面的名稱。

          gcloud compute routers add-interface ROUTER_NAME \
              --interface-name INTERFACE_NAME \
              --vpn-tunnel TUNNEL_NAME \
              --ip-address GOOGLE_BGP_IP \
              --mask-length 30 \
              --region REGION \
              --project PROJECT_ID
          
        3. 將 BGP 對等點新增至該介面。將 PEER_NAME 替換為對等點的名稱,並將 PEER_ASN 替換為針對對等點 VPN 閘道設定的 ASN。

          gcloud compute routers add-bgp-peer ROUTER_NAME \
              --peer-name PEER_NAME \
              --peer-asn PEER_ASN \
              --interface INTERFACE_NAME \
              --peer-ip-address ON_PREM_BGP_IP \
              --region REGION \
              --project PROJECT_ID
          

          如要為對等端定義自訂已知路徑,請新增 --set-custom-learned-route-ranges 標記。您也可以選擇使用 --custom-learned-route-priority 標記,為路線設定介於 065535 (含頭尾) 之間的優先順序值。每個 BGP 工作階段可有一個優先順序值,套用至您為工作階段設定的所有自訂已知路徑。如要進一步瞭解這項功能,請參閱「自訂學習路線」。

          gcloud compute routers add-bgp-peer ROUTER_NAME \
              --peer-name=PEER_NAME_0 \
              --peer-asn=PEER_ASN \
              --interface=ROUTER_INTERFACE_NAME_0 \
              --region=REGION \
              --set-custom-learned-route-ranges=IP_ADDRESS_RANGES \
              --custom-learned-route-priority=PRIORITY
          

    完成設定程序

    您必須完成下列步驟,才能使用新的 Cloud VPN 閘道及其相關聯的 VPN 通道:

    1. 在 Google Cloud VM 執行個體上使用第三方 VPN 軟體,完成對等互連 VPN 閘道的設定。並在閘道中設定對應通道。您只能使用動態轉送功能搭配傳統版 VPN,才能連線至在 Google Cloud中執行的第三方 VPN 軟體。
    2. 視需要在 Google Cloud 和對等網路中設定防火牆規則
    3. 檢查 VPN 通道和轉送規則的狀態

    後續步驟