您可以使用 CSM API 在 VPC 或 VNet 之间自动设置 VPN。
您无法使用 CSM API 通过内部部署端点设置 VPN。
- VPN 隧道的两个端点必须位于公有云中,在其中部署了 PCG 并处于“正在运行”或“
up
”状态。
以下实体是使用 CSM API 配置的。您还可以使用这些 API 取消配置 VPN 设置。
对于支持标记的 NSX 实体,API 将标记应用于以前创建的实体并使用新的 VPN 会话 ID (例如 CsmVpnSessionId:<csm-vpn-session-id-new>
)以重复使用这些实体。
-
对于每个源和目标端点:
-
配置名为
cloud-vpn-service-<vpc/vnet-id>
的 IPSec VPN 服务。 -
配置名为
cloud-routing-config-<vpc/vnet-id>
的 BGP 路由。如果尚未启用 BGP,API 将启用 BGP,并使用以下格式分配 AS 编号:55555.<1-64999>
。
-
-
对于源和目标端点中的每个 PCG:
-
为 Tier-0 静态路由和 Tier-1 直连的分段启用 BGP 路由重新分发。
-
将公用 IP 分配给 PCG 的上行链路接口,并将其与 PCG 的上行链路接口上的 VPN 辅助专用 IP 相关联。
-
创建名为
cloud-vpn-local-endpoint-<gateway-id>-<preferred/non-preferred>
的 IPSec VPN 本地端点。
-
-
对于源端点和目标端点之间的每个 PCG 组合:
-
创建名为
<csm-vpn-session-id>-<Preferred/non-preferred>To<Preferred/non-preferred>-<hash-from-source-and-destination-PCG-ids>
的基于路由的 IPsec VPN 会话。 -
在 Tier-0 网关上为每个配置的 IPSec VPN 会话添加 BGP 邻居。
-
配置/更新 VPN 会话
- 要配置新的 VPN 会话,请执行以下操作:
-
GET /api/v1/csm/vpn/endpoints
-
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" } }
-
- 要更新现有 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
- 要提供会话 ID 以获取特定会话的状态,请运行以下命令:
GET /api/v1/csm/vpn/sessions/<session-id>/status
删除会话
DELETE /api/v1/csm/vpn/sessions/<session-id>
故障排除
- 获取特定会话 ID 的状态:
GET /api/v1/csm/vpn/sessions/<session-id>/status
- 您可以在响应中看到故障点。进行所需的更改以解决该故障。
- 使用 API 调用重新创建同一会话 ID 的其余实体:
POST /api/v1/csm/vpn/sessions/<session-id>?action=recreate
有关 API 详细信息,请参见最新版本的《NSX REST API 指南》,网址为 https://code.vmware.com/。