Créer une session BGP VPN

Cette page décrit les spécifications auxquelles une session VPN BGP (Border Gateway Protocol) doit se conformer et explique comment créer une session VPN BGP.

Le VPN Google Distributed Cloud (GDC) air-gapped est compatible avec le routage dynamique à l'aide d'une session BGP IPv4 pour chaque tunnel VPN. La session BGP permet aux pairs BGP du réseau distant et de l'organisation GDC d'annoncer des routes les uns aux autres.

Avant de commencer

Pour créer une session BGP VPN, vous devez disposer des rôles Identity and Access Management nécessaires :

  • Administrateur VPN : dispose d'autorisations de lecture et d'écriture sur toutes les ressources liées au VPN. Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Administrateur VPN (vpn-admin).
  • Lecteur VPN : dispose d'autorisations de lecture sur toutes les ressources liées au VPN. Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Lecteur VPN (vpn-viewer).
  • Pour en savoir plus, consultez Définitions des rôles.

Spécifications des sessions BGP VPN

Le pair BGP de l'organisation accepte un intervalle keepalive BGP de 30 secondes, avec un délai de maintien de 90 secondes.Pour chaque session BGP, les adresses IPv4 doivent répondre aux exigences suivantes :

  • Chaque adresse IPv4 BGP doit appartenir au même sous-réseau /30 compris dans la plage 169.254.0.0/16.
  • Chaque adresse IPv4 BGP est le premier ou le deuxième hôte du sous-réseau /30. Les première et dernière adresses IP du sous-réseau sont réservées aux adresses réseau et de diffusion.
  • Chaque plage d'adresses BGP pour chaque session BGP doit être unique parmi toutes les sessions BGP VPN de l'organisation.

L'authentification MD5 n'est pas compatible. Il s'agit d'une méthode permettant de vérifier l'intégrité et l'authenticité des données à l'aide de l'algorithme de hachage MD5.

Créer une session BGP VPN

Pour créer une session BGP pour le tunnel VPN, procédez comme suit :

  1. Créez un objet VPNBGPPeer dans le cluster d'administrateur de l'organisation, dans l'espace de noms de la plate-forme :

    kubectl --kubeconfig MANAGEMENT_API_SERVER create -n platform -f - <<EOF
    apiVersion: networking.gdc.goog/v1
    kind: VPNBGPPeer
    metadata:
      name: VPN_BGP_PEER_NAME
    spec:
      remote:
        name: REMOTE_PEER_NAME
        ip: REMOTE_PEER_IP
        asn: REMOTE_PEER_ASN
      local:
        name: LOCAL_PEER_NAME
        ip: LOCAL_PEER_IP
        asn: LOCAL_PEER_ASN
    EOF
    

    Remplacez les éléments suivants :

    • MANAGEMENT_API_SERVER : chemin d'accès au fichier kubeconfig du serveur d'API zonal. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API dans la zone cible, consultez Se connecter pour en savoir plus.
    • VPN_BGP_PEER_NAME : nom du pair BGP VPN.
    • REMOTE_PEER_NAME : nom du pair BGP dans le réseau distant.
    • REMOTE_PEER_IP : adresse IPv4 BGP du sous-réseau /30 du pair BGP dans le réseau distant.
    • REMOTE_PEER_ASN : numéro ASN (Autonomous System Number) configuré pour le réseau distant.
    • LOCAL_PEER_NAME : nom du pair BGP dans l'organisation GDC.
    • LOCAL_PEER_IP : adresse IPv4 BGP du sous-réseau /30 du pair BGP dans l'organisation GDC.
    • LOCAL_PEER_ASN : numéro ASN configuré pour l'organisation GDC.
  2. Vérifiez que l'objet VPN_BGP_PEER_NAME a été correctement rapproché en examinant le champ Status. Obtenez les détails de l'objet VPNBGPPeer :

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpnbgppeer VPN_BGP_PEER_NAME
    

    Examinez le résultat. Il doit ressembler à l'exemple suivant :

      Status:
        Conditions:
          Last Transition Time:  2024-05-10T00:26:13Z
          Message:               Ready
          Observed Generation:   1
          Reason:                Ready
          Status:                True
          Type:                  ValidIPs
          Last Transition Time:  2024-05-10T00:26:00Z
          Message:               Used by 0 VPNTunnels, must be used by a single VPNTunnel
          Observed Generation:   1
          Reason:                GetResourceFailed
          Status:                False
          Type:                  TunnelsAttached
          Last Transition Time:  2024-05-10T00:26:00Z
          Message:               TunnelsAttached or ValidIPs Condition not Ready.
          Observed Generation:   1
          Reason:                Unknown
          Status:                False
          Type:                  Reconciled
          Last Transition Time:  2024-05-10T00:26:01Z
          Message:               ValidIPs or Reconciled Condition not Ready.
          Observed Generation:   1
          Reason:                Unknown
          Status:                False
          Type:                  AdvertisedRoutesReady
          Last Transition Time:  2024-05-10T00:26:13Z
          Message:               Ready
          Observed Generation:   1
          Reason:                Ready
          Status:                True
          Type:                  ReceivedRoutesValid
          Last Transition Time:  2024-05-10T00:26:01Z
          Message:               TunnelsAttached Condition not Ready.
          Observed Generation:   1
          Reason:                Unknown
          Status:                False
          Type:                  ReceivedRoutesReady
          Last Transition Time:  2024-05-10T00:26:01Z
          Message:               Condition "TunnelsAttached" is not ready.
          Observed Generation:   1
          Reason:                NotReady
          Status:                False
          Type:                  Ready
      ```
    

VPNBGPPeer doit être associé à un VPNTunnel. Nous traitons cette étape dans Créer un tunnel VPN.

Étapes suivantes