Puede usar las API de CSM para automatizar la configuración de VPN entre VPC o VNet.

No se pueden utilizar las API de CSM para configurar la VPN mediante endpoints locales.

Requisitos previos:
  • Ambos extremos del túnel VPN deben estar en la nube pública con PCG implementadas en ellos y en un estado en ejecución o up.

Las siguientes entidades se configuran mediante las API de CSM. También puede utilizar estas API para anular la configuración de la VPN.

Para las entidades de NSX-T Data Center que admiten etiquetas, la API reutiliza las entidades previamente creadas mediante la aplicación de una etiqueta con el nuevo identificador de sesión de VPN, por ejemplo, CsmVpnSessionId:<csm-vpn-session-id-new>.

  • Para cada Endpoint de origen y destino:

    • El servicio VPN de IPSec está configurado con el nombre cloud-vpn-service-<vpc/vnet-id>.

    • El enrutamiento de BGP está configurado con el nombre cloud-routing-config-<vpc/vnet-id>. Si BGP aún no estaba habilitado, la API lo habilita y asigna un número AS con el formato: 55555.<1-64999>.

  • Para cada PCG en los endpoints de origen y destino:

    • La redistribución de rutas BGP está habilitada para las rutas estáticas de nivel 0 y los segmentos conectados de nivel 1.

    • La dirección IP pública se asigna a la interfaz de vínculo superior de la PCG y se asocia a la dirección IP privada de VPN-secundaria en la interfaz de vínculo superior de la PCG.

    • Se crea un endpoint local de VPN de IPSec con el nombre cloud-vpn-local-endpoint-<gateway-id>-<preferred/non-preferred>.

  • Para cada combinación de PCG entre los endpoints de origen y destino:

    • La sesión de VPN de IPSec basada en rutas se creó con el nombre <csm-vpn-session-id>-<Preferred/non-preferred>To<Preferred/non-preferred>-<hash-from-source-and-destination-PCG-ids>

    • Se agregó el vecino de BGP en la puerta de enlace de nivel 0 para cada sesión de VPN de IPSec configurada.

Configurar/actualizar sesiones de VPN

  1. Para configurar una nueva sesión de VPN, haga lo siguiente:
    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. Para actualizar el nombre para mostrar de una sesión de VPN existente:
    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"
      }
    }

Obtener el estado de las sesiones de VPN existentes

  • Para obtener el estado de todas las sesiones:
    GET /api/v1/csm/vpn/sessions/status
  • Para obtener el estado de una sesión específica, proporcione el ID de sesión:
    GET /api/v1/csm/vpn/sessions/<session-id>/status

Eliminar sesiones

Elimine sesiones proporcionando el ID de sesión:
DELETE /api/v1/csm/vpn/sessions/<session-id>

Solucionar problemas

Si se produce un error en la creación de entidades:
  • Obtenga el estado del ID de sesión específico:
    GET /api/v1/csm/vpn/sessions/<session-id>/status
  • Puede ver el punto de error en la respuesta. Realice los cambios necesarios para resolver el error.
  • Vuelva a crear las entidades restantes para el mismo ID de sesión con la llamada API:
    POST /api/v1/csm/vpn/sessions/<session-id>?action=recreate 
    

Para obtener más información sobre la API, consulte la versión más reciente de la Guía de REST API de NSX-T Data Center en https://code.vmware.com/.