Vérifier l'état du VPN

Une fois que vous avez configuré vos passerelles VPN de pairs, vous pouvez vérifier si les composants suivants communiquent correctement avec Cloud VPN :

  • Vérifiez l'état des tunnels VPN haute disponibilité ou classique que vous avez configurés, y compris l'état de fonctionnement.
  • Vérifiez l'état de haute disponibilité des tunnels sur une passerelle VPN haute disponibilité.
  • Observez l'état des sessions BGP du routeur Cloud Router ou des routes annoncées par le routeur Cloud Router.

Vérifier les tunnels VPN haute disponibilité

Cette procédure permet de vérifier l'état des tunnels sur les deux interfaces d'une passerelle VPN haute disponibilité.

Console

  1. Accédez à la page VPN dans Google Cloud Console.
    Accéder à la page VPN
  2. Consultez les colonnes État du tunnel VPN et État de la session BGP.
  3. Cliquez sur le Nom d'un tunnel pour en afficher les détails.
  4. Sous Journaux, vous pouvez cliquer sur le bouton afficher pour visualiser les journaux de Cloud Logging.
  5. Vous pouvez également modifier la session BGP associée à ce tunnel.

gcloud

L'affichage de l'état du tunnel se fait en deux étapes. Commencez par identifier le nom et la région du tunnel, puis utilisez l'option de commande describe pour en afficher les détails. Remplacez project-id par l'ID de votre projet.

  1. Identifiez le nom et la région du tunnel VPN dont vous devez vérifier l'état. Vous pouvez identifier le tunnel à l'aide de l'une des méthodes suivantes :

    1. Option 1 : Pour répertorier tous les tunnels VPN de votre projet, saisissez la commande suivante :
      gcloud compute vpn-tunnels list --project project-id
      
      Le résultat de la commande doit ressembler à cet exemple :
      NAME                REGION       GATEWAY      VPN_INTERFACE  PEER_ADDRESS
      tunnel-a-to-b-if-0  us-central1  ha-vpn-gw-a  0              10.242.123.165
      tunnel-a-to-b-if-1  us-central1  ha-vpn-gw-a  1              10.220.75.213
      tunnel-b-to-a-if-0  us-central1  ha-vpn-gw-b  0              10.242.127.148
      tunnel-b-to-a-if-1  us-central1  ha-vpn-gw-b  1              10.220.66.156
      

    2. Option 2 : Si vous connaissez le nom de la passerelle VPN contenant le tunnel, vous pouvez extraire la liste des tunnels associés à la passerelle en saisissant la commande ci-après. Remplacez gw-name par le nom de la passerelle et region par la région dans laquelle se trouve la passerelle :

      gcloud compute vpn-gateways describe gw-name \
       --region region \
       --project project-id \
       --format='flattened(tunnels)'
      
  2. Une fois que vous connaissez le nom et la région du tunnel, utilisez l'option describe de la commande vpn-tunnels pour déterminer l'état du tunnel :

     gcloud compute vpn-tunnels describe name \
       --region region \
       --project project-id \
       --format='flattened(status,detailedStatus)'
    

    Le message d'état de base et un message plus détaillé sont renvoyés, et le résultat de la commande doit ressembler à l'exemple suivant. Pour obtenir la liste complète, ignorez l'option --format.

    detailedStatus: Tunnel is up and running.
    

    Les quatre exemples de résultats de commande ci-après présentent une liste complète de deux tunnels sur chacune des deux passerelles VPN haute disponibilité connectées entre elles. En d'autres termes, sur ha-vpn-gw-a, les tunnels de l'interface 0 et de l'interface 1 sont connectés aux tunnels des interfaces correspondantes de ha-vpn-gw-b.

    Exemple 1 : tunnel-a-to-b-if-0

     creationTimestamp: '2018-10-11T13:12:33.851-07:00'
     description: ''
     detailedStatus: Tunnel is up and running.
     id: '2919847494518181982'
     ikeVersion: 2
     kind: compute#vpnTunnel
     labelFingerprint: label-fingerprint
     localTrafficSelector:
     — 0.0.0.0/0
     name: tunnel-a-to-b-if-0
     peerIp: GW_A_IF_0_IP
     region: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1
     remoteTrafficSelector:
     — 0.0.0.0/0
     router: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-a
     selfLink: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0
     sharedSecret: '*************'
     sharedSecretHash: secret-hash
     vpnGateway: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnGateways/ha-vpn-gw-a
     vpnGatewayInterface: 0
    

    Exemple 2 : tunnel-a-to-b-if-1

     creationTimestamp: '2018-10-11T13:14:21.630-07:00'
     description: ''
     detailedStatus: Tunnel is up and running.
     id: '178016642781024754'
     ikeVersion: 2
     kind: compute#vpnTunnel
     labelFingerprint: label-fingerprint
     localTrafficSelector:
     —0.0.0.0/0
     name: tunnel-a-to-b-if-1
     peerIp: GW_B_IF_1_IP
     region: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1
     remoteTrafficSelector:
     — 0.0.0.0/0
     router: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-a
     selfLink: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1
     sharedSecret: '*************'
     sharedSecretHash: SECRET_HASH
     vpnGateway: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnGateways/ha-vpn-gw-a
     vpnGatewayInterface: 1
    

    Exemple 3 : tunnel-b-to-a-if-0

     creationTimestamp: '2018-10-11T13:16:19.345-07:00'
     description: ''
     detailedStatus: Tunnel is up and running.
     id: '1183416925692236156'
     ikeVersion: 2
     kind: compute#vpnTunnel
     labelFingerprint: label-fingerprint
     localTrafficSelector:
     — 0.0.0.0/0
     name: tunnel-b-to-a-if-0
     peerIp: GW_A_IF_0_IP
     region: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1
     remoteTrafficSelector:
     — 0.0.0.0/0
     router: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-b
     selfLink: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0
     sharedSecret: '*************'
     sharedSecretHash: SECRET_HASH
     vpnGateway: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnGateways/ha-vpn-gw-b
     vpnGatewayInterface: 0
    

    Exemple 4 : tunnel-b-to-a-if-1

     creationTimestamp: '2018-10-11T13:19:01.562-07:00'
     description: ''
     detailedStatus: Tunnel is up and running.
     id: '8199247227773914842'
     ikeVersion: 2
     kind: compute#vpnTunnel
     labelFingerprint: label-fingerprint
     localTrafficSelector:
     — 0.0.0.0/0
     name: tunnel-b-to-a-if-1
     peerIp: GW_A_IF_1_IP
     region: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1
     remoteTrafficSelector:
     — 0.0.0.0/0
     router: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-b
     selfLink: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1
     sharedSecret: '*************'
     sharedSecretHash: secret-hash
     vpnGateway: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnGateways/ha-vpn-gw-b
     vpnGatewayInterface: 1
    

