CSM API를 사용하여 VPC 또는 VNet 간에 VPN 설정을 자동화할 수 있습니다.

온-프레미스 끝점에서 VPN을 설정할 때는 CSM API를 사용할 수 없습니다.

사전 요구 사항:
  • VPN 터널에 대한 두 끝점은 모두 PCG가 배포된 공용 클라우드에 있어야 하며 실행 중 또는 up 상태여야 합니다.

다음 엔티티는 CSM API를 사용하여 구성됩니다. 이러한 API를 사용하여 VPN 설정을 구성 해제할 수도 있습니다.

태그를 지원하는 NSX-T Data Center 엔티티의 경우 API는 새 VPN 세션 ID(예: CsmVpnSessionId:<csm-vpn-session-id-new>)로 태그를 적용하여 이전에 생성된 엔티티를 재사용합니다.

  • 각 소스 및 대상 끝점의 경우:

    • IPSec VPN 서비스가 구성되어 있습니다(cloud-vpn-service-<vpc/vnet-id>로 명명).

    • BGP 라우팅이 구성되어 있습니다(cloud-routing-config-<vpc/vnet-id>로 명명). BGP를 아직 사용하도록 설정하지 않은 경우 API에서 사용하도록 설정하고 55555.<1-64999> 형식으로 AS 번호를 할당합니다.

  • 소스 및 대상 끝점에 있는 각 PCG의 경우:

    • BGP 경로 재분산은 Tier-0 고정 경로 및 Tier-1 연결된 세그먼트에 대해 사용하도록 설정됩니다.

    • 공용 IP는 PCG의 업링크 인터페이스에 할당되고 PCG의 업링크 인터페이스에 있는 VPN-보조 개인 IP에 연결됩니다.

    • 이름이 cloud-vpn-local-endpoint-<gateway-id>-<preferred/non-preferred>인 IPSec VPN 로컬 끝점이 생성됩니다.

  • 소스 및 대상 끝점 사이에 있는 각 PCG 조합의 경우:

    • 이름이 <csm-vpn-session-id>-<Preferred/non-preferred>To<Preferred/non-preferred>-<hash-from-source-and-destination-PCG-ids>인 경로 기반 IPsec VPN 세션이 생성됩니다.

    • 구성된 각 IPSec VPN 세션에 대해 BGP 인접 네트워크가 Tier-0 게이트웨이에 추가됩니다.

VPN 세션 구성/업데이트

  1. 새 VPN 세션을 구성하려면 다음을 수행합니다.
    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. 기존 VPN 세션의 표시 이름을 업데이트하려면 다음을 수행합니다.
    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"
      }
    }

기존 VPN 세션의 상태 가져오기

  • 모든 세션 상태를 가져오려면 다음을 수행합니다.
    GET /api/v1/csm/vpn/sessions/status
  • 세션 ID를 제공하여 특정 세션의 상태를 가져오려면 다음을 수행합니다.
    GET /api/v1/csm/vpn/sessions/<session-id>/status

세션 삭제

세션 ID를 제공하여 세션을 삭제합니다.
DELETE /api/v1/csm/vpn/sessions/<session-id>

문제 해결

엔티티 생성이 실패하는 경우:
  • 특정 세션 ID에 대한 상태를 가져옵니다.
    GET /api/v1/csm/vpn/sessions/<session-id>/status
  • 응답의 장애 지점을 볼 수 있습니다. 오류를 해결하기 위해 필요한 사항을 변경합니다.
  • API 호출을 사용하여 동일한 세션 ID에 대해 나머지 엔티티를 재생성합니다.
    POST /api/v1/csm/vpn/sessions/<session-id>?action=recreate 
    

API에 대한 자세한 내용은 https://code.vmware.com/에서 "NSX-T Data Center 최신 버전 REST API 가이드" 를 참조하십시오.