Après l'envoi d'une demande de mise à jour de la configuration d'une session VPN IPSec, vous pouvez vérifier si l'état demandé a été correctement traité dans le plan de contrôle local NSX des nœuds de transport.

Lorsque vous créez une session VPN IPSec, plusieurs entités sont créées : un profil IKE, un profil DPD, un profil de tunnel, un point de terminaison local, un service VPN IPSec et une session VPN IPSec. Ces entités partagent toutes la même étendue IPSecVPNSession. Vous pouvez donc obtenir l'état de réalisation de toutes les entités de la session VPN IPSec en profitant d'un même appel d'API GET. Vous pouvez vérifier l'état de réalisation en utilisant uniquement l'API.

Conditions préalables

Procédure

  1. Envoyez un appel d'API POST, PUT ou DELETE pour votre demande.
    Par exemple :
    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. Dans l'en-tête de la réponse renvoyée, localisez et copiez la valeur de x-nsx-requestid.
    Par exemple :
    x-nsx-requestid   e550100d-f722-40cc-9de6-cf84d3da3ccb
  3. Demandez l'état de réalisation de la session VPN IPSec en utilisant l'appel GET suivant.
    GET https://<nsx-mgr>/api/v1/vpn/ipsec/sessions/<ipsec-vpn-session-id>/state?request_id=<request-id>
    L'appel d'API suivant utilise les valeurs id et x-nsx-requestid dans les exemples utilisés lors des étapes précédentes.
    GET https://<nsx-mgr>/api/v1/vpn/ipsec/sessions/8dd1c386-9b2c-4448-85b8-51ff649fae4f/state?request_id=e550100d-f722-40cc-9de6-cf84d3da3ccb
    Voici un exemple de réponse que vous recevez lorsque l'état de réalisation est 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."
    }
    Voici un exemple de réponse que vous recevez lorsque l'état de réalisation est in_sync.
    {
        "details": [
            {
                "sub_system_type": "TransportNode",
                "sub_system_id":  "7046e8f4-a680-11e8-9bc3-020020593f59",
                "state": "in_sync"
            }
        ],
        "state": "in_sync"
    }
    Voici des exemples de réponse possible que vous recevez lorsque l'état de réalisation est 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"
    }
    Après avoir effectué une opération DELETE sur l'entité, vous pouvez recevoir l'état NOT_FOUND, comme indiqué dans l'exemple suivant.
    {
       "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.."
    }
    Si le service VPN IPSec associé à la session est désactivé, vous recevez la réponse BAD_REQUEST, comme indiqué dans l'exemple suivant.
    {
        "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."
    }