api

Vous pouvez utiliser l'un des appels d'API suivants pour afficher les détails du tunnel.

  • Pour répertorier tous les tunnels VPN, leurs attributs, ainsi que leur état dans un projet et une région spécifiques, procédez comme suit :

Effectuez une requête GET avec la méthode vpnTunnels.list.

  GET https://www.googleapis.com/compute/v1/projects/project-id/regions/region/vpnTunnels
  • Pour répertorier les attributs et l'état d'un tunnel particulier dans un projet et une région spécifiques, procédez comme suit :

Effectuez une requête GET avec la méthode vpnTunnels.get.

  GET https://www.googleapis.com/compute/v1/projects/project-id/regions/region/vpnTunnels/tunnel-name

Vérifier les tunnels VPN classiques

Cette procédure vous permet de vérifier l'état des tunnels sur une passerelle VPN classique.

Console

  1. Accédez à la page VPN dans Google Cloud Console.
    Accéder à la page VPN
  2. Consultez les colonnes État du tunnel VPN et État de la session BGP.
  3. Cliquez sur le Nom d'un tunnel pour en afficher les détails.
  4. Sous Journaux, vous pouvez cliquer sur le bouton afficher pour visualiser les journaux de Logging.
  5. Vous pouvez également modifier la session BGP associée à ce tunnel.

