Sie können CSM-APIs verwenden, um das VPN-Setup zwischen VPCs oder VNets zu automatisieren.

Sie können CSM-APIs nicht zum Einrichten von VPN mithilfe von lokalen Endpoints verwenden.

Voraussetzungen:
  • Beide Endpoints für den VPN-Tunnel müssen sich in der Public Cloud befinden, wobei PCGs darin bereitgestellt sind und der Status „Wird ausgeführt“ oder up lautet.

Die folgenden Entitäten werden mithilfe von CSM-APIs konfiguriert. Sie können diese APIs auch verwenden, um die Konfiguration des VPN-Setup aufzuheben.

Bei NSX-Entitäten, die Tags unterstützen, verwendet die API zuvor erstellte Entitäten, indem darauf ein Tag mit der neuen VPN-Sitzungs-ID angewendet wird, z. B. CsmVpnSessionId:<csm-vpn-session-id-new>.

  • Für jeden Quell- und Ziel-Endpoint:

    • Der IPSec-VPN-Dienst ist konfiguriert mit dem Namen cloud-vpn-service-<vpc/vnet-id>.

    • Das BGP-Routing ist konfiguriert mit dem Namen cloud-routing-config-<vpc/vnet-id>. Wenn das BGP nicht bereits aktiviert war, erfolgt dies durch die API und es wird eine AS-Nummer in folgendem Format zugewiesen: 55555.<1-64999>.

  • Für jedes PCG in Quell- und Ziel-Endpoints:

    • Die BGP-Routen-Umverteilung ist für statische Tier-0-Routen und verbundene Tier-1-Segmente aktiviert.

    • Eine öffentliche IP wird der Uplink-Schnittstelle des PCG zugewiesen und mit einer VPN-sekundären privaten IP der Uplink-Schnittstelle des PCG verknüpft.

    • Ein lokaler IPSec-VPN-Endpoint wird erstellt mit dem Namen cloud-vpn-local-endpoint-<gateway-id>-<preferred/non-preferred>.

  • Für jede PCG-Kombination zwischen Quell- und Ziel-Endpoints:

    • Eine routenbasierte IPSec-VPN-Sitzung wird erstellt mit dem Namen <csm-vpn-session-id>-<Preferred/non-preferred>To<Preferred/non-preferred>-<hash-from-source-and-destination-PCG-ids>.

    • Ein BGP-Nachbar wird auf dem Tier-0-Gateway für jede konfigurierte IPSec-VPN-Sitzung hinzugefügt.

Konfigurieren/Aktualisieren von VPN-Sitzungen

  1. Um eine neue VPN-Sitzung zu konfigurieren, gehen Sie wie folgt vor:
    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. So aktualisieren Sie den Anzeigennamen einer vorhandenen VPN-Sitzung:
    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"
      }
    }

Abrufen des Status vorhandener VPN-Sitzungen

  • So rufen Sie den Status aller Sitzungen ab:
    GET /api/v1/csm/vpn/sessions/status
  • So rufen Sie den Status einer bestimmten Sitzung ab, indem Sie die Sitzungs-ID bereitstellen:
    GET /api/v1/csm/vpn/sessions/<session-id>/status

Löschen von Sitzungen

Löschen Sie Sitzungen, indem Sie die Sitzungs-ID bereitstellen:
DELETE /api/v1/csm/vpn/sessions/<session-id>

Fehlerbehebung

Wenn das Erstellen von Entitäten fehlschlägt:
  • Rufen Sie den Status für die jeweilige Sitzungs-ID ab:
    GET /api/v1/csm/vpn/sessions/<session-id>/status
  • Sie können die Fehlerquelle in der Antwort sehen. Nehmen Sie die erforderlichen Änderungen vor, um den Fehler zu beheben.
  • Erstellen Sie die verbleibenden Entitäten für die gleiche Sitzungs-ID mithilfe des folgenden API-Aufrufs neu:
    POST /api/v1/csm/vpn/sessions/<session-id>?action=recreate 
    

Weitere Informationen zur API finden Sie in der aktuellen Version des Handbuchs zur NSX-REST API unter https://code.vmware.com/.