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.
- 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-T Data Center 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
- Pour configurer une nouvelle session VPN, procédez comme suit :
-
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" } }
-
- 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
DELETE /api/v1/csm/vpn/sessions/<session-id>
Dépannage
- 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
Consultez la dernière version du Guide de REST API de NSX-T Data Center à l'adresse https://code.vmware.com/ pour plus de détails sur l'API.