建立 VPN 閘道

您可以為 VPC 建立 IBM Cloud VPN,以安全地將 VPC 連接到另一個私有網路,例如內部網路或另一個 VPC。

在開始之前,請先查看 VPN 閘道的規劃注意事項 以及 VPN 閘道的已知限制、問題和限制

在主控台中建立 VPN 閘道

若要在主控台中建立 VPN 閘道,請遵循下列步驟:

  1. 請在瀏覽器中開啟 IBM Cloud 控制台,並登入您的帳戶。

  2. 選取導覽功能表 導覽功能表圖示,然後按一下基礎結構 VPC 圖示 > 網路 > VPN

  3. 確保選取 網站至網站閘道> VPN 閘道 標籤。

  4. 在 VPC 的 VPN 頁面上,按一下 建立,然後選取 站台對站台 閘道磚。

  5. 指定下列資訊:

    • 區域- 選擇要配置 VPN 閘道的區域。

    • VPN 閘道名稱-輸入 VPN 閘道的名稱,例如 my-vpn-gateway

    • 資源群組- 為 VPN 閘道器選取一個資源群組。

    • 標籤-選擇性地新增標籤以識別此 VPN 閘道。

    • 存取管理標籤-選擇性地將存取管理標籤新增至資源,以協助組織存取控制關係。 存取權管理標籤唯一支援的格式是 key:value。 如需相關資訊,請參閱 使用標籤控制對資源的存取權

    • Virtual Private Cloud-選取 VPN 閘道的 VPC。

    • 子網- 選擇您要建立 VPN 閘道的子網。 如需重要子網路資訊,請參閱 規劃考量

    • 模式-選取原則型或路由型 VPN。 如需 VPN 類型的相關資訊,請參閱 VPN 特性

    • ASN- VPN 閘道的數字識別碼。 此值識別您用於 BGP 對等互聯的本機網路,並在與您的內部設備設定 BGP 會話時使用。

    • Advertised CIDRs (選用)- 將 IPv4 網路範圍廣告給遠端 VPN 對等體的 CIDR 範圍值。

      動態路由需要 ASN 值。 如果您沒有指定 ASN,VPN 閘道會以預設 ASN 64520 建立。 將 VPN 閘道連接到轉接閘道後,您就無法變更本機 ASN 值。

  6. VPC 的 VPN 連線 區段中,開啟交換器以建立此閘道與 VPN 外部網路之間的連線功能。 您也可以在完成閘道器的配置後,新增一個 VPN 連線。 在連線詳細資訊部分,指定下列資訊:

    • VPN 連線名稱- 輸入連線名稱,例如 my-connection

    • 連線類型- 選擇靜態或動態連線類型。

    • 對等節點閘道位址-透過 VPC 外部網路之 VPN 閘道的公用 IP 位址或 FQDN 來指定對等節點裝置。

    • 對等 ASN (僅基於動態路由)- 如果選擇動態作為連線類型,則必須指定對等 ASN。 此值識別與 VPN 交換路由的遠端對等網路。

      某些 ASN 值受到限制,不能用作對等 ASN,其中包括 0, 13884, 36351, 64512, 64513, 65100, 65200–‍65234, 65402‍–‍65433, 65500,或 4201065000‍–‍4201065999。 這些值不是保留值就是私人 ASN 範圍的一部分,可能會造成路由衝突。

    • 建立模式-選取 雙向僅對等節點

      • 雙向模式會由 VPN 閘道器的任一側啟動 IKE 協定協商(或重新建立金鑰的流程)。
      • 僅對等節點 模式容許對等節點起始此 VPN 閘道連線的 IKE 通訊協定協議。 對等節點也負責在建立連線之後起始重設金鑰程序。

      如果您的對等節點裝置位於 NAT 裝置之後,且沒有公用 IP 位址,請確保指定 僅對等節點

    • 預先共用金鑰 — 指定 VPC 外部網路所用之 VPN 閘道的驗證金鑰。 預先共用金鑰是十六進位數字的字串,或可列印 ASCII 字元的通行詞組。 若要與大部分同層級閘道類型相容,此字串必須遵循下列規則:

      • 可以是數字、小寫或大寫字元的組合,或下列特殊字元: - + & ! @ # $ % ^ * ( ) . , :
      • 字串長度必須為 6-128 個字元。
      • 不能以 0x0s 開頭。
    • Distribute traffic (Route-based VPN only)- 當 VPC 路由的下一跳是 VPN 連線時,啟用此選項可自動在 VPN 閘道的作用中隧道之間分配流量。 當兩個 VPN 通道連接至您的遠端對等網路時,此選項有助於最大化吞吐量。 如果未啟用此選項,VPN 閘道會選擇較小公眾 IP 的隧道作為主要路徑,並僅在主要隧道故障時切換到次要隧道。 如需詳細資訊,請參閱 使用個案 4:為基於路由的 VPN 分配流量

    • 本地子網(僅限基於政策之 VPN) — 指定 VPC 中一個或多個您希望透過 VPN 隧道進行連線的子網。

    • 對等子網(僅限基於政策的 VPN) — 指定對等網路中您希望透過 VPN 隧道連接的一個或多個子網。

      不容許本端與同層級子網路之間的子網路範圍重疊。

  7. 隧道詳細資訊部分(僅基於動態路由),指定使用 BGP 進行動態路由所需的隧道和對等介面 IP。

    • 隧道介面 IP- 指定指派給 VPN 隧道 VPN 閘道側的 IP 位址。

    • 對等介面 IP- 指定指定給 VPN 通道遠端網路端的 IP 位址。 這個位址是您的內部裝置或對等 VPN 閘道。

      隧道和對等介面 IP 必須連續,並屬於相同的 /30 子網路。 此子網路提供四個 IP 位址,但第一個 (網路位址) 和最後一個 (廣播位址) 被保留。 例如,在子網路 192.168.0.0/30 中,可用的 IP 為 192.168.0.1192.168.0.2。 如果您指定 192.168.0.1 到隧道 1 介面,則必須指定 192.168.0.2 到對等 1 介面。 同樣地,對於隧道 2,使用不同的 /30 子網路,例如 192.168.0.4/30。 在這種情況下,請將 192.168.0.5 指派給隧道 2 介面,並將 192.168.0.6 指派給對等 2 介面。 此外,用於設定 IPsec 連線的隧道 IP 不能與 Transit Gateway 連線所選擇的 CIDR 範圍重疊。

  8. 停用對等節點偵測 區段中,配置 VPN 閘道傳送訊息的方式,以檢查對等節點閘道是否處於作用中。 指定下列資訊:

    • 動作-對等節點閘道停止回應時要採取的停用對等節點偵測動作。 例如,如果您要閘道立即重新協議連線,請選取重新啟動
    • 間隔(秒) — 檢查對等閘道是否處於活躍狀態的頻率。 預設情況下,每 2 秒會發送一次訊息。
    • 超時 (秒) — 等待對等閘道器回應的時間長度。 預設情況下,若在 10 秒內未收到回應,該對等閘道將不再被視為處於活躍狀態。
  9. 原則 區段中,指定「網際網路金鑰交換 (IKE)」及「Internet Protocol 安全 (IPsec)」選項,以用於連線的「階段 1」及「階段 2」協議。

    • 若要讓閘道器嘗試自動建立連線,請選擇「自動」。
    • 選擇或建立自訂政策,如果:
      • 您需要執行特定的安全要求。
      • 對方網路的 VPN 閘道器不支援設定時自動協商的安全提案。

    您為該連線指定的 IKE 和 IPsec 安全性選項,必須與您 VPC 外部網路的對等閘道上所設定的選項完全一致。

  10. 在「進階選項」區段中,您可以自訂本端及對等節點 IKE 身分,而不是使用預設 IKE 身分。 最多只能指定一個對等節點 IKE 身分。

    對於原則型 VPN 閘道,您最多可以配置一個本端 IKE 身分。 對於路由型 VPN 閘道,如果您想要配置本端 IKE 身分,則必須提供兩個。 您可以為成員填入數值,或將輸入欄位留空。

    • 本端 IKE 身分-選取本端 IKE 身分的類型,然後輸入值。 例如,您可以輸入單一 4 個八位元組 IPv4 位址 (9.168.3.4)、FQDN (my-vpn.example.com)、主機名稱 (my-host) 或 base64-encoded key ID (MTIzNA==)。

      • 靜態路由模式由主動-主動模式中的兩個成員組成,其中第一個身分套用至第一個成員,第二個身分套用至第二個成員。 如果您未指定本端 IKE 身分,則類型為 IPv4 位址,且值為成員 VPN 連線通道的公用 IP 位址。

      • 原則模式由兩個處於主動-待命模式的成員組成。 本地 IKE 身分適用於活躍成員。 若未指定值,則本地 IKE 身分將為 VPN 閘道的公網 IP 位址。

    • 對等節點 IKE 身分-選取對等節點 IKE 身分的類型,然後輸入其值。 例如,您可以輸入 IPv4 位址(9.168.3.4 )、完全合格的網域名稱(FQDN)(my-vpn.example.com )、主機名稱(my-host ),或 base64-encoded 金鑰識別碼(MTIzNA== )。

      對等方的 IKE 身分適用於主動成員。 如果您未指定值,請使用對等節點閘道的 IPv4 位址或 FQDN。

