您可以使用 CSM API 在 VPC 或 VNet 之間自動化 VPN 設定。

您無法使用 CSM API 來設定使用內部部署端點的 VPN。

必要條件:
  • VPN 通道的兩個端點都必須位於公有雲中,且已在其中部署 PCG 並處於執行中或 up 狀態。

下列實體是使用 CSM API 所設定。您也可以使用這些 API 來取消設定 VPN 設定。

對於支援標籤的 NSX-T Data Center 實體,API 透過將標籤套用至具有新 VPN 工作階段識別碼的實體,來重複使用先前建立的實體,例如 CsmVpnSessionId:<csm-vpn-session-id-new>

  • 對於每個來源和目的地端點:

    • IPSec VPN 服務已設定,名為 cloud-vpn-service-<vpc/vnet-id>

    • BGP 路由已設定,名為 cloud-routing-config-<vpc/vnet-id>。如果尚未啟用 BGP,則 API 會啟用它,並指派格式為 55555.<1-64999> 的 AS 編號。

  • 對於來源和目的地端點中的每個 PCG:

    • 已為第 0 層靜態路由和第 1 層連線的區段啟用 BGP 路由重新分配。

    • 公用 IP 會指派給 PCG 的上行介面,並與 PCG 的上行介面上的 VPN 次要私人 IP 相關聯。

    • IPSec VPN 本機端點已建立,名為 cloud-vpn-local-endpoint-<gateway-id>-<preferred/non-preferred>

  • 對於來源和目的地端點之間的每個 PCG 組合:

    • 以路由為基礎的 IPSec VPN 工作階段已建立,名為 <csm-vpn-session-id>-<Preferred/non-preferred>To<Preferred/non-preferred>-<hash-from-source-and-destination-PCG-ids>

    • 針對每個已設定 IPSec VPN 工作階段,系統會在第 0 層閘道上新增 BGP 芳鄰。

設定/更新 VPN 工作階段

  1. 若要設定新的 VPN 工作階段,請執行下列操作:
    1. GET /api/v1/csm/vpn/endpoints
    2. POST /api/v1/csm/vpn/session
      
      Example Request:
      POST https://<nsx-csm>/api/v1/csm/vpn/sessions
      {
        "display_name": "aws azure session 01",
        "source_endpoint": {
          "id": "vpc-12345678",
          "display_name": "vpc test",
          "endpoint_type": "AWS"
        },
        "destination_endpoint": {
          "id": "d02af61a-e212-486e-b6c8-10462ccfbad6",
          "display_name": "vnet-01",
          "endpoint_type": "AZURE"
        }
      }
  2. 若要更新現有 VPN 工作階段的顯示名稱:
    PUT /api/v1/csm/vpn/sessions/<session-id>
    
    Example Request:
    PUT https://<nsx-csm>/api/v1/csm/vpn/sessions/9174ffd1-41b1-42d6-a28d-05c61a0698e2
    {
      "display_name": "New VPN session",
      "source_endpoint": {
        "id": "vpc-12345678",
        "display_name": "vpc test",
        "endpoint_type": "AWS"
      },
      "destination_endpoint": {
        "id": "d02af61a-e212-486e-b6c8-10462ccfbad6",
        "display_name": "vnet-01",
        "endpoint_type": "AZURE"
      }
    }

取得現有 VPN 工作階段的狀態

  • 若要取得所有工作階段的狀態:
    GET /api/v1/csm/vpn/sessions/status
  • 若要透過提供工作階段識別碼以取得特定工作階段的狀態:
    GET /api/v1/csm/vpn/sessions/<session-id>/status

刪除工作階段

透過提供工作階段識別碼以刪除工作階段:
DELETE /api/v1/csm/vpn/sessions/<session-id>

疑難排解

如果建立實體失敗:
  • 取得特定工作階段識別碼的狀態:
    GET /api/v1/csm/vpn/sessions/<session-id>/status
  • 您可以在回應中看到失敗點。進行必要的變更以解決失敗。
  • 使用 API 呼叫針對相同工作階段識別碼重新建立剩餘實體:
    POST /api/v1/csm/vpn/sessions/<session-id>?action=recreate 
    

如需 API 的詳細資料,請參閱最新版本的《NSX-T Data Center REST API 指南》,網址為 https://code.vmware.com/