Dopo aver inviato una richiesta di aggiornamento della configurazione per una sessione VPN IPSec, è possibile controllare se lo stato richiesto è stato elaborato correttamente nel piano di controllo locale di NSX-T Data Center nei nodi di trasporto.

Quando si crea una sessione VPN IPSec vengono create più entità: profilo IKE, profilo DPD, profilo tunnel, endpoint locale, servizio VPN IPSec e sessione VPN IPSec. Poiché tutte queste entità condividono lo stesso intervallo di IPSecVPNSession, è possibile ottenere lo stato di realizzazione di tutte le entità della sessione VPN IPSec utilizzando la stessa chiamata API GET. È possibile controllare lo stato di realizzazione utilizzando solo l'API.

Prerequisiti

Procedura

  1. Inviare una chiamata API di richiesta POST, PUT o DELETE.
    Ad esempio:
    PUT https://<nsx-mgr>/api/v1/vpn/ipsec/sessions/8dd1c386-9b2c-4448-85b8-51ff649fae4f
    {
       "resource_type": "PolicyBasedIPSecVPNSession",
       "id": "8dd1c386-9b2c-4448-85b8-51ff649fae4f",
       "display_name": "Test RZ_UPDATED",
       "ipsec_vpn_service_id": "7adfa455-a6fc-4934-a919-f5728957364c",
       "peer_endpoint_id":  "17263ca6-dce4-4c29-bd8a-e7d12bd1a82d",
       "local_endpoint_id": "91ebfa0a-820f-41ab-bd87-f0fb1f24e7c8",
       "enabled": true,
       "policy_rules": [
           {
               "id": "1026",
               "sources": [
                   {
                       "subnet": "1.1.1.0/24"
                   }
               ],
               "logged": true,
               "destinations": [
                   {
                       "subnet": "2.1.4..0/24"
                   }
               ],
               "action": "PROTECT",
               "enabled": true,
               "_revision": 1
           }
       ]
    }
  2. Individuare e copiare il valore di x-nsx-requestid dall'intestazione della risposta restituita.
    Ad esempio:
    x-nsx-requestid   e550100d-f722-40cc-9de6-cf84d3da3ccb
  3. Richiedere lo stato di realizzazione della sessione VPN IPSec utilizzando la chiamata GET seguente.
    GET https://<nsx-mgr>/api/v1/vpn/ipsec/sessions/<ipsec-vpn-session-id>/state?request_id=<request-id>
    La chiamata API seguente utilizza i valori id e x-nsx-requestid negli esempi utilizzati nei passaggi precedenti.
    GET https://<nsx-mgr>/api/v1/vpn/ipsec/sessions/8dd1c386-9b2c-4448-85b8-51ff649fae4f/state?request_id=e550100d-f722-40cc-9de6-cf84d3da3ccb
    Di seguito è illustrato un esempio di risposta che si riceve quando lo stato di realizzazione è in_progress.
    {
      "details": [
        {
          "sub_system_type": "TransportNode",
          "sub_system_id": "fe651e63-04bd-43a4-a8ec-45381a3b71b9",
          "state": "in_progress",
          "failure_message": "CCP Id:ab5958df-d98a-468e-a72b-d89dcdae5346, Message:State realization is in progress at the node."
        },
        {
          "sub_system_type": "TransportNode",
          "sub_system_id": "ebe174ac-e4f1-4135-ba72-3dd2eb7099e3",
          "state": "in_sync"
        }
      ],
      "state": "in_progress",
      "failure_message": "The state realization is in progress at transport nodes."
    }
    Di seguito è illustrato un esempio di risposta che si riceve quando lo stato di realizzazione è in_sync.
    {
        "details": [
            {
                "sub_system_type": "TransportNode",
                "sub_system_id":  "7046e8f4-a680-11e8-9bc3-020020593f59",
                "state": "in_sync"
            }
        ],
        "state": "in_sync"
    }
    Gli esempi seguenti mostrano possibili risposte che si ricevono quando lo stato di realizzazione è unknown.
    {
        "state": "unknown",
        "failure_message": "Unable to get response from any CCP node. Please retry operation after some time."
    }
    {
        "details": [
           {
              "sub_system_type": "TransportNode",
              "sub_system_id": "3e643776-5def-11e8-94ae-020022e7749b",
              "state": "unknown", 
              "failure_message": "CCP Id:ab5958df-d98a-468e-a72b-d89dcdae5346, Message: Unable to get response from the node. Please retry operation after some time."
           },
           {
              "sub_system_type": "TransportNode",
              "sub_system_id": "4784ca0a-5def-11e8-93be-020022f94b73",
              "state": "in_sync"
           }
        ],
        "state": "unknown",
        "failure_message": "The state realization is unknown at transport nodes"
    }
    Dopo aver eseguito un'operazione DELETE per un'entità, è possibile ricevere lo stato NOT_FOUND, come illustrato nell'esempio seguente.
    {
       "http_status": "NOT_FOUND",
       "error_code": 600, 
       "module_name": "common-services",
       "error_message": "The operation failed because object identifier LogicalRouter/61746f54-7ab8-4702-93fe-6ddeb804 is missing: Object identifiers are case sensitive.."
    }
    Se il servizio VPN IPSec associato alla sessione è disabilitato, si riceve la risposta BAD_REQUEST, come illustrato nell'esempio seguente.
    {
        "httpStatus": "BAD_REQUEST",
        "error_code": 110199,
        "module_name": "VPN",
        "error_message": "VPN service f9cfe508-05e3-4e1d-b253-fed096bb2b63 associated with the session 8dd1c386-9b2c-4448-85b8-51ff649fae4f is disabled. Can not get the realization status."
    }