Vous pouvez utiliser des API CSM pour automatiser la configuration du VPN entre des VPC ou des VNet.

Vous ne pouvez pas utiliser des API CSM pour configurer un VPN à l'aide de points de terminaison sur site.

Conditions préalables :
  • Les deux points de terminaison pour le tunnel VPN doivent se trouver dans le cloud public avec des PCG déployées sur eux et dans un état de fonctionnement ou up.

Les entités suivantes sont configurées à l'aide d'API CSM. Vous pouvez également utiliser ces API pour annuler la configuration du VPN.

Pour les entités NSX qui prennent en charge les balises, l'API réutilise les entités créées précédemment en leur appliquant une balise avec le nouvel ID de session VPN, par exemple, CsmVpnSessionId:<csm-vpn-session-id-new>.

  • Pour chaque point de terminaison source et de destination :

    • Le service VPN IPSec est configuré avec le nom cloud-vpn-service-<vpc/vnet-id>.

    • Le routage BGP est configuré avec le nom cloud-routing-config-<vpc/vnet-id>. Si BGP n'était pas déjà activé, l'API l'active et attribue un nombre AS au format : 55555.<1-64999>.

  • Pour chaque PCG dans les points de terminaison source et de destination :

    • La redistribution des routes BGP est activée pour les routes statiques de niveau 0 et les segments connectés de niveau 1.

    • L'adresse IP publique est attribuée à l'interface de liaison montante de la PCG et associée à l'adresse IP privée secondaire VPN sur l'interface de liaison montante de la PCG.

    • Le point de terminaison local VPN IPSec est créé avec le nom cloud-vpn-local-endpoint-<gateway-id>-<preferred/non-preferred>.

  • Pour chaque combinaison de PCG entre les points de terminaison source et de destination :

    • La session VPN IPsec basée sur une route est créée avec le nom <csm-vpn-session-id>-<Preferred/non-preferred>To<Preferred/non-preferred>-<hash-from-source-and-destination-PCG-ids>.

    • Le voisin BGP est ajouté sur la passerelle de niveau 0 pour chaque session VPN IPSec configurée.

Configuration/mise à jour des sessions VPN

  1. Pour configurer une nouvelle session VPN, procédez comme suit :
    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. Pour mettre à jour le nom complet d'une session VPN existante :
    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"
      }
    }

Obtention de l'état de sessions VPN existantes

  • Pour obtenir l'état de toutes les sessions :
    GET /api/v1/csm/vpn/sessions/status
  • Pour obtenir l'état d'une session spécifique en fournissant l'ID de session :
    GET /api/v1/csm/vpn/sessions/<session-id>/status

Suppression de sessions

Supprimez des sessions en fournissant l'ID de session :
DELETE /api/v1/csm/vpn/sessions/<session-id>

Dépannage

Si la création d'entités échoue :
  • Obtenez l'état de l'ID de session spécifique :
    GET /api/v1/csm/vpn/sessions/<session-id>/status
  • Vous pouvez voir le point de défaillance dans la réponse. Apportez les modifications nécessaires pour résoudre la défaillance.
  • Recréez les entités restantes pour le même ID de session à l'aide de l'appel d'API :
    POST /api/v1/csm/vpn/sessions/<session-id>?action=recreate 
    

Pour plus d'informations sur l'API, reportez-vous à la dernière version du Guide de REST API de NSX à l'adresse https://code.vmware.com/.