從 CLI 建立 VPN 閘道

開始之前,請 設定 CLI 環境

若要從 CLI 建立 VPN 閘道,請輸入下列指令:

ibmcloud is vpn-gateway-create VPN_GATEWAY_NAME SUBNET
    [--mode policy | route]
    [--advertised-cidrs IPv4_NETWORK_RANGE]
    [--local-asn ASN_NUMBER]
    [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME]
    [--output JSON] [-q, --quiet]

其中:

VPN_GATEWAY_NAME
VPN 閘道的名稱。
SUBNET
子網路的 ID。
--mode
VPN 閘道的模式。 下列其中一項: policyroute
--advertised-cidrs
IPv4 網路範圍,向遠端 VPN 對等體公告位址。
--local-asn
為 BGP 對等識別您的本機網路。
--resource-group-id
資源群組的 ID。 此選項與 --resource-group-name 互斥。
--resource-group-name
資源群組的名稱。 此選項與 --resource-group-id 互斥。
--output
以 JSON 格式輸出。
-q, --quiet
抑制詳細輸出的選項。

指令範例

  • 建立具有特定子網路 ID 的路由型 VPN 閘道:

    ibmcloud is vpn-gateway-create my-vpc-gateway fee82deba12e4c0fb69c3b09d1f12345 --mode route
    
  • 使用 Default 資源群組建立原則型 VPN 閘道:

    ibmcloud is vpn-gateway-create my-vpc-gateway fee82deba12e4c0fb69c3b09d1f12345 --mode policy --resource-group-name Default
    
  • 透過使用具有 JSON 格式輸出的特定資源群組 ID,建立路由型 VPN 閘道:

    ibmcloud is vpn-gateway-create my-vpc-gateway fee82deba12e4c0fb69c3b09d1f12345 --mode route --resource-group-id fee82deba12e4c0fb69c3b09d1f12345 --output JSON
    
  • 建立以路由為基礎的 VPN 閘道,以廣告 CIDR 和本機 ASN 進行動態連線:

    ibmcloud is vpn-gateway-create my-vpc-gateway fee82deba12e4c0fb69c3b09d1f12345 --mode route --advertised-cidrs 192.168.3.0/24 --local-asn 64520
    
  • 列出所有 VPN 閘道:

    ibmcloud is vpn-gateways
    ic vpn-gateways
    
  • 取得特定 VPN 閘道的詳細資訊:

    ic vpn-gateway my-vpc-gateway
    
  • 使用本機 ASN 更新 VPN 閘道:

    ic vpn-gateway-update my-vpc-gateway --name my-vpc-gateway --local-asn 64521
    
  • 列出 VPN 閘道的廣告 CIDR:

    ibmcloud is vpn-gateway-advertised-cidrs my-vpc-gateway
    
  • 檢查指定的已公告 CIDR 是否存在於 VPN 閘道上:

    ibmcloud is vpn-gateway-advertised-cidr  my-vpc-gateway --cidr 10.45.0.0/26
    
  • 將已公告的 CIDR 新增至 VPN 閘道:

    ibmcloud is vpn-gateway-advertised-cidr-add my-vpc-gateway --cidr 10.45.0.0/26
    
  • 從 VPN 閘道中刪除已公告的 CIDR:

    ibmcloud is vpn-gateway-advertised-cidr-delete my-vpc-gateway 10.45.0.0/26
    
  • 列出 VPN 閘道的所有服務連線:

    ibmcloud is vpn-gateway-service-connections my-vpc-gateway
    
  • 取得特定 VPN 閘道的服務連線詳細資訊:

    ibmcloud is vpn-gateway-service-connection my-vpc-gateway --service-connection-id 72fd9e00-3117-4b2e-984d-9361a9a97801
    