gcloud

La procédure de vérification de l'état d'un tunnel VPN classique est semblable à celle du VPN haute disponibilité. Remplacez <var>project-id</var> par l'ID de votre projet.

  1. Pour vérifier l'état d'un tunnel VPN, identifiez son Nom et sa Région. À l'étape suivante, utilisez ces informations pour remplacer name et region. Vous pouvez identifier le tunnel en utilisant l'une des méthodes suivantes :

    1. Option 1 : Pour répertorier tous les tunnels VPN de votre projet :
      gcloud compute vpn-tunnels list --project project-id
      
    2. Option 2 : Si vous connaissez le nom de la passerelle VPN contenant le tunnel, vous pouvez extraire la liste des tunnels associés à l'aide de la commande ci-après.

      • Remplacez gw-name par le nom de la passerelle et region par sa région (la même que celle du tunnel) :
      gcloud compute target-vpn-gateways describe gw-name \
       --region region \
       --project project-id \
       --format='flattened(tunnels)'
      
  2. Décrivez le tunnel à l'aide de la commande ci-dessous pour déterminer son état. Le message d'état de base et un message plus détaillé sont renvoyés. Pour obtenir une liste complète, ignorez l'option --format.

    gcloud compute vpn-tunnels describe name \
    --region region \
    --project project-id \
    --format='flattened(status,detailedStatus)'
    

api

Vous pouvez utiliser l'un des appels d'API suivants pour afficher les détails du tunnel.

  • Pour répertorier tous les tunnels VPN, leurs attributs, ainsi que leur état dans un projet et une région spécifiques, procédez comme suit :

Effectuez une requête GET avec la méthode vpnTunnels.list.

  GET https://www.googleapis.com/compute/v1/projects/project-id/regions/region/vpnTunnels
  • Pour répertorier les attributs et l'état d'un tunnel particulier dans un projet et une région spécifiques, procédez comme suit :

Effectuez une requête GET avec la méthode vpnTunnels.get.

  GET https://www.googleapis.com/compute/v1/projects/project-id/regions/region/vpnTunnels/tunnel-name

Vérifier les règles de transfert de VPN classiques

Cette procédure vous permet de vérifier les règles de transfert que vous avez créées pour votre passerelle VPN classique.

Console

  1. Accédez à la page VPN dans Google Cloud Console.
    Accéder à la page VPN
  2. Cliquez sur un Nom de la passerelle.
  3. Sur la page Détails de VPN, affichez les règles de transfert que vous avez créées.

gcloud

Saisissez la commande ci-dessous pour afficher les règles de transfert d'un nom (name) de passerelle VPN classique dans une région (region) spécifique.

  gcloud compute target-vpn-gateways describe name --region region \
    --project project-id

API

Utilisez la méthode targetVpnGateways.get pour afficher les règles de transfert d'une passerelle VPN classique. Spécifiez l'ID de projet (project-id), l'ID de ressource (resource-id (name)) de la passerelle et sa région (region).

GET https://www.googleapis.com/compute/v1/projects/project-id/regions/region/targetVpnGateways/resource-id

Messages d'état de tunnel

Reportez-vous au tableau suivant pour interpréter les messages d'état de tunnel renvoyés par Google Cloud Console, ou lorsque vous utilisez des commandes gcloud :

État Message d'état détaillé Remarques
Allocation des ressources… Allocation des ressources… Le tunnel VPN va bientôt démarrer. Il s'agit de l'état initial d'un tunnel Cloud VPN que vous venez de créer.
En attente de la configuration complète En attente de la configuration de la route… La configuration des routes ou du routage est en cours de préparation.
Premier handshake Handshake avec le pair interrompu pour une raison inconnue. Nouvelle tentative imminente… La négociation de la phase 1 (association de sécurité IKE) avec le VPN pair est en cours. Elle a vraisemblablement échoué au moins une fois.
Établi Le tunnel est opérationnel. Le tunnel fonctionne, et les routes ont été configurées.
Aucun paquet entrant Aucun paquet entrant en provenance du pair Aucun trafic n'est reçu en provenance de la passerelle VPN de pairs.

Vérifier l'état de haute disponibilité des passerelles VPN haute disponibilité

Utilisez la commande compute vpn-gateways get-status pour vérifier l'état de la configuration de haute disponibilité des tunnels sur une passerelle VPN haute disponibilité.

Vous pouvez également consulter les métriques Cloud Monitoring pour obtenir davantage d'informations.

Le résultat de cette commande indique l'état de l'exigence de redondance de haute disponibilité pour les tunnels VPN associés à chaque passerelle de pairs à laquelle la passerelle VPN haute disponibilité est connectée.

La passerelle de pairs peut être une autre passerelle VPN haute disponibilité ou une passerelle VPN externe. Si plusieurs passerelles de pairs sont connectées à la passerelle VPN haute disponibilité, plusieurs états de configuration de haute disponibilité s'affichent, à raison d'un état pour chaque passerelle de pairs.

Le résultat de la commande indique la quantité adéquate de tunnels et la couverture nécessaire, comme suit :

  • Les passerelles VPN configurées avec une redondance (couverture) adéquate affichent l'état suivant : HighAvailabilityRedundancyRequirementState: CONNECTION_REQUIREMENT_MET.
  • Les passerelles VPN qui ne sont pas configurées avec une redondance adéquate affichent l'état suivant : HighAvailabilityRedundancyRequirementState: CONNECTION_REDUNDANCY_NOT_MET.
  • Si le nombre de tunnels configurés entre votre passerelle VPN haute disponibilité et une autre passerelle VPN haute disponibilité ou une passerelle de pairs est insuffisant, le résultat de la commande affiche : redundancyUnsatisfiedReason: INCOMPLETE_TUNNELS_COVERAGE.

Console

  1. Accédez à la page VPN dans Google Cloud Console.
    Accéder à la page VPN
  2. Cliquez sur Nom de la passerelle pour afficher les détails de la passerelle et de ses tunnels. Pour les passerelles VPN haute disponibilité, vous pouvez également afficher l'état de haute disponibilité de la passerelle.

gcloud

Pour afficher l'état des tunnels de la passerelle VPN haute disponibilité, saisissez la commande ci-dessous. Remplacez les options comme indiqué :

  • gw-name correspond au nom de la passerelle VPN haute disponibilité.
  • region correspond à la région où se trouve la passerelle.
  gcloud compute vpn-gateways get-status gw-name \
      --region region

Le résultat de commande suivant affiche les informations relatives à une passerelle VPN haute disponibilité connectée à une passerelle de pairs dotée de deux interfaces.

  peerGateways:
  — peerExternalGateway: peer-gw
  tunnels:
  — localGatewayInterface: 0
    peerGatewayInterface: 0
    tunnelUrl:
    https://www.googleapis.com/compute/v1/projects/project-id/
    regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-0
  — localGatewayInterface: 1
    peerGatewayInterface:1
    tunnelUrl:
    https://www.googleapis.com/compute/v1/projects/project-id/
    regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-1
    HighAvailabilityRedundancyRequirementState:
      state: CONNECTION_REDUNDANCY_MET

L'exemple de résultat suivant concerne deux passerelles VPN haute disponibilité connectées l'une à l'autre. Pour ce type de configuration, saisissez la commande pour chaque nom de passerelle VPN haute disponibilité.

L'obtention de l'état de "ha-vpn-gw-a" indique sa connexion à "ha-vpn-gw-b" :

  peerGateways:
  — peerGcpGateway: ha-vpn-gw-b
  tunnels:
  — localGatewayInterface: 0
    peerGatewayInterface: 0
    tunnelUrl:
    https://www.googleapis.com/compute/v1/projects/project-id/
    regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0
  — localGatewayInterface: 1
    peerGatewayInterface: 1
    tunnelUrl:
    https://www.googleapis.com/compute/v1/projects/project-id/
    regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1
    HighAvailabilityRedundancyRequirementState:
      state: CONNECTION_REDUNDANCY_MET

L'obtention de l'état de "ha-vpn-gw-b" "indique sa connexion à "ha-vpn-gw-a" :

  peerGateways:
  — peerGcpGateway: ha-vpn-gw-a
  tunnels:
  — localGatewayInterface: 0
    peerGatewayInterface: 0
    tunnelUrl:
    https://www.googleapis.com/compute/v1/projects/project-id/
    regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0
  — localGatewayInterface: 1
    peerGatewayInterface: 1
    tunnelUrl:
    https://www.googleapis.com/compute/v1/projects/project-id/
    regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1
    HighAvailabilityRedundancyRequirementState:
      state: CONNECTION_REDUNDANCY_MET

L'exemple de résultat suivant concerne une passerelle VPN haute disponibilité connectée à une passerelle virtuelle AWS, avec deux connexions et quatre adresses IP.

  peerGateways:
  - peerExternalGateway: peer-gw
  tunnels:
   - localGatewayInterface: 0
     peerGatewayInterface: 0
     tunnelUrl:
     https://www.googleapis.com/compute/v1/projects/project-id/
     regions/us-central1/vpnTunnels/tunnel-a-to-aws-connection-0-ip0
   - localGatewayInterface: 0
     peerGatewayInterface: 1
     tunnelUrl:
     https://www.googleapis.com/compute/v1/projects/project-id/
     regions/us-central1/vpnTunnels/tunnel-a-to-aws-connection-0-ip1
   - localGatewayInterface: 1
     peerGatewayInterface: 2
     tunnelUrl:
     https://www.googleapis.com/compute/v1/projects/project-id/
     regions/us-central1/vpnTunnels/tunnel-a-to-aws-connection-1-ip0
   - localGatewayInterface: 1
     peerGatewayInterface: 3
     tunnelUrl:
     https://www.googleapis.com/compute/v1/projects/project-id/
     regions/us-central1/vpnTunnels/tunnel-a-to-aws-connection-1-ip1
     HighAvailabilityRedundancyRequirementState:
       state: CONNECTION_REDUNDANCY_MET

L'exemple de résultat suivant concerne deux passerelles VPN haute disponibilité connectées entre elles par un seul tunnel. Cette configuration ne répond pas aux exigences de contrat de niveau de service garantissant une disponibilité à 99,99 %.

  peerGateways:
    - peerGcpGateway: ha-vpn-gw-a
    tunnels:
    - localGatewayInterface: 0
      peerGatewayInterface: 0
      tunnelUrl:
      https://www.googleapis.com/compute/v1/projects/project-id/
      regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0
      HighAvailabilityRedundancyRequirementState:
        state: CONNECTION_REDUNDANCY_NOT_MET
      detailedStatus:
        redundancyUnsatisfiedReason: INCOMPLETE_TUNNELS_COVERAGE

api

Pour obtenir l'état d'une passerelle VPN haute disponibilité donnée dans un projet et une région spécifiques, procédez comme suit :

Effectuez une requête GET avec la méthode vpnGateways.getStatus.

  GET https://www.googleapis.com/compute/v1/projects/project-id/regions/region/vpnGateways/gateway-name/getStatus

Vérifier l'état de BGP

Pour les tunnels ayant recours au routage dynamique avec BGP, vous pouvez également vérifier l'état du routeur Cloud Router pour afficher des informations telles que l'état des sessions BGP d'un routeur ou des routes annoncées par le routeur Cloud Router.

Étape suivante