CSM API を使用して、VPC または VNet 間の VPN 設定を自動化できます。

CSM API を使用して、オンプレミス エンドポイントを使用する VPN の設定を行うことはできません。

前提条件:
  • VPN トンネルの両側のエンドポイントは、PCG が展開され、実行中または up 状態のパブリック クラウドに配置されている必要があります。

次のエンティティは、CSM API を使用して構成されます。これらの API を使用して、VPN 設定の構成を解除することもできます。

タグをサポートする NSX エンティティの場合、API は、CsmVpnSessionId:<csm-vpn-session-id-new> などの新しい VPN セッション ID をタグとして適用し、以前に作成されたエンティティを再利用します。

  • 送信元と宛先のエンドポイント:

    • IPSec VPN サービスが cloud-vpn-service-<vpc/vnet-id> という名前で構成されている。

    • BGP ルーティングが cloud-routing-config-<vpc/vnet-id> という名前で構成されている。BGP がまだ有効になっていない場合は、API によって有効になり、55555.<1-64999> という形式の AS 番号が割り当てられます。

  • 送信元と宛先のエンドポイントの PCG:

    • Tier-0 スタティック ルートと Tier-1 に接続されたセグメントに対して BGP ルートの再配布が有効になっている。

    • パブリック IP が PCG のアップリンク インターフェイスに割り当てられ、PCG のアップリンク インターフェイス上の VPN セカンダリ プライベート IP に関連付けられている。

    • IPSec VPN ローカル エンドポイントが cloud-vpn-local-endpoint-<gateway-id>-<preferred/non-preferred> という名前で作成されている。

  • 送信元の宛先のエンドポイント間の PCG の組み合わせ:

    • ルート ベース IPSec VPN セッションが、<csm-vpn-session-id>-<Preferred/non-preferred>To<Preferred/non-preferred>-<hash-from-source-and-destination-PCG-ids> という名前で作成されている。

    • 構成済みの各 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 REST API ガイド』の最新バージョンを参照してください。