使用 API 建立 VPN 閘道

若要使用 API 建立 VPN 閘道,請遵循下列步驟:

  1. 使用正確的變數來設定 API 環境

  2. 儲存任何要在 API 指令中使用的附加變數。 例如,

    • ResourceGroupId-使用 get resource groups 指令尋找資源群組 ID,然後移入變數:
    export ResourceGroupId=<your_resourcegroup_id>
    
    • SubnetId-使用 get subnet 指令尋找子網路 ID,然後移入變數:
    export SubnetId=<your_subnet_id>
    
  3. 起始所有變數時,請建立 VPN 閘道:

    • 若要建立以政策為基礎的 VPN 閘道,請使用下列指令:
       curl -X POST "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
            "name": "my-new-vpn-gateway",
            "mode": "policy",
            "subnet": {
             "id": "'$SubnetId'"
             },
            "resource_group": {
              "id": "'$ResourceGroupId'"
            }
          }'
    
    • 若要為基於靜態路由的 VPN 連線建立 VPN 閘道,請使用下列指令:
       curl -X POST "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
            "name": "my-new-vpn-gateway",
            "mode": "route",
            "subnet": {
             "id": "'$SubnetId'"
             },
            "resource_group": {
              "id": "'$ResourceGroupId'"
            }
          }'
    
    • 若要為以動態路由為基礎的 VPN 連線建立 VPN 閘道,請使用下列指令:
       curl -X POST "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -H "Content-Type: application/json" \
         -H "Accept: application/json" \
         -H "X-Correlation-ID: 9852c2ff-c20a-4082-98da-cd689bcd5a11" \
         -d '{
             "name": "my-new-vpn-gateway",
             "subnet": {
             "id": "'"$SubnetId"'"
             },
             "mode": "route",
             "local_asn": 64520,
             "advertised_cidrs": [
             "192.168.0.0/24"
             ],
             "resource_group": {
             "id": "'"$ResourceGroupId"'"
             }
         }'
    
    • 若要列出 VPN 閘道的所有廣告 CIDR,請使用下列指令:
       curl -X GET "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2/$vpn_gateway_id/advertised_cidrs/$cidr?__QUERY__" \
         -H "Authorization: Bearer $iam_token"
    
    • 若要從 VPN 閘道移除已公告的 CIDR,請使用下列指令:
       curl -X DELETE "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2/$vpn_gateway_id/advertised_cidrs/$cidr?__QUERY__" \
         -H "Authorization: Bearer $iam_token" \
    
    • 若要在 VPN 閘道上設定已公告的 CIDR,請使用下列指令:
       curl -X PUT "$vpc_api_endpoint/v1/vpn_gateways?version=$api_version&generation=2/$vpn_gateway_id/advertised_cidrs/$cidr?__QUERY__" \
         -H "Authorization: Bearer $iam_token"
    

若要檢視站點對站點 VPN 閘道的完整 API 集,請參閱 VPC API 參考資料

使用 Terraform 建立 VPN 閘道

下列範例使用 Terraform 建立 VPN 閘道:

   resource "ibm_is_vpn_gateway" "is_vpn_gateway" {
   name = "my-vpn-gateway"
   subnet = ibm_is_subnet.is_subnet.id
   mode = "route"
   }

如需相關資訊,請參閱 Terraform 登錄

下一步

建立 VPN 閘道之後,您可以: