Utiliser l'authentification MD5

Cloud Router utilise le protocole BGP (Border Gateway Protocol) pour échanger des routes entre un réseau cloud privé virtuel (VPC) et un réseau appairé. Par défaut, les sessions BGP de Cloud Router ne sont pas authentifiées. Toutefois, lorsque vous utilisez Cloud Router avec certains produits, vous pouvez éventuellement configurer vos sessions BGP pour qu'elles utilisent l'authentification MD5.

Les produits pouvant utiliser l'authentification MD5 sont les suivants :

Vous pouvez également utiliser l'authentification MD5 avec des dispositifs virtuels de réseaux tiers. Pour en savoir plus, consultez la section Routeur dans la documentation du centre de connectivité réseau.

Lorsque vous configurez une session pour qu'elle utilise l'authentification MD5, vous fournissez une clé partagée secrète que vous utilisez pour configurer Cloud Router, puis à nouveau pour configurer votre routeur pair. Une fois que vous avez terminé les étapes de configuration requises, Cloud Router utilise cette clé pour authentifier le pair BGP. Cloud Router applique l'authentification MD5 en utilisant le modèle décrit dans le document RFC 2385.

Vous pouvez ajouter l'authentification MD5 lorsque vous créez un pair. Vous pouvez également ajouter l'authentification à une session existante, modifier la clé utilisée par une session ou supprimer l'authentification.

Pour configurer l'authentification MD5, vous devez utiliser Google Cloud CLI ou l'API Google Cloud.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  4. Installez et initialisez Google Cloud CLI.
  5. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  6. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  7. Installez et initialisez Google Cloud CLI.
  1. Si vous utilisez Google Cloud CLI, définissez votre ID de projet en exécutant la commande suivante. Dans les instructions gcloud de cette page, nous partons du principe que vous avez défini l'ID de votre projet.
    gcloud config set project PROJECT_ID
        
  1. Confirmez que l'ID a été défini en exécutant la commande suivante :
    gcloud config list --format='text(core.project)'
        

Créer une session utilisant l'authentification

Pour certains produits de connectivité réseau, vous pouvez configurer un pair BGP pour utiliser l'authentification MD5 lors de la création de la ressource. Ces produits incluent un VPN haute disponibilité et une interconnexion dédiée.

Pour plus d'informations, consultez les sections suivantes :

Si vous créez un rattachement de VLAN d'interconnexion partenaire de couche 2, commencez par créer le rattachement puis mettez à jour le pair BGP pour ajouter l'authentification MD5. Pour savoir comment ajouter une authentification lors de la mise à jour d'une session BGP, consultez la section suivante. Si vous disposez d'une connexion de couche 3, contactez votre fournisseur de services pour obtenir des instructions.

Ajouter une authentification à une session existante

Si vous souhaitez ajouter l'authentification à un pair BGP existant, utilisez l'une des procédures suivantes. Lorsque vous ajoutez l'authentification, assurez-vous que la clé que vous utilisez est identique à celle utilisée par le routeur pair.

gcloud

Pour mettre à jour la session à l'aide de gcloud CLI, utilisez la commande gcloud beta compute routers update-bgp-peer :

  gcloud beta compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --md5-authentication-key=SECRET_KEY
 

Remplacez les valeurs suivantes :

  • ROUTER_NAME : nom du routeur cloud
  • PEER_NAME : nom du pair BGP
  • REGION : région Google Cloud
  • SECRET_KEY : votre clé d'authentification MD5 partagée avec votre clé secrète

API

Pour mettre à jour la session avec l'API, utilisez la méthode compute.routers.patch. Lorsque vous utilisez cette méthode pour ajouter une authentification à la session, votre requête doit effectuer deux opérations :

  • Ajouter une entrée pour la clé dans le tableau md5AuthenticationKeys. Lorsque vous ajoutez l'entrée, vous fournissez à la fois un nom et une valeur pour la clé.
  • Mettre à jour le tableau bgpPeers pour inclure une valeur pour le champ md5AuthenticationKeyName. Ce champ fait référence à la clé par son nom.

Lorsque vous appliquez un correctif au tableau md5AuthenticationKeys, vous devez indiquer le nom (name) de chaque élément du tableau (sauf si vous souhaitez supprimer certains éléments). Toutefois, vous n'avez pas besoin de renseigner le champ key de chaque élément. Si vous omettez cette valeur, Cloud Router conserve la valeur précédente utilisée. Ce comportement est conçu pour protéger la confidentialité des clés. Il diffère des autres méthodes d'application de correctif, qui nécessitent généralement de spécifier une valeur pour chaque champ d'un élément de tableau.

Lorsque vous appliquez un correctif au tableau bgpPeers, vous devez fournir des valeurs pour chaque champ de chaque élément (sauf si vous souhaitez supprimer des pairs ou certaines valeurs).

Par exemple, supposons que le routeur Cloud Router ait deux pairs, l'un utilisant l'authentification MD5 et l'autre non. Si vous souhaitez laisser le premier pair inchangé, mais ajouter l'authentification MD5 au deuxième pair, utilisez une requête semblable à la suivante.

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
      {
        "name": "KEY_NAME_1",
      },
      {
        "name": "KEY_NAME_2",
        "key": "SECRET_KEY"
      }
    ],
    "bgpPeers": [
      {
        "name": "PEER_NAME_1",
        "md5AuthenticationKeyName": "KEY_NAME_1",
        "interfaceName": "INTERFACE_NAME_1",
        "ipAddress": IP_ADDRESS_1",
        "peerIpAddress": PEER_IP_ADDRESS_1",
        "peerAsn": PEER_ASN_1"
      },
      {
        "name": "PEER_NAME_2",
        "md5AuthenticationKeyName": "KEY_NAME_2",
        "interfaceName": "INTERFACE_NAME_2",
        "ipAddress": IP_ADDRESS_2",
        "peerIpAddress": PEER_IP_ADDRESS_2",
        "peerAsn": PEER_ASN_2"
      }
    ],
  }
 

Remplacez les valeurs suivantes :

  • PROJECT_ID : projet contenant le routeur cloud.
  • REGION : région Google Cloud
  • ROUTER_NAME : nom du routeur cloud
  • KEY_NAME_1 : nom de la clé en cours d'utilisation (PEER_NAME_1)
  • KEY_NAME_2 : nom de la nouvelle clé que vous souhaitez ajouter pour PEER_NAME_2. Notez ce nom. Si vous souhaitez effectuer des modifications par la suite en utilisant l'API, vous aurez besoin du nom.
  • SECRET_KEY : clé d'authentification MD5 secrète que vous ajoutez pour PEER_NAME_2.
  • PEER_NAME_1 : nom du pair BGP que vous ne modifiez pas.
  • INTERFACE_NAME_1 : nom de l'interface de la session d'appairage BGP qui ne change pas
  • IP_ADDRESS_1 : adresse IP du routeur cloud (pour le pair qui ne change pas)
  • PEER_IP_ADDRESS_1 : adresse IP du pair qui ne change pas
  • PEER_ASN_1 : numéro ASN (Autonomous System Number) du pair qui ne change pas
  • PEER_NAME_2 : nom du pair BGP que vous souhaitez mettre à jour afin qu'il utilise l'authentification MD5.
  • INTERFACE_NAME_2 : nom de l'interface pour la session d'appairage BGP
  • IP_ADDRESS_2 : adresse IP du routeur Cloud Router.
  • PEER_IP_ADDRESS_2 : adresse IP du routeur pair
  • PEER_ASN_2 : numéro ASN (Autonomous System Number) pour ce pair BGP

Mettre à jour la clé d'authentification

Si vous devez modifier la clé utilisée par Cloud Router pour une session d'appairage, suivez l'une des procédures suivantes. Lorsque vous mettez à jour la clé sur le routeur Cloud Router, assurez-vous que la clé que vous utilisez est identique à celle utilisée par le routeur pair.

gcloud

Pour mettre à jour la session, utilisez la commande gcloud beta compute routers update-bgp-peer.

  gcloud beta compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --md5-authentication-key=SECRET_KEY
 

Remplacez les valeurs suivantes :

  • ROUTER_NAME : nom du routeur cloud
  • PEER_NAME : nom du pair BGP
  • REGION : région Google Cloud
  • SECRET_KEY : nouvelle clé d'authentification MD5 secrète que vous souhaitez utiliser

API

Pour mettre à jour la session, utilisez la méthode compute.routers.patch. Par exemple, exécutez une requête semblable à celle-ci.

Cet exemple remplace l'intégralité du tableau de pairs, et pas seulement le pair spécifique identifié. Autrement dit, il supprime tous les pairs, à l'exception de PEER_NAME. Toutes les clés sont supprimées, à l'exception de KEY_NAME.

  POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
      {
        "name": "KEY_NAME"
      }
    ],
    "bgpPeers": [
      {
        "name": "PEER_NAME",
        "md5AuthenticationKeyName": "KEY_NAME",
        "interfaceName": "INTERFACE_NAME",
        "ipAddress": IP_ADDRESS",
        "peerIpAddress": PEER_IP_ADDRESS",
        "peerAsn": PEER_ASN"
      }
    ],
  }
 

Remplacez les valeurs suivantes :

  • PROJECT_ID : projet contenant le routeur cloud.
  • REGION : région Google Cloud
  • ROUTER_NAME : nom du routeur cloud
  • KEY_NAME : nom de la clé que vous souhaitez mettre à jour. Lorsque vous travaillez avec l'authentification MD5 à l'aide de l'API, vous devez référencer la clé par son nom.
  • UPDATED_SECRET_KEY : votre nouvelle clé d'authentification MD5 secrète
  • PEER_NAME : nom du pair BGP
  • INTERFACE_NAME : nom de l'interface pour la session d'appairage BGP
  • IP_ADDRESS : adresse IP du routeur Cloud Router.
  • PEER_IP_ADDRESS : adresse IP du routeur pair
  • PEER_ASN : numéro ASN (Autonomous System Number) pour ce pair BGP

Vérifier l'état de l'authentification

Procédez comme suit pour vérifier l'état de l'authentification MD5. Consultez également la section Afficher les détails du routeur Cloud Router.

Pour configurer la surveillance continue de vos sessions BGP, utilisez Cloud Logging. Logging enregistre des informations sur l'état de l'authentification MD5 dans l'événement BGP, qui fait partie du journal d'informations.

gcloud

Pour vérifier la session à l'aide de gcloud CLI, utilisez la commande gcloud beta compute routers get-status :

  gcloud beta compute routers get-status ROUTER_NAME \
     --project=PROJECT \
     --region=REGION \
 

Remplacez les valeurs suivantes :

  • ROUTER_NAME : nom du routeur cloud
  • PROJECT : nom du projet.
  • REGION : région Google Cloud

Le résultat inclut l'objet result.bgpPeerStatus[], qui contient des informations sur les sessions BGP du routeur Cloud Router. Les données relatives à chaque session incluent les deux champs suivants :

  • md5AuthEnabled : champ booléen indiquant si l'authentification MD5 est activée pour la session
  • statusReason : champ décrivant l'état de la session

API

Exécutez la méthode routers.getRouterStatus :

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME/getRouterStatus

Remplacez l'élément suivant :

  • PROJECT_ID : projet contenant le routeur cloud.
  • REGION : région où se trouve le routeur cloud.
  • ROUTER_NAME : nom du routeur cloud

Le résultat inclut des informations sur chaque session BGP. Les données sur chaque session incluent les deux champs suivants :

  • md5AuthEnabled : champ booléen indiquant si l'authentification MD5 est activée pour la session
  • statusReason : champ décrivant l'état de la session Ce champ ne s'affiche qu'en cas de problème d'authentification MD5. (Dans ce cas, la valeur du champ est MD5_AUTH_INTERNAL_PROBLEM.)

Supprimer l'authentification d'une session

Si vous souhaitez supprimer l'authentification MD5 d'une session, suivez l'une des procédures suivantes.

gcloud

Pour supprimer l'authentification MD5, utilisez la commande gcloud beta compute routers update-bgp-peer :

   gcloud beta compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --clear-md5-authentication-key

Remplacez les valeurs suivantes :

  • ROUTER_NAME : nom du routeur cloud
  • PEER_NAME : nom du pair BGP
  • REGION : région Google Cloud

API

Pour supprimer l'authentification MD5, utilisez la méthode compute.routers.patch.

Lorsque vous supprimez l'authentification à l'aide de l'API, votre mise à jour doit effectuer deux opérations :

  • Mettre à jour le tableau md5AuthenticationKeys
  • Supprimer la valeur md5AuthenticationKey de l'entrée bgpPeers appropriée

Par exemple, si votre routeur Cloud Router possède deux pairs BGP et que vous souhaitez supprimer l'authentification MD5 de l'un d'entre eux. Dans ce cas, utilisez une requête semblable à celle-ci :

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
        "name": "KEY_FOR_UNCHANGED_PEER",
        ],
    "bgpPeers": [
      {
        "name": "NAME_OF_UPDATED_PEER",
        "interfaceName": "INTERFACE_NAME_FOR_UPDATED_PEER",
        "ipAddress": IP_ADDRESS_FOR_UPDATED_PEER",
        "peerIpAddress": PEER_IP_ADDRESS_FOR_UPDATED_PEER",
        "peerAsn": PEER_ASN_FOR_UPDATED_PEER"
      },
      {
        "name": "NAME_OF_UNCHANGED_PEER",
        "interfaceName": "INTERFACE_NAME_FOR_UNCHANGED_PEER",
        "ipAddress": IP_ADDRESS_FOR_UNCHANGED_PEER",
        "peerIpAddress": PEER_IP_ADDRESS_FOR_UNCHANGED_PEER",
        "peerAsn": PEER_ASN_FOR_UNCHANGED_PEER"
        "md5AuthenticationKeyName": "KEY_FOR_UNCHANGED_PEER",
      }
    ],
    ],
  }
 

Remplacez les valeurs suivantes :

  • PROJECT_ID : projet contenant le routeur cloud.
  • REGION : région Google Cloud dans laquelle se trouve le routeur Cloud Router
  • ROUTER_NAME : nom du routeur cloud
  • NAME_OF_UPDATED_PEER : nom de la session d'appairage que vous souhaitez modifier
  • INTERFACE_NAME_FOR_UPDATED_PEER : nom de l'interface du pair BGP que vous souhaitez modifier
  • IP_ADDRESS_FOR_UPDATED_PEER : adresse IP du routeur Cloud Router utilisé par le pair que vous souhaitez modifier
  • PEER_IP_ADDRESS_FOR_UPDATED_PEER : adresse IP du routeur pair pour la session d'appairage que vous souhaitez modifier
  • PEER_ASN : numéro ASN (Autonomous System Number) de ce pair BGP que vous souhaitez modifier
  • NAME_OF_UNCHANGED_PEER : nom de la session d'appairage que vous souhaitez conserver
  • INTERFACE_NAME_FOR_UNCHANGED_PEER : nom de l'interface du pair BGP que vous souhaitez conserver
  • IP_ADDRESS_FOR_UNCHANGED_PEER : adresse IP du routeur Cloud Router utilisée par le pair que vous souhaitez conserver
  • PEER_IP_ADDRESS_FOR_UNCHANGED_PEER : adresse IP du routeur pair pour la session d'appairage que vous souhaitez conserver
  • PEER_ASN_FOR_UNCHANGED_PEER : numéro ASN (Autonomous System Number) du pair BGP que vous souhaitez conserver tel quel
  • KEY_FOR_UNCHANGED_PEER : nom du système autonome de clé d'authentification MD5 pour le pair BGP que vous souhaitez conserver tel quel

Supprimer une session utilisant l'authentification

Dans certains cas, vous souhaiterez peut-être supprimer une session d'appairage qui utilise l'authentification MD5. Si vous utilisez gcloud CLI, vous suivez la même procédure que pour les pairs non authentifiés. Cependant, si vous travaillez dans l'API, le processus est légèrement différent.

gcloud

Pour supprimer l'authentification MD5, utilisez la commande gcloud beta compute routers update-bgp-peer :

   gcloud beta compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --clear-md5-authentication-key

Remplacez les valeurs suivantes :

  • ROUTER_NAME : nom du routeur cloud
  • PEER_NAME : nom du pair BGP
  • REGION : région Google Cloud

API

Pour supprimer l'authentification MD5, utilisez la méthode compute.routers.patch.

Lorsque vous supprimez l'authentification à l'aide de l'API, votre mise à jour doit effectuer deux opérations : supprimer la clé du tableau md5AuthenticationKeys et supprimer bgpPeer.

Par exemple, supposons que le routeur Cloud Router ait deux pairs et que vous souhaitiez en supprimer un. Dans ce cas, utilisez une requête semblable à celle-ci :

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
        "name": "KEY_NAME_FOR_RETAINED_PEER",
        ],
    "bgpPeers": [
      {
        "name": "NAME_OF_RETAINED_PEER",
        "interfaceName": "INTERFACE_FOR_RETAINED_PEER",
        "ipAddress": IP_ADDRESS_FOR_RETAINED_PEER",
        "peerIpAddress": PEER_IP_ADDRESS_FOR_RETAINED_PEER",
        "peerAsn": PEER_ASN_FOR_RETAINED_PEER"
      }
    ],
  }
 

Remplacez les valeurs suivantes :

  • PROJECT_ID : projet contenant le routeur cloud.
  • REGION : région Google Cloud
  • ROUTER_NAME : nom du routeur cloud
  • KEY_NAME_FOR_RETAINED_PEER : nom de la clé utilisée par le pair que vous conservez
  • NAME_OF_RETAINED_PEER : nom du pair BGP que vous conservez
  • INTERFACE_FOR_RETAINED_PEER : nom de l'interface du pair BGP que vous conservez
  • IP_ADDRESS_FOR_RETAINED_PEER : adresse IP du routeur Cloud Router pour le pair que vous conservez
  • PEER_IP_ADDRESS_FOR_RETAINED_PEER : adresse IP du pair que vous conservez
  • PEER_ASN_FOR_RETAINED_PEER : numéro ASN (Autonomous System Number) du pair que vous conservez

Par exemple, supposons que vous ayez créé les pairs suivants :

  PATCH https://compute.googleapis.com/compute/beta/projects/project_id/regions/region_name/routers/cloud_router_name
  {
    "md5AuthenticationKeys": [
      {
        "name":  "first_key_name",
        "key":  "first_secret_key_value"
      },
      {
        "name":  "second_key_name",
        "key":  "second_secret_key_value"
      }
    ],
    "bgpPeers": [
      {
        "name": "first_peer>",
        "md5AuthenticationKeyName": "first_key_name",
        "interfaceName": "first_interface",
        "ipAddress": "first_address",
        "peerIpAddress": "first_peer_interface",
        "peerAsn": "first_peer_asn"
      },
      {
        "name": "second_peer>",
        "md5AuthenticationKeyName": "second_key_name",
        "interfaceName": "second_interface",
        "ipAddress": "second_address",
        "peerIpAddress": "second_peer_interface",
        "peerAsn": "second_peer_asn"
      }
    ],
  }
 

Si vous souhaitez ensuite supprimer le deuxième pair, utilisez une requête semblable à celle-ci :

  PATCH https://compute.googleapis.com/compute/beta/projects/project_id/regions/region_name/routers/cloud_router_name
  {
    "md5AuthenticationKeys": [
      {
        "name":  "first_key_name",
      }
    ],
    "bgpPeers": [
      {
        "name": "first_peer>",
        "md5AuthenticationKeyName": "first_key_name",
        "interfaceName": "first_interface",
        "ipAddress": "first_address",
        "peerIpAddress": "first_peer_interface",
        "peerAsn": "first_peer_asn"
      }
    ],
  }
 

Étape suivante