È possibile utilizzare le API CSM per automatizzare la configurazione VPN tra VPC o VNet.
Non è possibile utilizzare le API CSM per configurare la VPN utilizzando endpoint locali.
- Entrambi gli endpoint per il tunnel VPN devono trovarsi nel cloud pubblico con gruppi di sicurezza distribuiti in tali endpoint e nello stato in esecuzione o
up
.
Le entità seguenti vengono configurate utilizzando le API CSM. È inoltre possibile utilizzare queste API per annullare la configurazione della VPN.
Per entità NSX che supportano i tag, l'API riutilizza le entità create in precedenza applicando un tag a tali entità con il nuovo ID sessione VPN, ad esempio CsmVpnSessionId:<csm-vpn-session-id-new>
.
-
Per ogni endpoint di origine e destinazione:
-
Il servizio VPN IPSec è configurato, denominato
cloud-vpn-service-<vpc/vnet-id>
. -
Il routing BGP è configurato, denominato
cloud-routing-config-<vpc/vnet-id>
. Se BGP non è già abilitato, l'API lo abilita e assegna un numero AS nel formato:55555.<1-64999>
.
-
-
Per ciascun PCG negli endpoint di origine e di destinazione:
-
La ridistribuzione della route BGP è abilitata per le route statiche livello 0 e i segmenti connessi livello 1.
-
L'IP pubblico è assegnato all'interfaccia di uplink di PCG e associato all'IP privato secondario VPN nell'interfaccia di uplink di PCG.
-
Viene creato l'endpoint locale di VPN IPSec, denominato
cloud-vpn-local-endpoint-<gateway-id>-<preferred/non-preferred>
.
-
-
Per ogni combinazione di PCG tra gli endpoint di origine e di destinazione:
-
Viene creata una sessione VPN IPSec basata su route, denominata
<csm-vpn-session-id>-<Preferred/non-preferred>To<Preferred/non-preferred>-<hash-from-source-and-destination-PCG-ids>
-
Il router adiacente BGP viene aggiunto nel gateway di livello 0 per ogni sessione VPN IPSec configurata.
-
Configurazione/aggiornamento delle sessioni VPN
- Per configurare una nuova sessione VPN, eseguire i passaggi seguenti:
-
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" } }
-
- Per aggiornare il nome visualizzato di una sessione VPN esistente:
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" } }
Recupero dello stato delle sessioni VPN esistenti
- Per ottenere lo stato di tutte le sessioni:
GET /api/v1/csm/vpn/sessions/status
- Per ottenere lo stato di una sessione specifica fornendo l'ID sessione:
GET /api/v1/csm/vpn/sessions/<session-id>/status
Eliminazione delle sessioni
DELETE /api/v1/csm/vpn/sessions/<session-id>
Risoluzione dei problemi
- Ottenere lo stato per l'ID sessione specifico:
GET /api/v1/csm/vpn/sessions/<session-id>/status
- Nella risposta è possibile vedere il punto di errore. Apportare le modifiche necessarie per risolvere l'errore.
- Ricreare le entità rimanenti per lo stesso ID sessione utilizzando la chiamata API:
POST /api/v1/csm/vpn/sessions/<session-id>?action=recreate
Per dettagli sull'API, vedere la versione più recente della Guida alla REST API di NSX su https://code.vmware.com/.